@biuxiu/codegen 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +11 -0
- package/dist/code/nest.d.ts +11 -0
- package/dist/code/nest.js +229 -0
- package/dist/compile.d.ts +1 -0
- package/dist/compile.js +58 -0
- package/dist/config.d.ts +11 -0
- package/dist/config.js +53 -0
- package/dist/format/api.d.ts +8 -0
- package/dist/format/api.js +122 -0
- package/dist/format/base.d.ts +10 -0
- package/dist/format/base.js +56 -0
- package/dist/format/dto.d.ts +8 -0
- package/dist/format/dto.js +116 -0
- package/dist/format/entity.d.ts +7 -0
- package/dist/format/entity.js +68 -0
- package/dist/format/service.d.ts +8 -0
- package/dist/format/service.js +93 -0
- package/dist/gen-type.d.ts +1 -0
- package/dist/gen-type.js +66 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +48 -0
- package/dist/libs/index.d.ts +1 -0
- package/dist/libs/index.js +30 -0
- package/dist/libs/nest-lib.d.ts +5 -0
- package/dist/libs/nest-lib.js +41 -0
- package/dist/libs/vue-lib.d.ts +1 -0
- package/dist/libs/vue-lib.js +30 -0
- package/dist/render.d.ts +3 -0
- package/dist/render.js +32 -0
- package/dist/types.d.ts +28 -0
- package/dist/types.js +16 -0
- package/dist/util.d.ts +2 -0
- package/dist/util.js +48 -0
- package/package.json +39 -0
- package/pkg/README.md +11 -0
- package/sources/base-type.txt +6 -0
- package/sources/controller.btpl +8 -0
- package/sources/create-dto.btpl +4 -0
- package/sources/entity.btpl +8 -0
- package/sources/module.btpl +13 -0
- package/sources/nest-type.txt +88 -0
- package/sources/service.btpl +11 -0
- package/sources/update-dto.btpl +4 -0
- package/sources/vue-type.txt +27 -0
package/package.json
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
{
|
2
|
+
"name": "@biuxiu/codegen",
|
3
|
+
"version": "0.1.1",
|
4
|
+
"description": "代码生成工具",
|
5
|
+
"main": "index.js",
|
6
|
+
"scripts": {
|
7
|
+
"test:dev": "tsx scripts/dev.ts",
|
8
|
+
"test:rm": "tsx scripts/dev.ts -d",
|
9
|
+
"test:prod": "node scripts/prod.js",
|
10
|
+
"build:script": "tsx scripts/build.ts",
|
11
|
+
"build:wasm": "wasm-pack build --target nodejs --release",
|
12
|
+
"publish:x": "xiu -o -c -h 'npm run build:script' -n"
|
13
|
+
},
|
14
|
+
"files": [
|
15
|
+
"bin",
|
16
|
+
"dist",
|
17
|
+
"pkg",
|
18
|
+
"sources",
|
19
|
+
"README.md"
|
20
|
+
],
|
21
|
+
"keywords": [],
|
22
|
+
"author": "dgzhuya",
|
23
|
+
"license": "ISC",
|
24
|
+
"devDependencies": {
|
25
|
+
"@types/node": "^20.14.2",
|
26
|
+
"@types/shelljs": "^0.8.15",
|
27
|
+
"esbuild": "^0.21.5",
|
28
|
+
"esbuild-plugin-d.ts": "^1.2.3",
|
29
|
+
"tsx": "^4.15.1",
|
30
|
+
"typescript": "^5.4.5"
|
31
|
+
},
|
32
|
+
"dependencies": {
|
33
|
+
"@biuxiu/template": "^1.2.3",
|
34
|
+
"module-alias": "^2.2.3",
|
35
|
+
"prettier": "^3.3.2",
|
36
|
+
"shelljs": "^0.8.5",
|
37
|
+
"ts-morph": "^22.0.0"
|
38
|
+
}
|
39
|
+
}
|
package/pkg/README.md
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
import { Module } from '@nestjs/common'
|
2
|
+
import { {%up@name%}Service } from './{%name%}.service'
|
3
|
+
import { {%up@name%}Controller } from './{%name%}.controller'
|
4
|
+
import { TypeOrmModule } from '@nestjs/typeorm'
|
5
|
+
import { {%up@name%}Entity } from './entities/{%name%}.entity'
|
6
|
+
|
7
|
+
@Module({
|
8
|
+
imports: [TypeOrmModule.forFeature([{%up@name%}Entity])],
|
9
|
+
controllers: [{%up@name%}Controller],
|
10
|
+
providers: [{%up@name%}Service],
|
11
|
+
exports: [{%up@name%}Service]
|
12
|
+
})
|
13
|
+
export class {%up@name%}Module {}
|
@@ -0,0 +1,88 @@
|
|
1
|
+
--- @meta NestJs
|
2
|
+
|
3
|
+
--- @class NestJs
|
4
|
+
NestJs = {}
|
5
|
+
|
6
|
+
--- @alias SetTblFn fun(tbl: table)
|
7
|
+
|
8
|
+
--- 生成限制规则
|
9
|
+
---
|
10
|
+
--- @param msg string 消息提示
|
11
|
+
--- @param min number | nil 最小值
|
12
|
+
--- @param max number | nil 最大值
|
13
|
+
--- @return SetTblFn
|
14
|
+
function NestJs.createLimitRule(msg, min, max) end
|
15
|
+
|
16
|
+
--- @alias SimpleRuleType 'isOptional' | 'notEmpty' | 'isInt' | 'isNumber'
|
17
|
+
|
18
|
+
--- 生成简单规则
|
19
|
+
---
|
20
|
+
--- @param key SimpleRuleType 规则类型
|
21
|
+
--- @param msg string | true 消息提示
|
22
|
+
--- @return SetTblFn
|
23
|
+
function NestJs.createSimpleRule(key, msg) end
|
24
|
+
|
25
|
+
--- @class DtoField
|
26
|
+
--- @field key string
|
27
|
+
--- @field type FieldType
|
28
|
+
|
29
|
+
--- 生成DTO字段信息
|
30
|
+
---
|
31
|
+
--- @param key string 字段名
|
32
|
+
--- @param type FieldType 字段类型
|
33
|
+
--- @param ... SetTblFn 字段规则函数
|
34
|
+
--- @return DtoField
|
35
|
+
function NestJs.creteDtoField(key, type, ...) end
|
36
|
+
|
37
|
+
--- @alias SimpleColumnType 'isExclude' | 'comment' | 'length' | 'nullable' | 'name'
|
38
|
+
|
39
|
+
--- 创建数据表字段特征
|
40
|
+
---
|
41
|
+
--- @param key SimpleColumnType 特征名
|
42
|
+
--- @param value number | string | true 字段值
|
43
|
+
--- @return SetTblFn
|
44
|
+
function NestJs.createSimpleColumn(key, value) end
|
45
|
+
|
46
|
+
--- 创建字段表类型
|
47
|
+
---
|
48
|
+
--- @param type 'int' | 'datetime' | 'varchar' | 'tinyint' 表类型
|
49
|
+
--- @return SetTblFn
|
50
|
+
function NestJs.creteColumnType(type) end
|
51
|
+
|
52
|
+
--- @class EntityField
|
53
|
+
--- @field key string
|
54
|
+
--- @field type FieldType
|
55
|
+
--- @field column number
|
56
|
+
|
57
|
+
--- 生成Entity字段信息
|
58
|
+
---
|
59
|
+
--- @param key string 字段名
|
60
|
+
--- @param type FieldType 字段类型
|
61
|
+
--- @param ... SetTblFn 字段数据库类型
|
62
|
+
--- @return EntityField
|
63
|
+
function NestJs.creteEntityField(key, type, ...) end
|
64
|
+
|
65
|
+
--- @alias ApiServiceFieldKey 'get' | 'all' | 'delete' | 'update' | 'add'
|
66
|
+
|
67
|
+
--- @class ApiServiceField
|
68
|
+
--- @field key ApiServiceFieldKey
|
69
|
+
--- @field interceptor true
|
70
|
+
|
71
|
+
--- 创建请求API和服务结构体
|
72
|
+
---
|
73
|
+
--- @param key ApiServiceFieldKey
|
74
|
+
--- @param interceptor true | nil
|
75
|
+
--- @return ApiServiceField
|
76
|
+
function NestJs.createApiService(key, interceptor) end
|
77
|
+
|
78
|
+
--- @class RenderConfig
|
79
|
+
--- @field name string
|
80
|
+
--- @field path? string
|
81
|
+
|
82
|
+
--- 创建后端代码
|
83
|
+
---
|
84
|
+
--- @param config RenderConfig 模块名
|
85
|
+
--- @param dto DtoField[] dto数据结构
|
86
|
+
--- @param entity EntityField[] entity数据结构
|
87
|
+
--- @param apiService ApiServiceField[] entity数据结构
|
88
|
+
function NestJs.renderToCode(config, dto, entity, apiService) end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { Injectable } from '@nestjs/common'
|
2
|
+
import { InjectRepository } from '@nestjs/typeorm'
|
3
|
+
import { Repository } from 'typeorm'
|
4
|
+
{%importInfo%}import { {%up@name%}Entity } from './entities/{%name%}.entity'
|
5
|
+
|
6
|
+
@Injectable()
|
7
|
+
export class {%up@name%}Service {
|
8
|
+
constructor(@InjectRepository({%up@name%}Entity) private readonly {%name%}Repository: Repository<{%up@name%}Entity>) {}
|
9
|
+
|
10
|
+
{%content%}
|
11
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
---@meta VueJs
|
2
|
+
|
3
|
+
--- @class VueJs
|
4
|
+
VueJs = {}
|
5
|
+
|
6
|
+
--- @class WebRoute 前端路由信息
|
7
|
+
--- @field path string 路由路径
|
8
|
+
--- @field name string 路由名
|
9
|
+
--- @field title string 路由标题
|
10
|
+
--- @field icon string 路由图标
|
11
|
+
|
12
|
+
--- @class WebTable 前端表格信息
|
13
|
+
|
14
|
+
--- @class WebForm 前端表单信息
|
15
|
+
|
16
|
+
--[[
|
17
|
+
--- 接收路由信息,并生成前端代码
|
18
|
+
---
|
19
|
+
--- @param route WebRoute 路由信息
|
20
|
+
--- @param tbl WebTable 表展示数据
|
21
|
+
--- @param form WebForm 表单展示数据
|
22
|
+
--- @param name string 模块名,使用`.`分隔上下级模块
|
23
|
+
]]
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
function VueJs.genWebCode(route, tbl) end
|