nestjs-drizzle-crud-generator by giuseppe-trisciuoglio/developer-kit
npx skills add https://github.com/giuseppe-trisciuoglio/developer-kit --skill nestjs-drizzle-crud-generator此技能使用 Drizzle ORM 为 NestJS 应用程序自动生成完整的 CRUD(创建、读取、更新、删除)模块。它遵循 zaccheroni-monorepo 模式创建所有必需的文件。
生成前,请收集:
user、product、order)执行生成脚本:
python scripts/generate_crud.py --feature <name> --fields '<json-array>' --output <path>
字段必须定义为包含名称、类型和必需属性的 JSON 数组。
生成后,将模块集成到您的 NestJS 应用程序中。
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
python scripts/generate_crud.py \
--feature user \
--fields '[{"name": "name", "type": "string", "required": true}, {"name": "email", "type": "string", "required": true}, {"name": "password", "type": "string", "required": true}]' \
--output ./libs/server
python scripts/generate_crud.py \
--feature product \
--fields '[{"name": "title", "type": "string", "required": true}, {"name": "price", "type": "number", "required": true}, {"name": "description", "type": "text", "required": false}, {"name": "inStock", "type": "boolean", "required": false, "default": true}]' \
--output ./libs/server
生成前,请收集:
user、product、order)执行生成脚本:
python scripts/generate_crud.py --feature <name> --fields '<json-array>' --output <path>
字段必须定义为 JSON 数组:
[
{"name": "name", "type": "string", "required": true},
{"name": "email", "type": "string", "required": true},
{"name": "age", "type": "integer", "required": false},
{"name": "isActive", "type": "boolean", "required": false, "default": true},
{"name": "price", "type": "number", "required": true},
{"name": "description", "type": "text", "required": false},
{"name": "uuid", "type": "uuid", "required": false}
]
生成用户模块:
python scripts/generate_crud.py \
--feature user \
--fields '[{"name": "name", "type": "string", "required": true}, {"name": "email", "type": "string", "required": true}, {"name": "password", "type": "string", "required": true}]' \
--output ./libs/server
生成产品模块:
python scripts/generate_crud.py \
--feature product \
--fields '[{"name": "title", "type": "string", "required": true}, {"name": "price", "type": "number", "required": true}, {"name": "description", "type": "text", "required": false}, {"name": "inStock", "type": "boolean", "required": false, "default": true}]' \
--output ./libs/server
生成器创建以下目录结构:
libs/server/{feature-name}/
├── src/
│ ├── index.ts
│ └── lib/
│ ├── {feature}-feature.module.ts
│ ├── controllers/
│ │ ├── index.ts
│ │ └── {feature}.controller.ts
│ ├── services/
│ │ ├── index.ts
│ │ ├── {feature}.service.ts
│ │ └── {feature}.service.spec.ts
│ ├── dto/
│ │ ├── index.ts
│ │ └── {feature}.dto.ts
│ └── schema/
│ └── {feature}.table.ts
| 类型 | Drizzle 列 | Zod 模式 |
|---|---|---|
| string | text | z.string() |
| text | text | z.string() |
| number | real | z.number() |
| integer | integer | z.number().int() |
| boolean | boolean | z.boolean() |
| date | timestamp | z.date() |
| uuid | uuid | z.string().uuid() |
| text | z.string().email() |
forRootAsync 模式进行延迟配置deletedAt 列)生成后,将其集成到您的应用模块中:
// app.module.ts
import { {{FeatureName}}FeatureModule } from '@your-org/server-{{feature}}';
@Module({
imports: [
{{FeatureName}}FeatureModule.forRootAsync({
useFactory: () => ({
defaultPageSize: 10,
maxPageSize: 100,
}),
}),
],
})
export class AppModule {}
每个字段支持:
name:字段名称type:数据类型(string、text、number、integer、boolean、date、uuid、email)required:布尔值,表示是否为必填字段default:非必填字段的默认值maxLength:字符串的最大长度minLength:字符串的最小长度生成的代码需要:
@nestjs/common@nestjs/coredrizzle-ormdrizzle-zodzodnestjs-zoddeletedAt)。硬删除需要手动修改每周安装量
201
代码仓库
GitHub 星标数
173
首次出现
2026年2月20日
安全审计
安装于
codex180
gemini-cli178
github-copilot175
cursor173
opencode173
kimi-cli172
This skill automatically generates complete CRUD (Create, Read, Update, Delete) modules for NestJS applications using Drizzle ORM. It creates all necessary files following the zaccheroni-monorepo patterns.
Before generating, gather:
user, product, order)Execute the generation script:
python scripts/generate_crud.py --feature <name> --fields '<json-array>' --output <path>
Fields must be defined as JSON array with name, type, and required properties.
After generation, integrate the module into your NestJS application.
python scripts/generate_crud.py \
--feature user \
--fields '[{"name": "name", "type": "string", "required": true}, {"name": "email", "type": "string", "required": true}, {"name": "password", "type": "string", "required": true}]' \
--output ./libs/server
python scripts/generate_crud.py \
--feature product \
--fields '[{"name": "title", "type": "string", "required": true}, {"name": "price", "type": "number", "required": true}, {"name": "description", "type": "text", "required": false}, {"name": "inStock", "type": "boolean", "required": false, "default": true}]' \
--output ./libs/server
Before generating, gather:
user, product, order)Execute the generation script:
python scripts/generate_crud.py --feature <name> --fields '<json-array>' --output <path>
Fields must be defined as JSON array:
[
{"name": "name", "type": "string", "required": true},
{"name": "email", "type": "string", "required": true},
{"name": "age", "type": "integer", "required": false},
{"name": "isActive", "type": "boolean", "required": false, "default": true},
{"name": "price", "type": "number", "required": true},
{"name": "description", "type": "text", "required": false},
{"name": "uuid", "type": "uuid", "required": false}
]
Generate a User module:
python scripts/generate_crud.py \
--feature user \
--fields '[{"name": "name", "type": "string", "required": true}, {"name": "email", "type": "string", "required": true}, {"name": "password", "type": "string", "required": true}]' \
--output ./libs/server
Generate a Product module:
python scripts/generate_crud.py \
--feature product \
--fields '[{"name": "title", "type": "string", "required": true}, {"name": "price", "type": "number", "required": true}, {"name": "description", "type": "text", "required": false}, {"name": "inStock", "type": "boolean", "required": false, "default": true}]' \
--output ./libs/server
The generator creates this directory structure:
libs/server/{feature-name}/
├── src/
│ ├── index.ts
│ └── lib/
│ ├── {feature}-feature.module.ts
│ ├── controllers/
│ │ ├── index.ts
│ │ └── {feature}.controller.ts
│ ├── services/
│ │ ├── index.ts
│ │ ├── {feature}.service.ts
│ │ └── {feature}.service.spec.ts
│ ├── dto/
│ │ ├── index.ts
│ │ └── {feature}.dto.ts
│ └── schema/
│ └── {feature}.table.ts
| Type | Drizzle Column | Zod Schema |
|---|---|---|
| string | text | z.string() |
| text | text | z.string() |
| number | real | z.number() |
| integer | integer | z.number().int() |
| boolean | boolean | z.boolean() |
| date | timestamp | z.date() |
| uuid | uuid | z.string().uuid() |
| text | z.string().email() |
forRootAsync pattern for lazy configurationdeletedAt column)After generation, integrate into your app module:
// app.module.ts
import { {{FeatureName}}FeatureModule } from '@your-org/server-{{feature}}';
@Module({
imports: [
{{FeatureName}}FeatureModule.forRootAsync({
useFactory: () => ({
defaultPageSize: 10,
maxPageSize: 100,
}),
}),
],
})
export class AppModule {}
Each field supports:
name: Field nametype: Data type (string, text, number, integer, boolean, date, uuid, email)required: Boolean for mandatory fieldsdefault: Default value for non-required fieldsmaxLength: Maximum length for stringsminLength: Minimum length for stringsThe generated code requires:
@nestjs/common@nestjs/coredrizzle-ormdrizzle-zodzodnestjs-zoddeletedAt). Hard deletes require manual modificationWeekly Installs
201
Repository
GitHub Stars
173
First Seen
Feb 20, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
codex180
gemini-cli178
github-copilot175
cursor173
opencode173
kimi-cli172
Skills CLI 使用指南:AI Agent 技能包管理器安装与管理教程
31,600 周安装