acelords / laravel-model-ts-type
该包可以实现根据你的模型生成 TypeScript 类型
v1.0.1
2024-08-24 14:38 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
- larastan/larastan: ^2.0
- orchestra/testbench: ^8.0|^9.0
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2024-09-24 14:54:38 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
属性中的字段
示例输出
export 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 为内部使用开发。由于我们使用了大量开源包,我们希望回馈社区。我们希望这能帮助您像其他人帮助我们一样前进!