@biuxiu/codegen 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +11 -0
  2. package/dist/code/nest.d.ts +11 -0
  3. package/dist/code/nest.js +229 -0
  4. package/dist/compile.d.ts +1 -0
  5. package/dist/compile.js +58 -0
  6. package/dist/config.d.ts +11 -0
  7. package/dist/config.js +53 -0
  8. package/dist/format/api.d.ts +8 -0
  9. package/dist/format/api.js +122 -0
  10. package/dist/format/base.d.ts +10 -0
  11. package/dist/format/base.js +56 -0
  12. package/dist/format/dto.d.ts +8 -0
  13. package/dist/format/dto.js +116 -0
  14. package/dist/format/entity.d.ts +7 -0
  15. package/dist/format/entity.js +68 -0
  16. package/dist/format/service.d.ts +8 -0
  17. package/dist/format/service.js +93 -0
  18. package/dist/gen-type.d.ts +1 -0
  19. package/dist/gen-type.js +66 -0
  20. package/dist/index.d.ts +4 -0
  21. package/dist/index.js +48 -0
  22. package/dist/libs/index.d.ts +1 -0
  23. package/dist/libs/index.js +30 -0
  24. package/dist/libs/nest-lib.d.ts +5 -0
  25. package/dist/libs/nest-lib.js +41 -0
  26. package/dist/libs/vue-lib.d.ts +1 -0
  27. package/dist/libs/vue-lib.js +30 -0
  28. package/dist/render.d.ts +3 -0
  29. package/dist/render.js +32 -0
  30. package/dist/types.d.ts +28 -0
  31. package/dist/types.js +16 -0
  32. package/dist/util.d.ts +2 -0
  33. package/dist/util.js +48 -0
  34. package/package.json +39 -0
  35. package/pkg/README.md +11 -0
  36. package/sources/base-type.txt +6 -0
  37. package/sources/controller.btpl +8 -0
  38. package/sources/create-dto.btpl +4 -0
  39. package/sources/entity.btpl +8 -0
  40. package/sources/module.btpl +13 -0
  41. package/sources/nest-type.txt +88 -0
  42. package/sources/service.btpl +11 -0
  43. package/sources/update-dto.btpl +4 -0
  44. package/sources/vue-type.txt +27 -0
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # lua codegen
2
+
3
+ ### 使用lua+nodejs实现项目代码生成功能
4
+
5
+ - 初始化项目
6
+ ```sh
7
+ # 安装依赖
8
+ pnpm i
9
+ # 初始化模板类型信息
10
+ pnpm template-init
11
+ ```
@@ -0,0 +1,11 @@
1
+ import { ApiServiceField, DtoField, EntityField } from '@/types';
2
+ export declare class RenderNest {
3
+ #private;
4
+ constructor(name: string, path?: string);
5
+ remove(): void;
6
+ editAppModule(isDelete?: boolean): void;
7
+ genModule(): Promise<void>;
8
+ genApiService(apiService: ApiServiceField[]): Promise<void>;
9
+ genEntity(entity: EntityField[]): Promise<void>;
10
+ genDto(dto: DtoField[]): Promise<void>;
11
+ }
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var nest_exports = {};
30
+ __export(nest_exports, {
31
+ RenderNest: () => RenderNest
32
+ });
33
+ module.exports = __toCommonJS(nest_exports);
34
+ var import_render = __toESM(require("@/render"));
35
+ var import_path = require("path");
36
+ var import_util = require("@/util");
37
+ var import_fs = require("fs");
38
+ var import_dto = require("@/format/dto");
39
+ var import_entity = require("@/format/entity");
40
+ var import_api = require("@/format/api");
41
+ var import_service = require("@/format/service");
42
+ var import_config = require("@/config");
43
+ var import_ts_morph = require("ts-morph");
44
+ var import_shelljs = require("shelljs");
45
+ const editFileQueue = [];
46
+ let isRunning = false;
47
+ const runEditTask = async () => {
48
+ if (!isRunning) {
49
+ isRunning = true;
50
+ while (editFileQueue.length > 0) {
51
+ const fn = editFileQueue.shift();
52
+ if (fn) await fn();
53
+ }
54
+ isRunning = false;
55
+ }
56
+ };
57
+ class RenderNest {
58
+ #moduleDir;
59
+ #name;
60
+ #path;
61
+ #formatPath(path) {
62
+ return path.split("/").filter((p) => p).join("/");
63
+ }
64
+ constructor(name, path) {
65
+ this.#path = path ? path.endsWith("/") ? `${this.#formatPath(path)}/${name}` : this.#formatPath(path) : name;
66
+ let basePath = "";
67
+ const apiDir = (0, import_config.getApiDir)();
68
+ if (this.#path.includes("/")) {
69
+ const pathArr = this.#path.split("/");
70
+ for (let i = 0; i < pathArr.length; i++) {
71
+ const curPath = pathArr[i];
72
+ if (i === 0) {
73
+ basePath = (0, import_path.join)(apiDir, curPath);
74
+ } else {
75
+ basePath = (0, import_path.join)(basePath, curPath);
76
+ }
77
+ if (!(0, import_fs.existsSync)(basePath)) {
78
+ (0, import_fs.mkdirSync)(basePath);
79
+ }
80
+ }
81
+ } else {
82
+ basePath = (0, import_path.join)(apiDir, this.#path);
83
+ if (!(0, import_fs.existsSync)(basePath)) {
84
+ (0, import_fs.mkdirSync)(basePath);
85
+ }
86
+ }
87
+ this.#name = name;
88
+ this.#moduleDir = basePath;
89
+ }
90
+ remove() {
91
+ if ((0, import_fs.existsSync)(this.#moduleDir)) {
92
+ (0, import_shelljs.exec)(`rm -rf ${this.#moduleDir}`);
93
+ }
94
+ this.editAppModule(true);
95
+ }
96
+ editAppModule(isDelete = false) {
97
+ editFileQueue.push(async () => {
98
+ const moudleName = `${this.#name[0].toUpperCase() + this.#name.slice(1)}Module`;
99
+ const appModuleFile = (0, import_path.join)((0, import_config.getApiDir)(), "app.module.ts");
100
+ if ((0, import_fs.existsSync)(appModuleFile)) {
101
+ const source = new import_ts_morph.Project().addSourceFileAtPath(appModuleFile);
102
+ const moduleImport = source.getImportDeclaration(
103
+ `./${this.#path}/${this.#name}.module`
104
+ );
105
+ const appModuleClass = source.getClassOrThrow("AppModule");
106
+ const importsArray = appModuleClass.getDecoratorOrThrow("Module").getArguments()[0].asKindOrThrow(import_ts_morph.SyntaxKind.ObjectLiteralExpression).getPropertyOrThrow("imports").getFirstChildByKindOrThrow(
107
+ import_ts_morph.SyntaxKind.ArrayLiteralExpression
108
+ );
109
+ const consumerStatement = appModuleClass.getMethodOrThrow("configure").getStatements()[0];
110
+ if (isDelete) {
111
+ if (moduleImport) {
112
+ moduleImport.remove();
113
+ }
114
+ importsArray.getElements().forEach((ele, index) => {
115
+ if (ele.getText() === moudleName) {
116
+ importsArray.removeElement(index);
117
+ }
118
+ });
119
+ const text = consumerStatement.getText();
120
+ if (text.includes(moudleName)) {
121
+ const newText = text.replace(
122
+ new RegExp(`,\\s*${moudleName}`),
123
+ ""
124
+ );
125
+ consumerStatement.replaceWithText(newText);
126
+ }
127
+ } else {
128
+ if (!moduleImport) {
129
+ source.addImportDeclaration({
130
+ namedImports: [moudleName],
131
+ moduleSpecifier: `./${this.#path}/${this.#name}.module`
132
+ });
133
+ }
134
+ let hasModule = false;
135
+ importsArray.getElements().forEach((ele) => {
136
+ if (ele.getText() === moudleName) {
137
+ hasModule = true;
138
+ }
139
+ });
140
+ if (!hasModule) {
141
+ importsArray.addElement(moudleName);
142
+ }
143
+ const text = consumerStatement.getText();
144
+ if (!text.includes(moudleName)) {
145
+ const newText = text.replace(
146
+ /\.forRoutes\(([^)]+)\)/,
147
+ `.forRoutes($1, ${moudleName})`
148
+ );
149
+ consumerStatement.replaceWithText(newText);
150
+ }
151
+ }
152
+ await source.save();
153
+ await (0, import_util.reFromatFile)(appModuleFile);
154
+ }
155
+ });
156
+ runEditTask();
157
+ }
158
+ async genModule() {
159
+ const modulePath = (0, import_path.join)(this.#moduleDir, `${this.#name}.module.ts`);
160
+ const moduleStr = await import_render.default.render("module", { name: this.#name });
161
+ (0, import_util.writeFormatFile)(modulePath, moduleStr);
162
+ }
163
+ async genApiService(apiService) {
164
+ const controllerPath = (0, import_path.join)(
165
+ this.#moduleDir,
166
+ `${this.#name}.controller.ts`
167
+ );
168
+ const servicePath = (0, import_path.join)(this.#moduleDir, `${this.#name}.service.ts`);
169
+ const [apiImport, apiContent] = new import_api.ApiFormat(
170
+ this.#name,
171
+ apiService
172
+ ).format();
173
+ import_render.default.render("controller", {
174
+ name: this.#name,
175
+ importInfo: apiImport,
176
+ content: apiContent
177
+ }).then((controllerStr) => {
178
+ (0, import_util.writeFormatFile)(controllerPath, controllerStr);
179
+ });
180
+ const [serviceImport, serviceContent] = new import_service.ServiceFormat(
181
+ this.#name,
182
+ apiService
183
+ ).format();
184
+ import_render.default.render("service", {
185
+ name: this.#name,
186
+ content: serviceContent,
187
+ importInfo: serviceImport
188
+ }).then((serviceStr) => {
189
+ (0, import_util.writeFormatFile)(servicePath, serviceStr);
190
+ });
191
+ }
192
+ async genEntity(entity) {
193
+ const entityDir = (0, import_path.join)(this.#moduleDir, "entities");
194
+ if (!(0, import_fs.existsSync)(entityDir)) {
195
+ (0, import_fs.mkdirSync)(entityDir);
196
+ }
197
+ const entityPath = (0, import_path.join)(entityDir, `${this.#name}.entity.ts`);
198
+ const [importInfo, content] = new import_entity.EntityFormat(entity).format();
199
+ const entityStr = await import_render.default.render("entity", {
200
+ name: this.#name,
201
+ importInfo,
202
+ content
203
+ });
204
+ (0, import_util.writeFormatFile)(entityPath, entityStr);
205
+ }
206
+ async genDto(dto) {
207
+ const dtoPath = (0, import_path.join)(this.#moduleDir, "dto");
208
+ if (!(0, import_fs.existsSync)(dtoPath)) {
209
+ (0, import_fs.mkdirSync)(dtoPath);
210
+ }
211
+ const createDtoPath = (0, import_path.join)(dtoPath, `create-${this.#name}.dto.ts`);
212
+ const updateDtoPath = (0, import_path.join)(dtoPath, `update-${this.#name}.dto.ts`);
213
+ const [importInfo, content] = new import_dto.DTOFromat(dto).format();
214
+ const createDtoStr = await import_render.default.render("create-dto", {
215
+ importInfo,
216
+ name: this.#name,
217
+ content
218
+ });
219
+ const updateDtoStr = await import_render.default.render("update-dto", {
220
+ name: this.#name
221
+ });
222
+ (0, import_util.writeFormatFile)(createDtoPath, createDtoStr);
223
+ (0, import_util.writeFormatFile)(updateDtoPath, updateDtoStr);
224
+ }
225
+ }
226
+ // Annotate the CommonJS export names for ESM import in node:
227
+ 0 && (module.exports = {
228
+ RenderNest
229
+ });
@@ -0,0 +1 @@
1
+ export declare function compileToByte(filePath: string): Promise<ArrayBuffer>;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var compile_exports = {};
20
+ __export(compile_exports, {
21
+ compileToByte: () => compileToByte
22
+ });
23
+ module.exports = __toCommonJS(compile_exports);
24
+ var import_shelljs = require("shelljs");
25
+ var import_path = require("path");
26
+ var import_os = require("os");
27
+ const getPathName = () => {
28
+ switch ((0, import_os.platform)()) {
29
+ case "win32":
30
+ return "win/luac.exe";
31
+ case "linux":
32
+ return "linux/luac";
33
+ case "darwin":
34
+ return "mac/luac";
35
+ default:
36
+ throw Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C\u7CFB\u7EDF");
37
+ }
38
+ };
39
+ function compileToByte(filePath) {
40
+ const bin = (0, import_path.resolve)(__dirname, "../lua/bin", getPathName());
41
+ return new Promise((resolve2, reject) => {
42
+ (0, import_shelljs.exec)(
43
+ `${bin} -s -o - ${filePath}`,
44
+ { silent: true, encoding: "buffer" },
45
+ (code, out, err) => {
46
+ if (code === 0) {
47
+ resolve2(out);
48
+ } else {
49
+ reject(err.toString());
50
+ }
51
+ }
52
+ );
53
+ });
54
+ }
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ compileToByte
58
+ });
@@ -0,0 +1,11 @@
1
+ declare const CodegenConfig: {
2
+ webDir: string;
3
+ apiDir: string;
4
+ reverse: boolean;
5
+ };
6
+ export type ConfigType = Partial<typeof CodegenConfig>;
7
+ export declare function setConfig(config: ConfigType): void;
8
+ export declare const getWebDir: () => string;
9
+ export declare const getApiDir: () => string;
10
+ export declare const isReverse: () => boolean;
11
+ export {};
package/dist/config.js ADDED
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var config_exports = {};
20
+ __export(config_exports, {
21
+ getApiDir: () => getApiDir,
22
+ getWebDir: () => getWebDir,
23
+ isReverse: () => isReverse,
24
+ setConfig: () => setConfig
25
+ });
26
+ module.exports = __toCommonJS(config_exports);
27
+ var import_path = require("path");
28
+ const CodegenConfig = {
29
+ webDir: (0, import_path.resolve)(__dirname, ".."),
30
+ apiDir: (0, import_path.resolve)(__dirname, ".."),
31
+ reverse: false
32
+ };
33
+ function setConfig(config) {
34
+ if (config.webDir) {
35
+ CodegenConfig.webDir = config.webDir;
36
+ }
37
+ if (config.apiDir) {
38
+ CodegenConfig.apiDir = config.apiDir;
39
+ }
40
+ if (config.reverse !== void 0) {
41
+ CodegenConfig.reverse = config.reverse;
42
+ }
43
+ }
44
+ const getWebDir = () => CodegenConfig.webDir;
45
+ const getApiDir = () => CodegenConfig.apiDir;
46
+ const isReverse = () => CodegenConfig.reverse;
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ getApiDir,
50
+ getWebDir,
51
+ isReverse,
52
+ setConfig
53
+ });
@@ -0,0 +1,8 @@
1
+ import { ApiServiceField } from '@/types';
2
+ import { BaseFormat } from './base';
3
+ export declare class ApiFormat extends BaseFormat<ApiServiceField> {
4
+ #private;
5
+ constructor(moduleName: string, apiService: ApiServiceField[]);
6
+ protected formatOnceStep(): void;
7
+ protected formatEnd(): void;
8
+ }
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var api_exports = {};
20
+ __export(api_exports, {
21
+ ApiFormat: () => ApiFormat
22
+ });
23
+ module.exports = __toCommonJS(api_exports);
24
+ var import_base = require("./base");
25
+ class ApiFormat extends import_base.BaseFormat {
26
+ #hasInterceptor = false;
27
+ #moudleName;
28
+ #upperName;
29
+ #apiMap = {};
30
+ #importCommon = "Controller,";
31
+ constructor(moduleName, apiService) {
32
+ super(apiService);
33
+ this.#moudleName = moduleName;
34
+ this.#upperName = moduleName[0].toUpperCase() + moduleName.slice(1);
35
+ }
36
+ formatOnceStep() {
37
+ const { key, interceptor } = this.getCurSchema();
38
+ if (this.#apiMap[key]) {
39
+ return;
40
+ }
41
+ this.#apiMap[key] = true;
42
+ if (interceptor) {
43
+ this.#hasInterceptor = true;
44
+ this.content += "\n@UseInterceptors(ClassSerializerInterceptor)\n";
45
+ }
46
+ if (key === "get") {
47
+ this.content += `
48
+ @Get(':id')
49
+ findOne(@Param('id') id: string) {
50
+ return this.${this.#moudleName}Service.query(+id)
51
+ }
52
+ `;
53
+ } else if (key === "all") {
54
+ this.content += `
55
+ @Get()
56
+ findAll(@Query() pageDto: PageDto) {
57
+ const { skip, take } = PageDto.setSkipTake(pageDto)
58
+ return this.${this.#moudleName}Service.table(skip, take, pageDto.search)
59
+ }
60
+ `;
61
+ } else if (key === "delete") {
62
+ this.content += `
63
+ @Delete(':id')
64
+ remove(@Param('id') id: string) {
65
+ return this.${this.#moudleName}Service.delete(+id)
66
+ }
67
+ `;
68
+ } else if (key === "update") {
69
+ this.content += `
70
+ @Patch(':id')
71
+ update(@Param('id') id: string, @Body() update${this.#upperName}Dto: Update${this.#upperName}Dto) {
72
+ return this.${this.#moudleName}Service.update(+id, update${this.#upperName}Dto)
73
+ }
74
+ `;
75
+ } else if (key === "add") {
76
+ this.content += `
77
+ @Post()
78
+ create(@Body() create${this.#upperName}Dto: Create${this.#upperName}Dto) {
79
+ return this.${this.#moudleName}Service.create(create${this.#upperName}Dto)
80
+ }
81
+ `;
82
+ }
83
+ }
84
+ formatEnd() {
85
+ if (this.#apiMap["get"]) {
86
+ this.#importCommon += "Get,";
87
+ }
88
+ if (this.#apiMap["delete"]) {
89
+ this.#importCommon += "Delete,";
90
+ }
91
+ if (this.#apiMap["all"]) {
92
+ this.#importCommon += "Query,";
93
+ this.importInfo += `import { PageDto } from '@api/common/dto/page.dto'
94
+ `;
95
+ }
96
+ if (this.#apiMap["add"]) {
97
+ this.#importCommon += "Post,";
98
+ this.importInfo += `import { Create${this.#upperName}Dto } from './dto/create-${this.#moudleName}.dto'
99
+ `;
100
+ }
101
+ if (this.#apiMap["update"]) {
102
+ this.#importCommon += "Patch,";
103
+ this.importInfo += `import { Update${this.#upperName}Dto } from './dto/update-${this.#moudleName}.dto'
104
+ `;
105
+ }
106
+ if (this.#apiMap["get"] || this.#apiMap["delete"] || this.#apiMap["update"]) {
107
+ this.#importCommon += "Param,";
108
+ }
109
+ if (this.#apiMap["add"] || this.#apiMap["update"]) {
110
+ this.#importCommon += "Body,";
111
+ }
112
+ if (this.#hasInterceptor) {
113
+ this.#importCommon += "UseInterceptors,ClassSerializerInterceptor,";
114
+ }
115
+ this.importInfo += `import { ${this.#importCommon.slice(0, this.#importCommon.length - 1)} } from '@nestjs/common'
116
+ `;
117
+ }
118
+ }
119
+ // Annotate the CommonJS export names for ESM import in node:
120
+ 0 && (module.exports = {
121
+ ApiFormat
122
+ });
@@ -0,0 +1,10 @@
1
+ export declare abstract class BaseFormat<T> {
2
+ #private;
3
+ protected importInfo: string;
4
+ protected content: string;
5
+ constructor(schemas: T[]);
6
+ protected getCurSchema(): T;
7
+ protected formatOnceStep(): void;
8
+ protected formatEnd(): void;
9
+ format(): string[];
10
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var base_exports = {};
20
+ __export(base_exports, {
21
+ BaseFormat: () => BaseFormat
22
+ });
23
+ module.exports = __toCommonJS(base_exports);
24
+ class BaseFormat {
25
+ importInfo;
26
+ content;
27
+ #schemas;
28
+ #index = 0;
29
+ constructor(schemas) {
30
+ this.#schemas = schemas;
31
+ this.content = "";
32
+ this.importInfo = "";
33
+ }
34
+ #hasNext() {
35
+ return this.#schemas.length > this.#index;
36
+ }
37
+ getCurSchema() {
38
+ return this.#schemas[this.#index];
39
+ }
40
+ formatOnceStep() {
41
+ }
42
+ formatEnd() {
43
+ }
44
+ format() {
45
+ while (this.#hasNext()) {
46
+ this.formatOnceStep();
47
+ this.#index++;
48
+ }
49
+ this.formatEnd();
50
+ return [this.importInfo, this.content];
51
+ }
52
+ }
53
+ // Annotate the CommonJS export names for ESM import in node:
54
+ 0 && (module.exports = {
55
+ BaseFormat
56
+ });
@@ -0,0 +1,8 @@
1
+ import { DtoField } from '@/types';
2
+ import { BaseFormat } from './base';
3
+ export declare class DTOFromat extends BaseFormat<DtoField> {
4
+ #private;
5
+ constructor(dto: DtoField[]);
6
+ protected formatOnceStep(): void;
7
+ protected formatEnd(): void;
8
+ }