scrumble-nl/laravel-model-ts-type

此软件包可以将基于您的模型的 TypeScript 类型生成

10.4.0 2024-06-25 09:30 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 的几乎所有魔法功能。它按照以下步骤生成类型:

  1. 从数据库中检索所有字段(仅支持 MySQL/MariaDB),并将它们映射到默认类型(字符串、数字等)
  2. 为模型添加关系,它们将指向相关生成的类型
  3. 为模型添加属性获取器
  4. 检查 casts 属性
  5. 删除所有在 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 为内部使用开发。由于我们使用了大量开源软件包,我们希望回馈社区。我们希望这能帮助您像其他人一样帮助到我们!