scrumble-nl / laravel-model-ts-type
此软件包可以将基于您的模型的 TypeScript 类型生成
10.4.0
2024-06-25 09:30 UTC
Requires
- php: ^8.1
- ext-pdo: *
- laravel/framework: ^10.0|^11.0
- laravel/helpers: ^1.6
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- nunomaduro/larastan: ^2.4
- orchestra/testbench: ^8.0|^9.0
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2024-09-25 10:00:42 UTC
README
根据您的模型生成 TypeScript 类型。
用法
安装
使用 composer 安装此软件包
composer require --dev scrumble-nl/laravel-model-ts-type
生成类型
php artisan types:generate {--modelDir=} {--outputDir=} {--model=} {--noKebabCase}
附加选项
如果您想更改默认值,可以发布配置文件并将其更改为您喜欢的设置。
注意:不要忘记将目录添加到 tsconfig.json
中的 typeroots
它做什么?
此软件包考虑了 Laravel 的几乎所有魔法功能。它按照以下步骤生成类型:
- 从数据库中检索所有字段(仅支持 MySQL/MariaDB),并将它们映射到默认类型(字符串、数字等)
- 为模型添加关系,它们将指向相关生成的类型
- 为模型添加属性获取器
- 检查
casts
属性 - 删除所有在
hidden
属性中的字段
示例输出
type Company = { id: number; name: string; created_at: string /* Date */ | null; updated_at: string /* Date */ | null; slug: string; welcome_message: string | null; contact_information: string | null; main_color: string | null; logo_src: string | null; user_field: any[]; language: any[]; team_site: any[]; is_api_enabled: boolean; kaizen_user_field: string; faqs?: Faq[] | null; users?: User[] | null; team_properties: TeamProperty[] | null; editor_images: EditorImage[] | null; meta_data?: any[]; };
路线图
- 添加测试(进行中)
- 为打包的模型生成类型
- 创建用于生成单个模型类型的命令
- 实现关系文档块的未限定名称
贡献
如果您想看到此软件包的添加/更改,您可以随时添加一些代码或改进它。
Scrumble
该产品最初由 Scrumble 为内部使用开发。由于我们使用了大量开源软件包,我们希望回馈社区。我们希望这能帮助您像其他人一样帮助到我们!