You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The update to v2.5.0 (using together with spatie/laravel-data ^3.12) is now causing issue with nullable properties.
Tha Data class:
What php artisan typescript:transform brings:
The typescript-transformer.php config that I am using:
<?phpreturn [
/* * The paths where typescript-transformer will look for PHP classes * to transform, this will be the `app` path by default. */'auto_discover_types' => [
// commented out because this is also included when// running the generate command with a custom --path setting// e.g.// `php artisan typescript:generate --path=nova-components/`// will also include the objects in app/ directory// app_path(),
],
/* * Collectors will search for classes in the `auto_discover_types` paths and choose the correct * transformer to transform them. By default, we include a DefaultCollector which will search * for @typescript annotated and ![TypeScript] attributed classes to transform. */'collectors' => [
Spatie\LaravelData\Support\TypeScriptTransformer\DataTypeScriptCollector::class,
Spatie\TypeScriptTransformer\Collectors\DefaultCollector::class,
// Spatie\TypeScriptTransformer\Collectors\EnumCollector::class,
],
/* * Transformers take PHP classes(e.g., enums) as an input and will output * a TypeScript representation of the PHP class. */'transformers' => [
Spatie\LaravelTypeScriptTransformer\Transformers\SpatieStateTransformer::class,
Spatie\TypeScriptTransformer\Transformers\EnumTransformer::class,
Spatie\TypeScriptTransformer\Transformers\SpatieEnumTransformer::class,
Spatie\LaravelData\Support\TypeScriptTransformer\DataTypeScriptTransformer::class,
Spatie\TypeScriptTransformer\Transformers\DtoTransformer::class,
],
/* * In your classes, you sometimes have types that should always be replaced * by the same TypeScript representations. For example, you can replace a * Datetime always with a string. You define these replacements here. */'default_type_replacements' => [
DateTime::class => 'string',
DateTimeImmutable::class => 'string',
Carbon\CarbonInterface::class => 'string',
Carbon\CarbonImmutable::class => 'string',
Carbon\Carbon::class => 'string',
\Brick\Money\Money::class => \App\Data\Money\MoneyData::class,
],
/* * The package will write the generated TypeScript to this file. */'output_file' => resource_path('js/generated.ts'),
/* * When the package is writing types to the output file, a writer is used to * determine the format. By default, this is the `TypeDefinitionWriter`. * But you can also use the `ModuleWriter` or implement your own. */'writer' => Spatie\TypeScriptTransformer\Writers\ModuleWriter::class,
/* * The generated TypeScript file can be formatted. We ship a Prettier formatter * out of the box: `PrettierFormatter` but you can also implement your own one. * The generated TypeScript will not be formatted when no formatter was set. */'formatter' => null,
/* * Enums can be transformed into types or native TypeScript enums, by default * the package will transform them to types. */'transform_to_native_enums' => true,
/* * By default, this package will convert PHP nullable properties to TypeScript * types using a `null` type union. Setting `transform_null_to_optional` will * make them optional instead. */'transform_null_to_optional' => false,
];
The text was updated successfully, but these errors were encountered:
The update to v2.5.0 (using together with
spatie/laravel-data ^3.12
) is now causing issue with nullable properties.Tha Data class:
What
php artisan typescript:transform
brings:The
typescript-transformer.php
config that I am using:The text was updated successfully, but these errors were encountered: