vona-cli-set-api 1.0.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 (125) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/cli/templates/create/bean/boilerplate/{{sceneName}}.{{beanName}}.ts_ +4 -0
  4. package/cli/templates/create/module/boilerplate/_package.json +26 -0
  5. package/cli/templates/create/module/boilerplate/_tsconfig.json +8 -0
  6. package/cli/templates/create/module/boilerplate/src/index.ts_ +1 -0
  7. package/cli/templates/create/module/snippets/package.json.cjs +11 -0
  8. package/cli/templates/create/module/snippets/tsconfig.json.cjs +13 -0
  9. package/cli/templates/create/suite/_package.json +10 -0
  10. package/cli/templates/create/suite/_tsconfig.base.json +4 -0
  11. package/cli/templates/create/suite/_tsconfig.json +6 -0
  12. package/cli/templates/create/suite/modules/.gitkeep +0 -0
  13. package/dist/index.d.ts +3 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +3 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/lib/bean/cli.create.bean.d.ts +18 -0
  18. package/dist/lib/bean/cli.create.bean.d.ts.map +1 -0
  19. package/dist/lib/bean/cli.create.bean.js +61 -0
  20. package/dist/lib/bean/cli.create.bean.js.map +1 -0
  21. package/dist/lib/bean/cli.create.module.d.ts +16 -0
  22. package/dist/lib/bean/cli.create.module.d.ts.map +1 -0
  23. package/dist/lib/bean/cli.create.module.js +70 -0
  24. package/dist/lib/bean/cli.create.module.js.map +1 -0
  25. package/dist/lib/bean/cli.create.suite.d.ts +12 -0
  26. package/dist/lib/bean/cli.create.suite.d.ts.map +1 -0
  27. package/dist/lib/bean/cli.create.suite.js +37 -0
  28. package/dist/lib/bean/cli.create.suite.js.map +1 -0
  29. package/dist/lib/bean/cli.default.list.d.ts +13 -0
  30. package/dist/lib/bean/cli.default.list.d.ts.map +1 -0
  31. package/dist/lib/bean/cli.default.list.js +94 -0
  32. package/dist/lib/bean/cli.default.list.js.map +1 -0
  33. package/dist/lib/bean/cli.tools.build.d.ts +11 -0
  34. package/dist/lib/bean/cli.tools.build.d.ts.map +1 -0
  35. package/dist/lib/bean/cli.tools.build.js +41 -0
  36. package/dist/lib/bean/cli.tools.build.js.map +1 -0
  37. package/dist/lib/bean/cli.tools.deps.d.ts +21 -0
  38. package/dist/lib/bean/cli.tools.deps.d.ts.map +1 -0
  39. package/dist/lib/bean/cli.tools.deps.js +149 -0
  40. package/dist/lib/bean/cli.tools.deps.js.map +1 -0
  41. package/dist/lib/bean/cli.tools.metadata.d.ts +13 -0
  42. package/dist/lib/bean/cli.tools.metadata.d.ts.map +1 -0
  43. package/dist/lib/bean/cli.tools.metadata.js +132 -0
  44. package/dist/lib/bean/cli.tools.metadata.js.map +1 -0
  45. package/dist/lib/bean/toolsMetadata/generateAtoms.d.ts +2 -0
  46. package/dist/lib/bean/toolsMetadata/generateAtoms.d.ts.map +1 -0
  47. package/dist/lib/bean/toolsMetadata/generateAtoms.js +24 -0
  48. package/dist/lib/bean/toolsMetadata/generateAtoms.js.map +1 -0
  49. package/dist/lib/bean/toolsMetadata/generateBeans.d.ts +2 -0
  50. package/dist/lib/bean/toolsMetadata/generateBeans.d.ts.map +1 -0
  51. package/dist/lib/bean/toolsMetadata/generateBeans.js +60 -0
  52. package/dist/lib/bean/toolsMetadata/generateBeans.js.map +1 -0
  53. package/dist/lib/bean/toolsMetadata/generateConfig.d.ts +5 -0
  54. package/dist/lib/bean/toolsMetadata/generateConfig.d.ts.map +1 -0
  55. package/dist/lib/bean/toolsMetadata/generateConfig.js +64 -0
  56. package/dist/lib/bean/toolsMetadata/generateConfig.js.map +1 -0
  57. package/dist/lib/bean/toolsMetadata/generateControllers.d.ts +2 -0
  58. package/dist/lib/bean/toolsMetadata/generateControllers.d.ts.map +1 -0
  59. package/dist/lib/bean/toolsMetadata/generateControllers.js +24 -0
  60. package/dist/lib/bean/toolsMetadata/generateControllers.js.map +1 -0
  61. package/dist/lib/bean/toolsMetadata/generateEntities.d.ts +2 -0
  62. package/dist/lib/bean/toolsMetadata/generateEntities.d.ts.map +1 -0
  63. package/dist/lib/bean/toolsMetadata/generateEntities.js +24 -0
  64. package/dist/lib/bean/toolsMetadata/generateEntities.js.map +1 -0
  65. package/dist/lib/bean/toolsMetadata/generateModels.d.ts +2 -0
  66. package/dist/lib/bean/toolsMetadata/generateModels.d.ts.map +1 -0
  67. package/dist/lib/bean/toolsMetadata/generateModels.js +34 -0
  68. package/dist/lib/bean/toolsMetadata/generateModels.js.map +1 -0
  69. package/dist/lib/bean/toolsMetadata/generateMonkey.d.ts +3 -0
  70. package/dist/lib/bean/toolsMetadata/generateMonkey.d.ts.map +1 -0
  71. package/dist/lib/bean/toolsMetadata/generateMonkey.js +25 -0
  72. package/dist/lib/bean/toolsMetadata/generateMonkey.js.map +1 -0
  73. package/dist/lib/bean/toolsMetadata/generateScope.d.ts +10 -0
  74. package/dist/lib/bean/toolsMetadata/generateScope.d.ts.map +1 -0
  75. package/dist/lib/bean/toolsMetadata/generateScope.js +50 -0
  76. package/dist/lib/bean/toolsMetadata/generateScope.js.map +1 -0
  77. package/dist/lib/bean/toolsMetadata/generateServices.d.ts +2 -0
  78. package/dist/lib/bean/toolsMetadata/generateServices.d.ts.map +1 -0
  79. package/dist/lib/bean/toolsMetadata/generateServices.js +54 -0
  80. package/dist/lib/bean/toolsMetadata/generateServices.js.map +1 -0
  81. package/dist/lib/beans.d.ts +17 -0
  82. package/dist/lib/beans.d.ts.map +1 -0
  83. package/dist/lib/beans.js +17 -0
  84. package/dist/lib/beans.js.map +1 -0
  85. package/dist/lib/command/create.bean.d.ts +43 -0
  86. package/dist/lib/command/create.bean.d.ts.map +1 -0
  87. package/dist/lib/command/create.bean.js +42 -0
  88. package/dist/lib/command/create.bean.js.map +1 -0
  89. package/dist/lib/command/create.module.d.ts +46 -0
  90. package/dist/lib/command/create.module.d.ts.map +1 -0
  91. package/dist/lib/command/create.module.js +45 -0
  92. package/dist/lib/command/create.module.js.map +1 -0
  93. package/dist/lib/command/create.suite.d.ts +33 -0
  94. package/dist/lib/command/create.suite.d.ts.map +1 -0
  95. package/dist/lib/command/create.suite.js +32 -0
  96. package/dist/lib/command/create.suite.js.map +1 -0
  97. package/dist/lib/command/default.list.d.ts +20 -0
  98. package/dist/lib/command/default.list.d.ts.map +1 -0
  99. package/dist/lib/command/default.list.js +19 -0
  100. package/dist/lib/command/default.list.js.map +1 -0
  101. package/dist/lib/command/tools.build.d.ts +16 -0
  102. package/dist/lib/command/tools.build.d.ts.map +1 -0
  103. package/dist/lib/command/tools.build.js +15 -0
  104. package/dist/lib/command/tools.build.js.map +1 -0
  105. package/dist/lib/command/tools.deps.d.ts +20 -0
  106. package/dist/lib/command/tools.deps.d.ts.map +1 -0
  107. package/dist/lib/command/tools.deps.js +19 -0
  108. package/dist/lib/command/tools.deps.js.map +1 -0
  109. package/dist/lib/command/tools.metadata.d.ts +16 -0
  110. package/dist/lib/command/tools.metadata.d.ts.map +1 -0
  111. package/dist/lib/command/tools.metadata.js +15 -0
  112. package/dist/lib/command/tools.metadata.js.map +1 -0
  113. package/dist/lib/commands.d.ts +191 -0
  114. package/dist/lib/commands.d.ts.map +1 -0
  115. package/dist/lib/commands.js +25 -0
  116. package/dist/lib/commands.js.map +1 -0
  117. package/dist/lib/this.d.ts +2 -0
  118. package/dist/lib/this.d.ts.map +1 -0
  119. package/dist/lib/this.js +2 -0
  120. package/dist/lib/this.js.map +1 -0
  121. package/dist/typings.d.ts +6 -0
  122. package/dist/typings.d.ts.map +1 -0
  123. package/dist/typings.js +2 -0
  124. package/dist/typings.js.map +1 -0
  125. package/package.json +50 -0
@@ -0,0 +1,149 @@
1
+ import path from 'node:path';
2
+ import { BeanCliBase } from '@cabloy/cli';
3
+ import fse from 'fs-extra';
4
+ import eggBornUtils from 'egg-born-utils';
5
+ export class CliToolsDeps extends BeanCliBase {
6
+ async execute() {
7
+ const { argv } = this.context;
8
+ // super
9
+ await super.execute();
10
+ const projectPath = argv.projectPath;
11
+ const tsc = argv.tsc;
12
+ const force = argv.force;
13
+ // generate
14
+ await this._generate(projectPath, tsc, force);
15
+ }
16
+ async _generate(projectPath, tsc, force) {
17
+ const pkgFile = path.join(projectPath, 'package.json');
18
+ const pkgOriginalFile = path.join(projectPath, 'package.original.json');
19
+ // check original
20
+ if (!fse.existsSync(pkgOriginalFile)) {
21
+ await fse.copyFile(pkgFile, pkgOriginalFile);
22
+ }
23
+ // pkg/pkgOriginal
24
+ const pkgOriginal = await this.helper.loadJSONFile(pkgOriginalFile);
25
+ if (fse.existsSync(pkgFile)) {
26
+ const pkg = await this.helper.loadJSONFile(pkgFile);
27
+ // save back versions
28
+ await this._saveBackVersions(pkg, pkgOriginal, pkgOriginalFile);
29
+ }
30
+ // generate pkg from pkgOriginal
31
+ await this._generatePkgFromPkgOriginal(pkgOriginal, pkgFile);
32
+ // generate type modules file
33
+ await this._generateTypeModulesFile(projectPath, force);
34
+ // generate type project file
35
+ await this._generateTypeProjectFile(projectPath);
36
+ // tsc
37
+ if (tsc) {
38
+ await this._tsc();
39
+ }
40
+ }
41
+ _getProjectMode(projectPath) {
42
+ const vonaPath = this._getVonaPath(projectPath);
43
+ return vonaPath.indexOf('packages-vona') > -1 ? 'source' : 'project';
44
+ }
45
+ _getVonaPath(projectPath) {
46
+ return eggBornUtils.tools._getVonaPath(projectPath);
47
+ }
48
+ _resolveTemplatePath(file) {
49
+ return new URL(path.join('../../../templates', file), import.meta.url);
50
+ }
51
+ async _generateTypeProjectFile(projectPath) {
52
+ const projectMode = this._getProjectMode(projectPath);
53
+ const fileTemplate = this._resolveTemplatePath(`_tsconfig_${projectMode}.json`);
54
+ const fileConfig = path.join(projectPath, 'tsconfig.json');
55
+ // content
56
+ let contentOld;
57
+ const exists = fse.existsSync(fileConfig);
58
+ if (exists) {
59
+ contentOld = (await fse.readFile(fileConfig)).toString();
60
+ }
61
+ else {
62
+ contentOld = (await fse.readFile(fileTemplate)).toString();
63
+ }
64
+ const content = JSON.parse(contentOld);
65
+ const referencesOld = content.references;
66
+ // remove old
67
+ const referencesNew = referencesOld.filter(item => !['src/suite/', 'src/module/', 'src/suite-vendor/', 'src/module-vendor/'].some(item2 => item.path.indexOf(item2) > -1));
68
+ //
69
+ if (exists && JSON.stringify(referencesNew, null, 2) === JSON.stringify(referencesOld, null, 2))
70
+ return;
71
+ const contentNew = { ...content, references: referencesNew };
72
+ await fse.outputFile(fileConfig, JSON.stringify(contentNew, null, 2));
73
+ }
74
+ async _generateTypeModulesFile(projectPath, force) {
75
+ const typeFile = path.join(projectPath, 'src/backend/typing/modules.d.ts');
76
+ let content = '';
77
+ // // all suites
78
+ // for (const key in this.modulesMeta.suites) {
79
+ // const suite = this.modulesMeta.suites[key];
80
+ // content += `import '${suite.package.name}';\n`;
81
+ // }
82
+ // all modules
83
+ this.modulesMeta.modulesArray.forEach(module => {
84
+ content += `import '${module.package.name}';\n`;
85
+ });
86
+ await fse.writeFile(typeFile, content);
87
+ // all modules: type file
88
+ for (const module of this.modulesMeta.modulesArray) {
89
+ if (module.info.node_modules)
90
+ continue;
91
+ const moduleTypeFile = path.join(module.root, 'src/.metadata/modules.d.ts');
92
+ if (force || !fse.existsSync(moduleTypeFile)) {
93
+ await fse.ensureLink(typeFile, moduleTypeFile);
94
+ }
95
+ }
96
+ }
97
+ async _generatePkgFromPkgOriginal(pkgOriginal, pkgFile) {
98
+ const depsOriginal = pkgOriginal.dependencies;
99
+ // all modules
100
+ this.modulesMeta.modulesArray.forEach(module => {
101
+ if (!depsOriginal[module.package.name]) {
102
+ const version = module.info.node_modules ? '^' + module.package.version : 'workspace:^';
103
+ depsOriginal[module.package.name] = version;
104
+ }
105
+ });
106
+ // all globalDependencies of modules
107
+ this.modulesMeta.modulesArray.forEach(module => {
108
+ const deps = module.package.dependencies;
109
+ const globalDependencies = module.package.vonaModule?.globalDependencies;
110
+ if (globalDependencies) {
111
+ for (const key in globalDependencies) {
112
+ let version = globalDependencies[key];
113
+ if (version !== false && !depsOriginal[key]) {
114
+ if (version === true)
115
+ version = deps[key];
116
+ depsOriginal[key] = version;
117
+ }
118
+ }
119
+ }
120
+ });
121
+ await this.helper.saveJSONFile(pkgFile, pkgOriginal);
122
+ }
123
+ async _saveBackVersions(pkg, pkgOriginal, pkgOriginalFile) {
124
+ let changed = false;
125
+ for (const key of ['version', 'gitHead']) {
126
+ if (pkgOriginal[key] !== pkg[key]) {
127
+ pkgOriginal[key] = pkg[key];
128
+ changed = true;
129
+ }
130
+ }
131
+ for (const field of ['dependencies', 'devDependencies']) {
132
+ const fieldObj = pkg[field];
133
+ const fieldObjOriginal = pkgOriginal[field];
134
+ for (const key in fieldObjOriginal) {
135
+ if (fieldObjOriginal[key] !== fieldObj[key]) {
136
+ fieldObjOriginal[key] = fieldObj[key];
137
+ changed = true;
138
+ }
139
+ }
140
+ }
141
+ if (changed) {
142
+ await this.helper.saveJSONFile(pkgOriginalFile, pkgOriginal);
143
+ }
144
+ }
145
+ async _tsc() {
146
+ await this.helper.processHelper.tsc();
147
+ }
148
+ }
149
+ //# sourceMappingURL=cli.tools.deps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.tools.deps.js","sourceRoot":"","sources":["../../../src/lib/bean/cli.tools.deps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { BeanCliBase } from '@cabloy/cli';
2
+ declare module '@cabloy/cli' {
3
+ interface ICommandArgv {
4
+ force: boolean;
5
+ }
6
+ }
7
+ export declare class CliToolsMetadata extends BeanCliBase {
8
+ execute(): Promise<void>;
9
+ _generateMetadata(moduleName: string, force: boolean): Promise<void>;
10
+ _generateThis(moduleName: string, relativeNameCapitalize: string, modulePath: string): Promise<void>;
11
+ _generateIndex(modulePath: string): Promise<void>;
12
+ }
13
+ //# sourceMappingURL=cli.tools.metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.tools.metadata.d.ts","sourceRoot":"","sources":["../../../src/lib/bean/cli.tools.metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAa1C,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,YAAY;QACpB,KAAK,EAAE,OAAO,CAAC;KAChB;CACF;AAED,qBAAa,gBAAiB,SAAQ,WAAW;IACzC,OAAO;IAyBP,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAmEpD,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAUpF,cAAc,CAAC,UAAU,EAAE,MAAM;CAcxC"}
@@ -0,0 +1,132 @@
1
+ import { BeanCliBase } from '@cabloy/cli';
2
+ import fse from 'fs-extra';
3
+ import path from 'path';
4
+ import { generateBeans } from './toolsMetadata/generateBeans.js';
5
+ import { generateAtoms } from './toolsMetadata/generateAtoms.js';
6
+ import { generateControllers } from './toolsMetadata/generateControllers.js';
7
+ import { generateEntities } from './toolsMetadata/generateEntities.js';
8
+ import { generateModels } from './toolsMetadata/generateModels.js';
9
+ import { generateServices } from './toolsMetadata/generateServices.js';
10
+ import { generateConfig, generateConstant, generateError, generateLocale } from './toolsMetadata/generateConfig.js';
11
+ import { generateScope } from './toolsMetadata/generateScope.js';
12
+ import { generateMonkey, generateMain } from './toolsMetadata/generateMonkey.js';
13
+ export class CliToolsMetadata extends BeanCliBase {
14
+ async execute() {
15
+ const { argv } = this.context;
16
+ // super
17
+ await super.execute();
18
+ let moduleNames = argv._;
19
+ const force = argv.force ?? moduleNames.length > 0;
20
+ if (moduleNames.length === 0) {
21
+ moduleNames = this.modulesMeta.modulesArray
22
+ .filter(item => !item.info.node_modules)
23
+ .map(item => item.info.relativeName);
24
+ }
25
+ const total = moduleNames.length;
26
+ for (let index = 0; index < total; index++) {
27
+ const moduleName = moduleNames[index];
28
+ // log
29
+ await this.console.log({
30
+ total,
31
+ progress: index,
32
+ text: moduleName,
33
+ });
34
+ // generate res
35
+ await this._generateMetadata(moduleName, force);
36
+ }
37
+ }
38
+ async _generateMetadata(moduleName, force) {
39
+ const module = this.helper.findModule(moduleName);
40
+ if (!module)
41
+ throw new Error(`module not found: ${moduleName}`);
42
+ const modulePath = module.root;
43
+ const metaDir = path.join(modulePath, 'src/.metadata');
44
+ const metaIndexFile = path.join(metaDir, 'index.ts');
45
+ if (fse.existsSync(metaIndexFile) && !force) {
46
+ // do nothing
47
+ return;
48
+ }
49
+ await this.helper.ensureDir(metaDir);
50
+ // relativeNameCapitalize
51
+ const relativeNameCapitalize = this.helper.stringToCapitalize(moduleName, '-');
52
+ // content
53
+ let content = '';
54
+ // beans
55
+ content += await generateBeans(moduleName, modulePath);
56
+ // atoms
57
+ content += await generateAtoms(moduleName, modulePath);
58
+ // controllers
59
+ content += await generateControllers(moduleName, modulePath);
60
+ // entities
61
+ content += await generateEntities(moduleName, modulePath);
62
+ // models
63
+ const contentModels = await generateModels(moduleName, modulePath);
64
+ content += contentModels;
65
+ // services
66
+ const contentServices = await generateServices(moduleName, modulePath);
67
+ content += contentServices;
68
+ // config
69
+ const contentConfig = await generateConfig(modulePath);
70
+ content += contentConfig;
71
+ // constant
72
+ const contentConstants = await generateConstant(modulePath);
73
+ content += contentConstants;
74
+ // locale
75
+ const contentLocales = await generateLocale(modulePath);
76
+ content += contentLocales;
77
+ // error
78
+ const contentErrors = await generateError(modulePath);
79
+ content += contentErrors;
80
+ // monkey
81
+ content += await generateMonkey(modulePath);
82
+ // main
83
+ content += await generateMain(modulePath);
84
+ // scope
85
+ content += await generateScope(moduleName, relativeNameCapitalize, {
86
+ config: contentConfig,
87
+ errors: contentErrors,
88
+ locales: contentLocales,
89
+ constants: contentConstants,
90
+ services: contentServices,
91
+ models: contentModels,
92
+ });
93
+ // empty
94
+ if (!content.trim()) {
95
+ content = 'export {};';
96
+ }
97
+ // save
98
+ await fse.writeFile(metaIndexFile, content);
99
+ await this.helper.formatFile({ fileName: metaIndexFile, logPrefix: 'format: ' });
100
+ // generate this
101
+ await this._generateThis(moduleName, relativeNameCapitalize, modulePath);
102
+ // index
103
+ await this._generateIndex(modulePath);
104
+ }
105
+ async _generateThis(moduleName, relativeNameCapitalize, modulePath) {
106
+ const thisDest = path.join(modulePath, 'src/.metadata/this.ts');
107
+ if (fse.existsSync(thisDest))
108
+ return;
109
+ const content = `export const __ThisModule__ = '${moduleName}';
110
+ export { ScopeModule${relativeNameCapitalize} as ScopeModule } from './index.js';
111
+ `;
112
+ // save
113
+ await fse.writeFile(thisDest, content);
114
+ }
115
+ async _generateIndex(modulePath) {
116
+ const jsExport = "export * from './.metadata/index.js';";
117
+ const jsFile = path.join(modulePath, 'src/index.ts');
118
+ let jsContent;
119
+ if (fse.existsSync(jsFile)) {
120
+ jsContent = (await fse.readFile(jsFile)).toString();
121
+ if (jsContent.indexOf(jsExport) > -1)
122
+ return;
123
+ jsContent = jsExport + '\n' + jsContent;
124
+ jsContent = jsContent.replace('export {};\n', '');
125
+ }
126
+ else {
127
+ jsContent = jsExport + '\n';
128
+ }
129
+ await fse.writeFile(jsFile, jsContent);
130
+ }
131
+ }
132
+ //# sourceMappingURL=cli.tools.metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.tools.metadata.js","sourceRoot":"","sources":["../../../src/lib/bean/cli.tools.metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function generateAtoms(_moduleName: string, modulePath: string): Promise<string>;
2
+ //# sourceMappingURL=generateAtoms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateAtoms.d.ts","sourceRoot":"","sources":["../../../../src/lib/bean/toolsMetadata/generateAtoms.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAkB1E"}
@@ -0,0 +1,24 @@
1
+ import path from 'path';
2
+ import eggBornUtils from 'egg-born-utils';
3
+ export async function generateAtoms(_moduleName, modulePath) {
4
+ const pattern = `${modulePath}/src/atom/*.ts`;
5
+ const files = await eggBornUtils.tools.globbyAsync(pattern);
6
+ if (files.length === 0)
7
+ return '';
8
+ files.sort();
9
+ const contentExports = [];
10
+ for (const file of files) {
11
+ const fileName = path.basename(file);
12
+ const parts = fileName.split('.').slice(0, -1);
13
+ if (parts.length !== 1)
14
+ continue;
15
+ contentExports.push(`export * from '../atom/${parts[0]}.js';`);
16
+ }
17
+ // combine
18
+ const content = `/** atoms: begin */
19
+ ${contentExports.join('\n')}
20
+ /** atoms: end */
21
+ `;
22
+ return content;
23
+ }
24
+ //# sourceMappingURL=generateAtoms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateAtoms.js","sourceRoot":"","sources":["../../../../src/lib/bean/toolsMetadata/generateAtoms.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB,EAAE,UAAkB;IACzE,MAAM,OAAO,GAAG,GAAG,UAAU,gBAAgB,CAAC;IAC9C,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,KAAK,CAAC,IAAI,EAAE,CAAC;IACb,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,cAAc,CAAC,IAAI,CAAC,0BAA0B,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IACD,UAAU;IACV,MAAM,OAAO,GAAG;EAChB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;CAE1B,CAAC;IACA,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function generateBeans(moduleName: string, modulePath: string): Promise<string>;
2
+ //# sourceMappingURL=generateBeans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateBeans.d.ts","sourceRoot":"","sources":["../../../../src/lib/bean/toolsMetadata/generateBeans.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBA4CzE"}
@@ -0,0 +1,60 @@
1
+ import path from 'path';
2
+ import eggBornUtils from 'egg-born-utils';
3
+ export async function generateBeans(moduleName, modulePath) {
4
+ const pattern = `${modulePath}/src/bean/*.ts`;
5
+ const files = await eggBornUtils.tools.globbyAsync(pattern);
6
+ if (files.length === 0)
7
+ return '';
8
+ files.sort();
9
+ const contentExports = [];
10
+ const contentImports = [];
11
+ const contentRecordsGlobal = [];
12
+ const contentRecordsGeneral = [];
13
+ for (const file of files) {
14
+ const fileName = path.basename(file);
15
+ const parts = fileName.split('.').slice(0, -1);
16
+ if (parts.length < 2)
17
+ continue;
18
+ const isIgnore = checkIgnoreOfParts(parts);
19
+ const isBeanGlobal = parts[0] === 'bean';
20
+ const fileNameJS = fileName.replace('.ts', '.js');
21
+ let className = parts.map(item => item.charAt(0).toUpperCase() + item.substring(1)).join('');
22
+ const beanFullName = isBeanGlobal ? parts[1] : `${moduleName}.${parts.join('.')}`;
23
+ if (className === 'BeanBase')
24
+ className = 'BeanBase2';
25
+ contentExports.push(`export * from '../bean/${fileNameJS}';`);
26
+ contentImports.push(`import { ${className} } from '../bean/${fileNameJS}';`);
27
+ if (isBeanGlobal && !isIgnore) {
28
+ contentRecordsGlobal.push(`'${beanFullName}': ${className};`);
29
+ }
30
+ else {
31
+ contentRecordsGeneral.push(`'${beanFullName}': ${className};`);
32
+ }
33
+ }
34
+ // combine
35
+ const content = `/** beans: begin */
36
+ ${contentExports.join('\n')}
37
+ ${contentImports.join('\n')}
38
+ import 'vona';
39
+ declare module 'vona' {
40
+ export interface IBeanRecordGlobal {
41
+ ${contentRecordsGlobal.join('\n')}
42
+ }
43
+
44
+ export interface IBeanRecordGeneral {
45
+ ${contentRecordsGeneral.join('\n')}
46
+ }
47
+ }
48
+ /** beans: end */
49
+ `;
50
+ return content;
51
+ }
52
+ function checkIgnoreOfParts(parts) {
53
+ const indexLast = parts.length - 1;
54
+ if (parts[indexLast].endsWith('_')) {
55
+ parts[indexLast] = parts[indexLast].substring(0, parts[indexLast].length - 1);
56
+ return true;
57
+ }
58
+ return false;
59
+ }
60
+ //# sourceMappingURL=generateBeans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateBeans.js","sourceRoot":"","sources":["../../../../src/lib/bean/toolsMetadata/generateBeans.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function generateConfig(modulePath: string): Promise<"" | "/** config: begin */\nexport * from '../config/config.js';\nimport { config } from '../config/config.js';\n/** config: end */\n">;
2
+ export declare function generateConstant(modulePath: string): Promise<"" | "/** constant: begin */\nexport * from '../config/constants.js';\nimport { constants } from '../config/constants.js';\n/** constant: end */\n">;
3
+ export declare function generateLocale(modulePath: string): Promise<string>;
4
+ export declare function generateError(modulePath: string): Promise<"" | "/** error: begin */\nexport * from '../config/errors.js';\nimport { Errors } from '../config/errors.js';\n/** error: end */\n">;
5
+ //# sourceMappingURL=generateConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateConfig.d.ts","sourceRoot":"","sources":["../../../../src/lib/bean/toolsMetadata/generateConfig.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,mJAUtD;AAED,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,gKAUxD;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,mBAsBtD;AAED,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,iJAUrD"}
@@ -0,0 +1,64 @@
1
+ import path from 'path';
2
+ import fse from 'fs-extra';
3
+ import eggBornUtils from 'egg-born-utils';
4
+ export async function generateConfig(modulePath) {
5
+ const configFile = path.join(modulePath, 'src/config/config.ts');
6
+ if (!fse.existsSync(configFile))
7
+ return '';
8
+ // combine
9
+ const content = `/** config: begin */
10
+ export * from '../config/config.js';
11
+ import { config } from '../config/config.js';
12
+ /** config: end */
13
+ `;
14
+ return content;
15
+ }
16
+ export async function generateConstant(modulePath) {
17
+ const constantFile = path.join(modulePath, 'src/config/constants.ts');
18
+ if (!fse.existsSync(constantFile))
19
+ return '';
20
+ // combine
21
+ const content = `/** constant: begin */
22
+ export * from '../config/constants.js';
23
+ import { constants } from '../config/constants.js';
24
+ /** constant: end */
25
+ `;
26
+ return content;
27
+ }
28
+ export async function generateLocale(modulePath) {
29
+ const pattern = `${modulePath}/src/config/locale/*.ts`;
30
+ const files = await eggBornUtils.tools.globbyAsync(pattern);
31
+ if (files.length === 0)
32
+ return '';
33
+ files.sort();
34
+ const contentImports = [];
35
+ const contentLocales = [];
36
+ for (const file of files) {
37
+ const localeName = path.basename(file.substring(0, file.length - '.ts'.length));
38
+ const className = 'locale_' + localeName.replace('-', '_');
39
+ contentImports.push(`import ${className} from '../config/locale/${localeName}.js';`);
40
+ contentLocales.push(`'${localeName}': ${className},`);
41
+ }
42
+ // combine
43
+ const content = `/** locale: begin */
44
+ ${contentImports.join('\n')}
45
+ export const locales = {
46
+ ${contentLocales.join('\n')}
47
+ };
48
+ /** locale: end */
49
+ `;
50
+ return content;
51
+ }
52
+ export async function generateError(modulePath) {
53
+ const errorFile = path.join(modulePath, 'src/config/errors.ts');
54
+ if (!fse.existsSync(errorFile))
55
+ return '';
56
+ // combine
57
+ const content = `/** error: begin */
58
+ export * from '../config/errors.js';
59
+ import { Errors } from '../config/errors.js';
60
+ /** error: end */
61
+ `;
62
+ return content;
63
+ }
64
+ //# sourceMappingURL=generateConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateConfig.js","sourceRoot":"","sources":["../../../../src/lib/bean/toolsMetadata/generateConfig.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAkB;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;IACjE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3C,UAAU;IACV,MAAM,OAAO,GAAG;;;;CAIjB,CAAC;IACA,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;IACtE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7C,UAAU;IACV,MAAM,OAAO,GAAG;;;;CAIjB,CAAC;IACA,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAkB;IACrD,MAAM,OAAO,GAAG,GAAG,UAAU,yBAAyB,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,KAAK,CAAC,IAAI,EAAE,CAAC;IACb,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3D,cAAc,CAAC,IAAI,CAAC,UAAU,SAAS,2BAA2B,UAAU,OAAO,CAAC,CAAC;QACrF,cAAc,CAAC,IAAI,CAAC,IAAI,UAAU,MAAM,SAAS,GAAG,CAAC,CAAC;IACxD,CAAC;IACD,UAAU;IACV,MAAM,OAAO,GAAG;EAChB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;IAEvB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;;CAG5B,CAAC;IACA,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAkB;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;IAChE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,UAAU;IACV,MAAM,OAAO,GAAG;;;;CAIjB,CAAC;IACA,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function generateControllers(_moduleName: string, modulePath: string): Promise<string>;
2
+ //# sourceMappingURL=generateControllers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateControllers.d.ts","sourceRoot":"","sources":["../../../../src/lib/bean/toolsMetadata/generateControllers.ts"],"names":[],"mappings":"AAGA,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAkBhF"}
@@ -0,0 +1,24 @@
1
+ import path from 'path';
2
+ import eggBornUtils from 'egg-born-utils';
3
+ export async function generateControllers(_moduleName, modulePath) {
4
+ const pattern = `${modulePath}/src/controller/*.ts`;
5
+ const files = await eggBornUtils.tools.globbyAsync(pattern);
6
+ if (files.length === 0)
7
+ return '';
8
+ files.sort();
9
+ const contentExports = [];
10
+ for (const file of files) {
11
+ const fileName = path.basename(file);
12
+ const parts = fileName.split('.').slice(0, -1);
13
+ if (parts.length !== 1)
14
+ continue;
15
+ contentExports.push(`export * from '../controller/${parts[0]}.js';`);
16
+ }
17
+ // combine
18
+ const content = `/** controllers: begin */
19
+ ${contentExports.join('\n')}
20
+ /** controllers: end */
21
+ `;
22
+ return content;
23
+ }
24
+ //# sourceMappingURL=generateControllers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateControllers.js","sourceRoot":"","sources":["../../../../src/lib/bean/toolsMetadata/generateControllers.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB,EAAE,UAAkB;IAC/E,MAAM,OAAO,GAAG,GAAG,UAAU,sBAAsB,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,KAAK,CAAC,IAAI,EAAE,CAAC;IACb,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,cAAc,CAAC,IAAI,CAAC,gCAAgC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC;IACD,UAAU;IACV,MAAM,OAAO,GAAG;EAChB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;CAE1B,CAAC;IACA,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function generateEntities(_moduleName: string, modulePath: string): Promise<string>;
2
+ //# sourceMappingURL=generateEntities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateEntities.d.ts","sourceRoot":"","sources":["../../../../src/lib/bean/toolsMetadata/generateEntities.ts"],"names":[],"mappings":"AAGA,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAkB7E"}
@@ -0,0 +1,24 @@
1
+ import path from 'path';
2
+ import eggBornUtils from 'egg-born-utils';
3
+ export async function generateEntities(_moduleName, modulePath) {
4
+ const pattern = `${modulePath}/src/entity/*.ts`;
5
+ const files = await eggBornUtils.tools.globbyAsync(pattern);
6
+ if (files.length === 0)
7
+ return '';
8
+ files.sort();
9
+ const contentExports = [];
10
+ for (const file of files) {
11
+ const fileName = path.basename(file);
12
+ const parts = fileName.split('.').slice(0, -1);
13
+ if (parts.length !== 1)
14
+ continue;
15
+ contentExports.push(`export * from '../entity/${parts[0]}.js';`);
16
+ }
17
+ // combine
18
+ const content = `/** entities: begin */
19
+ ${contentExports.join('\n')}
20
+ /** entities: end */
21
+ `;
22
+ return content;
23
+ }
24
+ //# sourceMappingURL=generateEntities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateEntities.js","sourceRoot":"","sources":["../../../../src/lib/bean/toolsMetadata/generateEntities.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAmB,EAAE,UAAkB;IAC5E,MAAM,OAAO,GAAG,GAAG,UAAU,kBAAkB,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,KAAK,CAAC,IAAI,EAAE,CAAC;IACb,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,cAAc,CAAC,IAAI,CAAC,4BAA4B,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IACD,UAAU;IACV,MAAM,OAAO,GAAG;EAChB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;CAE1B,CAAC;IACA,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function generateModels(_moduleName: string, modulePath: string): Promise<string>;
2
+ //# sourceMappingURL=generateModels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateModels.d.ts","sourceRoot":"","sources":["../../../../src/lib/bean/toolsMetadata/generateModels.ts"],"names":[],"mappings":"AAGA,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBA4B3E"}
@@ -0,0 +1,34 @@
1
+ import path from 'path';
2
+ import eggBornUtils from 'egg-born-utils';
3
+ export async function generateModels(_moduleName, modulePath) {
4
+ const pattern = `${modulePath}/src/model/*.ts`;
5
+ const files = await eggBornUtils.tools.globbyAsync(pattern);
6
+ if (files.length === 0)
7
+ return '';
8
+ files.sort();
9
+ const contentExports = [];
10
+ const contentImports = [];
11
+ const contentRecords = [];
12
+ for (const file of files) {
13
+ const fileName = path.basename(file);
14
+ const parts = fileName.split('.').slice(0, -1);
15
+ if (parts.length !== 1)
16
+ continue;
17
+ const resourceName = parts[0];
18
+ const className = 'Model' + resourceName.charAt(0).toUpperCase() + resourceName.substring(1);
19
+ contentExports.push(`export * from '../model/${resourceName}.js';`);
20
+ contentImports.push(`import { ${className} } from '../model/${resourceName}.js';`);
21
+ contentRecords.push(`'${resourceName}': ${className};`);
22
+ }
23
+ // combine
24
+ const content = `/** models: begin */
25
+ ${contentExports.join('\n')}
26
+ ${contentImports.join('\n')}
27
+ export interface IModuleModel {
28
+ ${contentRecords.join('\n')}
29
+ }
30
+ /** models: end */
31
+ `;
32
+ return content;
33
+ }
34
+ //# sourceMappingURL=generateModels.js.map