spatie/typescript-transformer
Automatically generate TypeScript definitions from your PHP/Laravel code. spatie/typescript-transformer scans classes and types, then outputs .d.ts files so your frontend stays in sync with backend models, DTOs and enums with minimal manual typing.
When building custom transformed providers you may need access to actions like transpiling PHP types to TypeScript, discovering certain types and more.
use Spatie\TypeScriptTransformer\TransformedProviders\ActionAwareTransformedProvider;
use Spatie\TypeScriptTransformer\TransformedProviders\TransformedProviderActions;
use Spatie\TypeScriptTransformer\TransformedProviders\TransformedProvider;
class CustomProvider implements TransformedProvider, ActionAwareTransformedProvider
{
private TransformedProviderActions $actions;
public function setActions(TransformedProviderActions $actions): void
{
$this->actions = $actions;
}
public function provide(): array
{
$classNode = $this->actions->parseUserDefinedTypeAction->execute('Record<string, int>');
}
}
The TransformedProviderActions object provides:
loadPhpClassNodeAction - Load a PhpClassNode from a file pathdiscoverTypesAction - Discover PHP classes in directoriestranspilePhpStanTypeToTypeScriptNodeAction - Transpile PHPStan doc types to TypeScript nodestranspilePhpTypeNodeToTypeScriptNodeAction - Transpile native PHP types to TypeScript nodesparseUserDefinedTypeAction - Parse a user-defined type string into a TypeScript nodeHow can I help you explore Laravel packages today?