@cabloy/cli 1.0.15 → 1.1.2
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.
- package/LICENSE +21 -0
- package/README.md +0 -0
- package/dist/bin/cabloy.d.ts +3 -0
- package/dist/bin/cabloy.d.ts.map +1 -0
- package/dist/bin/cabloy.js +0 -0
- package/dist/bin/cabloy.js.map +1 -0
- package/dist/config.d.ts +43 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +38 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/bean.cli.base.d.ts +34 -0
- package/dist/lib/bean.cli.base.d.ts.map +1 -0
- package/dist/lib/bean.cli.base.js +178 -0
- package/dist/lib/bean.cli.base.js.map +1 -0
- package/dist/lib/bean.cli.d.ts +16 -0
- package/dist/lib/bean.cli.d.ts.map +1 -0
- package/dist/lib/bean.cli.js +38 -0
- package/dist/lib/bean.cli.js.map +1 -0
- package/dist/lib/cli.d.ts +53 -0
- package/dist/lib/cli.d.ts.map +1 -0
- package/dist/lib/cli.js +189 -0
- package/dist/lib/cli.js.map +1 -0
- package/dist/lib/commands.d.ts +6 -0
- package/dist/lib/commands.d.ts.map +1 -0
- package/dist/lib/commands.js +41 -0
- package/dist/lib/commands.js.map +1 -0
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +19 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/lib/bean.cli.d.ts +2 -0
- package/dist/lib/lib/bean.cli.d.ts.map +1 -0
- package/dist/lib/lib/bean.cli.js +3 -0
- package/dist/lib/lib/bean.cli.js.map +1 -0
- package/dist/lib/local.console.d.ts +11 -0
- package/dist/lib/local.console.d.ts.map +1 -0
- package/dist/lib/local.console.js +53 -0
- package/dist/lib/local.console.js.map +1 -0
- package/dist/lib/local.helper.d.ts +80 -0
- package/dist/lib/local.helper.d.ts.map +1 -0
- package/dist/lib/local.helper.js +159 -0
- package/dist/lib/local.helper.js.map +1 -0
- package/dist/lib/local.template.d.ts +97 -0
- package/dist/lib/local.template.d.ts.map +1 -0
- package/dist/lib/local.template.js +305 -0
- package/dist/lib/local.template.js.map +1 -0
- package/dist/start.d.ts +22 -0
- package/dist/start.d.ts.map +1 -0
- package/dist/start.js +85 -0
- package/dist/start.js.map +1 -0
- package/dist/types/argv.d.ts +23 -0
- package/dist/types/argv.d.ts.map +1 -0
- package/dist/types/argv.js +3 -0
- package/dist/types/argv.js.map +1 -0
- package/dist/types/console.d.ts +9 -0
- package/dist/types/console.d.ts.map +1 -0
- package/dist/types/console.js +3 -0
- package/dist/types/console.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +19 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +20 -16
- package/LICENSE.en-US +0 -3
- package/LICENSE.zh-CN +0 -3
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { BeanCliBase } from './bean.cli.base.js';
|
|
2
|
+
export declare class LocalTemplate {
|
|
3
|
+
cli: BeanCliBase;
|
|
4
|
+
constructor(cli: any);
|
|
5
|
+
get options(): import("../index.js").CmdOptions;
|
|
6
|
+
get context(): import("../index.js").ICommandContext;
|
|
7
|
+
get console(): import("./local.console.js").LocalConsole;
|
|
8
|
+
get helper(): import("./local.helper.js").LocalHelper;
|
|
9
|
+
get moduleConfig(): {
|
|
10
|
+
sets: {
|
|
11
|
+
core: string;
|
|
12
|
+
api: string;
|
|
13
|
+
front: string;
|
|
14
|
+
};
|
|
15
|
+
helper: {
|
|
16
|
+
chalk: {
|
|
17
|
+
options: {
|
|
18
|
+
level: number;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
boxen: {
|
|
22
|
+
options: {
|
|
23
|
+
padding: number;
|
|
24
|
+
margin: number;
|
|
25
|
+
align: string;
|
|
26
|
+
borderColor: string;
|
|
27
|
+
borderStyle: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
template: {
|
|
32
|
+
render: {
|
|
33
|
+
fileMapping: {
|
|
34
|
+
gitignore: string;
|
|
35
|
+
_gitignore: string;
|
|
36
|
+
'_.gitignore': string;
|
|
37
|
+
'_package.json': string;
|
|
38
|
+
'_.eslintrc': string;
|
|
39
|
+
'_.eslintignore': string;
|
|
40
|
+
'_.npmignore': string;
|
|
41
|
+
'_.eslintrc.js': string;
|
|
42
|
+
'_jsconfig.json': string;
|
|
43
|
+
'_tsconfig.json': string;
|
|
44
|
+
'_tsconfig.base.json': string;
|
|
45
|
+
'_tsconfig.build.json': string;
|
|
46
|
+
};
|
|
47
|
+
ignore: string[];
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
get fileMapping(): {
|
|
52
|
+
gitignore: string;
|
|
53
|
+
_gitignore: string;
|
|
54
|
+
'_.gitignore': string;
|
|
55
|
+
'_package.json': string;
|
|
56
|
+
'_.eslintrc': string;
|
|
57
|
+
'_.eslintignore': string;
|
|
58
|
+
'_.npmignore': string;
|
|
59
|
+
'_.eslintrc.js': string;
|
|
60
|
+
'_jsconfig.json': string;
|
|
61
|
+
'_tsconfig.json': string;
|
|
62
|
+
'_tsconfig.base.json': string;
|
|
63
|
+
'_tsconfig.build.json': string;
|
|
64
|
+
};
|
|
65
|
+
get filesIgnore(): string[];
|
|
66
|
+
resolveTemplatePath({ setName, path: _path }: any): string;
|
|
67
|
+
renderBoilerplateAndSnippets({ targetDir, setName, snippetsPath, boilerplatePath }: any): Promise<void>;
|
|
68
|
+
renderDir({ targetDir, templateDir }: any): Promise<any>;
|
|
69
|
+
replaceTemplate(content: any, scope: any): any;
|
|
70
|
+
getProperty(obj: any, name: any, sep?: any): any;
|
|
71
|
+
_getProperty(obj: any, name: any, sep: any, forceObject: any): any;
|
|
72
|
+
parseFileBaseName(basename: any): any;
|
|
73
|
+
renderFile({ targetFile, templateFile }: any): Promise<void>;
|
|
74
|
+
renderContent({ content }: any): Promise<any>;
|
|
75
|
+
getEjsOptions(): {
|
|
76
|
+
async: boolean;
|
|
77
|
+
cache: boolean;
|
|
78
|
+
compileDebug: boolean;
|
|
79
|
+
outputFunctionName: string;
|
|
80
|
+
rmWhitespace: boolean;
|
|
81
|
+
};
|
|
82
|
+
getEjsData(): {
|
|
83
|
+
argv: import("../index.js").ICommandArgv;
|
|
84
|
+
};
|
|
85
|
+
getAstData(ast: any, snippet: any): {
|
|
86
|
+
argv: import("../index.js").ICommandArgv;
|
|
87
|
+
cli: BeanCliBase;
|
|
88
|
+
ast: any;
|
|
89
|
+
snippet: any;
|
|
90
|
+
};
|
|
91
|
+
applySnippets({ targetDir, snippetsDir }: any): Promise<void>;
|
|
92
|
+
applySnippet({ targetFile, snippet }: any): Promise<void>;
|
|
93
|
+
_parseSnippetFilePrefix(fileName: any): number;
|
|
94
|
+
requireDynamic(file: any): any;
|
|
95
|
+
private _requireDynamic_getFileTime;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=local.template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.template.d.ts","sourceRoot":"","sources":["../../src/lib/local.template.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,qBAAa,aAAa;IACxB,GAAG,EAAE,WAAW,CAAC;gBAEL,GAAG,KAAA;IAIf,IAAI,OAAO,qCAEV;IAED,IAAI,OAAO,0CAEV;IAED,IAAI,OAAO,8CAEV;IAED,IAAI,MAAM,4CAET;IAED,IAAI,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEf;IAED,IAAI,WAAW;;;;;;;;;;;;;MAEd;IAED,IAAI,WAAW,aAEd;IAED,mBAAmB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG;IAM3C,4BAA4B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,EAAE,GAAG;IAmBvF,SAAS,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,GAAG;IA4B/C,eAAe,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;IAW9B,WAAW,CAAC,GAAG,KAAA,EAAE,IAAI,KAAA,EAAE,GAAG,CAAC,KAAA;IAI3B,YAAY,CAAC,GAAG,KAAA,EAAE,IAAI,KAAA,EAAE,GAAG,KAAA,EAAE,WAAW,KAAA;IAkBxC,iBAAiB,CAAC,QAAQ,KAAA;IAQpB,UAAU,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,GAAG;IAgC5C,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG;IAOpC,aAAa;;;;;;;IAUb,UAAU;;;IAMV,UAAU,CAAC,GAAG,KAAA,EAAE,OAAO,KAAA;;;;;;IASjB,aAAa,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,GAAG;IAgC7C,YAAY,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,GAAG;IAoC/C,uBAAuB,CAAC,QAAQ,KAAA;IAMhC,cAAc,CAAC,IAAI,KAAA;IAcnB,OAAO,CAAC,2BAA2B;CAQpC"}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.LocalTemplate = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const egg_born_utils_1 = __importDefault(require("egg-born-utils"));
|
|
11
|
+
const istextorbinary_1 = __importDefault(require("istextorbinary"));
|
|
12
|
+
const ejs_1 = __importDefault(require("@zhennann/ejs"));
|
|
13
|
+
const gogocode_1 = __importDefault(require("gogocode"));
|
|
14
|
+
const config_js_1 = require("../config.js");
|
|
15
|
+
class LocalTemplate {
|
|
16
|
+
constructor(cli) {
|
|
17
|
+
Object.defineProperty(this, "cli", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: true,
|
|
20
|
+
writable: true,
|
|
21
|
+
value: void 0
|
|
22
|
+
});
|
|
23
|
+
this.cli = cli;
|
|
24
|
+
}
|
|
25
|
+
get options() {
|
|
26
|
+
return this.cli.options;
|
|
27
|
+
}
|
|
28
|
+
get context() {
|
|
29
|
+
return this.cli.options.context;
|
|
30
|
+
}
|
|
31
|
+
get console() {
|
|
32
|
+
return this.cli.console;
|
|
33
|
+
}
|
|
34
|
+
get helper() {
|
|
35
|
+
return this.cli.helper;
|
|
36
|
+
}
|
|
37
|
+
get moduleConfig() {
|
|
38
|
+
return config_js_1.commandsConfig;
|
|
39
|
+
}
|
|
40
|
+
get fileMapping() {
|
|
41
|
+
return this.moduleConfig.template.render.fileMapping;
|
|
42
|
+
}
|
|
43
|
+
get filesIgnore() {
|
|
44
|
+
return this.moduleConfig.template.render.ignore;
|
|
45
|
+
}
|
|
46
|
+
resolveTemplatePath({ setName, path: _path }) {
|
|
47
|
+
const sets = this.moduleConfig.sets;
|
|
48
|
+
const modulePath = require.resolve(`${sets[setName]}/package.json`);
|
|
49
|
+
return path_1.default.join(path_1.default.dirname(modulePath), 'cli/templates', _path);
|
|
50
|
+
}
|
|
51
|
+
async renderBoilerplateAndSnippets({ targetDir, setName, snippetsPath, boilerplatePath }) {
|
|
52
|
+
// first
|
|
53
|
+
if (snippetsPath) {
|
|
54
|
+
const snippetsDir = this.resolveTemplatePath({
|
|
55
|
+
setName,
|
|
56
|
+
path: snippetsPath,
|
|
57
|
+
});
|
|
58
|
+
await this.applySnippets({ targetDir, snippetsDir });
|
|
59
|
+
}
|
|
60
|
+
// then
|
|
61
|
+
if (boilerplatePath) {
|
|
62
|
+
const templateDir = this.resolveTemplatePath({
|
|
63
|
+
setName,
|
|
64
|
+
path: boilerplatePath,
|
|
65
|
+
});
|
|
66
|
+
await this.renderDir({ targetDir, templateDir });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async renderDir({ targetDir, templateDir }) {
|
|
70
|
+
const { argv } = this.context;
|
|
71
|
+
// files
|
|
72
|
+
const files = egg_born_utils_1.default.tools.globbySync('**/*', {
|
|
73
|
+
cwd: templateDir,
|
|
74
|
+
dot: true,
|
|
75
|
+
onlyFiles: false,
|
|
76
|
+
followSymlinkedDirectories: false,
|
|
77
|
+
});
|
|
78
|
+
// loop
|
|
79
|
+
for (const file of files) {
|
|
80
|
+
const { dir: dirname, base: basename } = path_1.default.parse(file);
|
|
81
|
+
if (this.filesIgnore.includes(basename))
|
|
82
|
+
continue;
|
|
83
|
+
const templateFile = path_1.default.join(templateDir, file);
|
|
84
|
+
const fileName = this.parseFileBaseName(basename);
|
|
85
|
+
const parentPath = path_1.default.join(targetDir, dirname);
|
|
86
|
+
const targetFile = path_1.default.join(parentPath, this.replaceTemplate(fileName, argv));
|
|
87
|
+
await this.renderFile({ targetFile, templateFile });
|
|
88
|
+
if (fileName !== '.gitkeep') {
|
|
89
|
+
const gitkeep = path_1.default.join(parentPath, '.gitkeep');
|
|
90
|
+
if (fs_1.default.existsSync(gitkeep)) {
|
|
91
|
+
fs_1.default.unlinkSync(gitkeep);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return files;
|
|
96
|
+
}
|
|
97
|
+
replaceTemplate(content, scope) {
|
|
98
|
+
if (!content)
|
|
99
|
+
return null;
|
|
100
|
+
return content.toString().replace(/(\\)?{{ *([\w\.]+) *}}/g, (block, skip, key) => {
|
|
101
|
+
if (skip) {
|
|
102
|
+
return block.substring(skip.length);
|
|
103
|
+
}
|
|
104
|
+
const value = this.getProperty(scope, key);
|
|
105
|
+
return value !== undefined ? value : '';
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
getProperty(obj, name, sep) {
|
|
109
|
+
return this._getProperty(obj, name, sep, false);
|
|
110
|
+
}
|
|
111
|
+
_getProperty(obj, name, sep, forceObject) {
|
|
112
|
+
if (!obj)
|
|
113
|
+
return undefined;
|
|
114
|
+
const names = name.split(sep || '.');
|
|
115
|
+
// loop
|
|
116
|
+
for (const name of names) {
|
|
117
|
+
if (obj[name] === undefined || obj[name] === null) {
|
|
118
|
+
if (forceObject) {
|
|
119
|
+
obj[name] = {};
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
obj = obj[name];
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
obj = obj[name];
|
|
127
|
+
}
|
|
128
|
+
return obj;
|
|
129
|
+
}
|
|
130
|
+
parseFileBaseName(basename) {
|
|
131
|
+
let fileName = this.fileMapping[basename] || basename;
|
|
132
|
+
if (fileName.lastIndexOf('_') === fileName.length - 1) {
|
|
133
|
+
fileName = fileName.substring(0, fileName.length - 1);
|
|
134
|
+
}
|
|
135
|
+
return fileName;
|
|
136
|
+
}
|
|
137
|
+
async renderFile({ targetFile, templateFile }) {
|
|
138
|
+
const stats = fs_1.default.lstatSync(templateFile);
|
|
139
|
+
if (stats.isSymbolicLink()) {
|
|
140
|
+
const target = fs_1.default.readlinkSync(templateFile);
|
|
141
|
+
fs_1.default.symlinkSync(target, targetFile);
|
|
142
|
+
await this.console.log(`${targetFile} link to ${target}`);
|
|
143
|
+
}
|
|
144
|
+
else if (stats.isDirectory()) {
|
|
145
|
+
await this.helper.ensureDir(targetFile);
|
|
146
|
+
}
|
|
147
|
+
else if (stats.isFile()) {
|
|
148
|
+
const content = fs_1.default.readFileSync(templateFile);
|
|
149
|
+
await this.console.log(`write to ${targetFile}`);
|
|
150
|
+
// check if content is a text file
|
|
151
|
+
let result;
|
|
152
|
+
let changed;
|
|
153
|
+
if (!istextorbinary_1.default.isTextSync(templateFile, content)) {
|
|
154
|
+
result = content;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
const _content = content.toString('utf8');
|
|
158
|
+
result = await this.renderContent({ content: _content });
|
|
159
|
+
changed = _content !== result;
|
|
160
|
+
}
|
|
161
|
+
// save
|
|
162
|
+
fs_1.default.writeFileSync(targetFile, result);
|
|
163
|
+
// format
|
|
164
|
+
if (changed) {
|
|
165
|
+
await this.helper.formatFile({ fileName: targetFile, logPrefix: 'format: ' });
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
await this.console.log(`ignore ${templateFile}, only support file, dir, symlink`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
async renderContent({ content }) {
|
|
173
|
+
if (!content)
|
|
174
|
+
return content;
|
|
175
|
+
const data = this.getEjsData();
|
|
176
|
+
const options = this.getEjsOptions();
|
|
177
|
+
return await ejs_1.default.render(content, data, options);
|
|
178
|
+
}
|
|
179
|
+
getEjsOptions() {
|
|
180
|
+
return {
|
|
181
|
+
async: true,
|
|
182
|
+
cache: false,
|
|
183
|
+
compileDebug: true,
|
|
184
|
+
outputFunctionName: 'echo',
|
|
185
|
+
rmWhitespace: false,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
getEjsData() {
|
|
189
|
+
return {
|
|
190
|
+
...this.context,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
getAstData(ast, snippet) {
|
|
194
|
+
return {
|
|
195
|
+
cli: this.cli,
|
|
196
|
+
ast,
|
|
197
|
+
snippet,
|
|
198
|
+
...this.context,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
async applySnippets({ targetDir, snippetsDir }) {
|
|
202
|
+
// snippets
|
|
203
|
+
let files = egg_born_utils_1.default.tools.globbySync('*.cjs', {
|
|
204
|
+
cwd: snippetsDir,
|
|
205
|
+
onlyFiles: true,
|
|
206
|
+
});
|
|
207
|
+
// snippets sort
|
|
208
|
+
files = files
|
|
209
|
+
.filter(item => item[0] !== '-')
|
|
210
|
+
.sort((a, b) => this._parseSnippetFilePrefix(a) - this._parseSnippetFilePrefix(b));
|
|
211
|
+
// for
|
|
212
|
+
for (const file of files) {
|
|
213
|
+
const snippetTemplatePath = path_1.default.join(snippetsDir, file);
|
|
214
|
+
const snippet = this.requireDynamic(snippetTemplatePath);
|
|
215
|
+
if (!snippet.file) {
|
|
216
|
+
throw new Error(`should provider file path for: ${file}`);
|
|
217
|
+
}
|
|
218
|
+
let fileName;
|
|
219
|
+
if (typeof snippet.file === 'function') {
|
|
220
|
+
fileName = snippet.file(this.getEjsData());
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
fileName = await this.renderContent({ content: snippet.file });
|
|
224
|
+
}
|
|
225
|
+
if (!fileName) {
|
|
226
|
+
// means ignore, so do nothing
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
const targetFile = path_1.default.join(targetDir, fileName);
|
|
230
|
+
await this.applySnippet({ targetFile, snippet });
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
async applySnippet({ targetFile, snippet }) {
|
|
235
|
+
await this.console.log(`apply changes to ${targetFile}`);
|
|
236
|
+
// source code
|
|
237
|
+
let sourceCode;
|
|
238
|
+
if (fs_1.default.existsSync(targetFile)) {
|
|
239
|
+
sourceCode = fs_1.default.readFileSync(targetFile);
|
|
240
|
+
sourceCode = sourceCode.toString('utf8');
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
if (!snippet.init) {
|
|
244
|
+
throw new Error(`should provider init content for: ${targetFile}`);
|
|
245
|
+
}
|
|
246
|
+
sourceCode = await this.renderContent({ content: snippet.init });
|
|
247
|
+
}
|
|
248
|
+
// language
|
|
249
|
+
const language = snippet.parseOptions && snippet.parseOptions.language;
|
|
250
|
+
// transform
|
|
251
|
+
let outputCode;
|
|
252
|
+
if (language === 'plain') {
|
|
253
|
+
const ast = sourceCode;
|
|
254
|
+
const outAst = await snippet.transform(this.getAstData(ast, snippet));
|
|
255
|
+
outputCode = outAst;
|
|
256
|
+
}
|
|
257
|
+
else if (language === 'json') {
|
|
258
|
+
const ast = JSON.parse(sourceCode);
|
|
259
|
+
const outAst = await snippet.transform(this.getAstData(ast, snippet));
|
|
260
|
+
outputCode = JSON.stringify(outAst, null, 2);
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
const ast = (0, gogocode_1.default)(sourceCode, { parseOptions: snippet.parseOptions });
|
|
264
|
+
const outAst = await snippet.transform(this.getAstData(ast, snippet));
|
|
265
|
+
outputCode = outAst.root().generate();
|
|
266
|
+
}
|
|
267
|
+
// save
|
|
268
|
+
fs_1.default.writeFileSync(targetFile, outputCode);
|
|
269
|
+
// format
|
|
270
|
+
await this.helper.formatFile({ fileName: targetFile, logPrefix: 'format: ' });
|
|
271
|
+
}
|
|
272
|
+
_parseSnippetFilePrefix(fileName) {
|
|
273
|
+
const num = fileName.split('-')[0];
|
|
274
|
+
if (!num || isNaN(num))
|
|
275
|
+
return 10000;
|
|
276
|
+
return parseInt(num);
|
|
277
|
+
}
|
|
278
|
+
requireDynamic(file) {
|
|
279
|
+
if (!file)
|
|
280
|
+
throw new Error('file should not empty');
|
|
281
|
+
let instance = require(file);
|
|
282
|
+
const mtime = this._requireDynamic_getFileTime(file);
|
|
283
|
+
if (instance.__requireDynamic_mtime === undefined) {
|
|
284
|
+
instance.__requireDynamic_mtime = mtime;
|
|
285
|
+
}
|
|
286
|
+
else if (instance.__requireDynamic_mtime !== mtime) {
|
|
287
|
+
delete require.cache[require.resolve(file)];
|
|
288
|
+
instance = require(file);
|
|
289
|
+
instance.__requireDynamic_mtime = mtime;
|
|
290
|
+
}
|
|
291
|
+
return instance;
|
|
292
|
+
}
|
|
293
|
+
_requireDynamic_getFileTime(file) {
|
|
294
|
+
if (!path_1.default.isAbsolute(file))
|
|
295
|
+
return null;
|
|
296
|
+
const exists = fs_extra_1.default.pathExistsSync(file);
|
|
297
|
+
if (!exists)
|
|
298
|
+
return null;
|
|
299
|
+
// stat
|
|
300
|
+
const stat = fs_extra_1.default.statSync(file);
|
|
301
|
+
return stat.mtime.valueOf();
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
exports.LocalTemplate = LocalTemplate;
|
|
305
|
+
//# sourceMappingURL=local.template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.template.js","sourceRoot":"","sources":["../../src/lib/local.template.ts"],"names":[],"mappings":"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"}
|
package/dist/start.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import CommonBin from '@zhennann/common-bin';
|
|
2
|
+
declare const DISPATCH: unique symbol;
|
|
3
|
+
export declare class CabloyCommand extends CommonBin {
|
|
4
|
+
constructor(rawArgv?: any);
|
|
5
|
+
[DISPATCH](): Promise<void>;
|
|
6
|
+
_handleCli(): Promise<void>;
|
|
7
|
+
_prepareCliFullName(cliName: any): {
|
|
8
|
+
cliFullName: string;
|
|
9
|
+
set: any;
|
|
10
|
+
group?: undefined;
|
|
11
|
+
} | {
|
|
12
|
+
cliFullName: string;
|
|
13
|
+
set: any;
|
|
14
|
+
group: any;
|
|
15
|
+
} | {
|
|
16
|
+
cliFullName: any;
|
|
17
|
+
set?: undefined;
|
|
18
|
+
group?: undefined;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=start.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAI7C,QAAA,MAAM,QAAQ,eAAoC,CAAC;AAGnD,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,OAAO,CAAC,KAAA;IAKd,CAAC,QAAQ,CAAC;IAKV,UAAU;IA6BhB,mBAAmB,CAAC,OAAO,KAAA;;;;;;;;;;;;;CA6B5B"}
|
package/dist/start.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CabloyCommand = void 0;
|
|
7
|
+
const common_bin_1 = __importDefault(require("@zhennann/common-bin"));
|
|
8
|
+
const bean_cli_js_1 = require("./lib/bean.cli.js");
|
|
9
|
+
const cli_js_1 = require("./lib/cli.js");
|
|
10
|
+
const DISPATCH = Symbol.for('eb:Command#dispatch');
|
|
11
|
+
const PARSE = Symbol.for('eb:Command#parse');
|
|
12
|
+
class CabloyCommand extends common_bin_1.default {
|
|
13
|
+
constructor(rawArgv) {
|
|
14
|
+
super(rawArgv);
|
|
15
|
+
this.usage = 'Usage: cabloy [command] [options]';
|
|
16
|
+
}
|
|
17
|
+
async [DISPATCH]() {
|
|
18
|
+
// cli
|
|
19
|
+
await this._handleCli();
|
|
20
|
+
}
|
|
21
|
+
async _handleCli() {
|
|
22
|
+
// get parsed argument without handling helper and version
|
|
23
|
+
const parsed = await this[PARSE](this.rawArgv);
|
|
24
|
+
// argv
|
|
25
|
+
const argv = {
|
|
26
|
+
projectPath: process.cwd(),
|
|
27
|
+
};
|
|
28
|
+
// indexCabloy
|
|
29
|
+
const indexCabloy = this.rawArgv.indexOf('cabloy');
|
|
30
|
+
// cli
|
|
31
|
+
const indexCommand = indexCabloy > -1 ? indexCabloy + 1 : 0;
|
|
32
|
+
Object.assign(argv, this._prepareCliFullName(parsed._[indexCommand]));
|
|
33
|
+
// cli meta
|
|
34
|
+
const context = { argv };
|
|
35
|
+
const beanCli = new bean_cli_js_1.BeanCli();
|
|
36
|
+
const meta = await beanCli.meta({ context });
|
|
37
|
+
// cli run
|
|
38
|
+
const rawArgv = this.rawArgv.slice();
|
|
39
|
+
if (indexCabloy > -1) {
|
|
40
|
+
rawArgv.splice(0, indexCabloy + 2);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
rawArgv.splice(0, 1);
|
|
44
|
+
}
|
|
45
|
+
const command = new cli_js_1.CliCommand(rawArgv, { meta, argv });
|
|
46
|
+
await command[DISPATCH]();
|
|
47
|
+
// force exit
|
|
48
|
+
process.exit(0);
|
|
49
|
+
}
|
|
50
|
+
_prepareCliFullName(cliName) {
|
|
51
|
+
if (!cliName) {
|
|
52
|
+
return { cliFullName: 'core:default:list' };
|
|
53
|
+
// throw new Error('Please specify the cli name');
|
|
54
|
+
}
|
|
55
|
+
const parts = cliName.split(':');
|
|
56
|
+
if (parts.length === 1) {
|
|
57
|
+
// means show module's commands
|
|
58
|
+
parts[1] = '';
|
|
59
|
+
}
|
|
60
|
+
if (parts.length === 2) {
|
|
61
|
+
if (parts[1]) {
|
|
62
|
+
// means show group's commands
|
|
63
|
+
parts[2] = '';
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
// means show module's commands
|
|
67
|
+
if (!parts[0])
|
|
68
|
+
parts[0] = 'core';
|
|
69
|
+
return { cliFullName: 'core:default:list', set: parts[0] };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (!parts[0])
|
|
73
|
+
parts[0] = 'core';
|
|
74
|
+
if (!parts[1])
|
|
75
|
+
parts[1] = 'default';
|
|
76
|
+
if (!parts[2]) {
|
|
77
|
+
// means show group's commands
|
|
78
|
+
return { cliFullName: 'core:default:list', set: parts[0], group: parts[1] };
|
|
79
|
+
}
|
|
80
|
+
// default
|
|
81
|
+
return { cliFullName: parts.join(':') };
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.CabloyCommand = CabloyCommand;
|
|
85
|
+
//# sourceMappingURL=start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface ICommandArgv {
|
|
2
|
+
projectPath: string;
|
|
3
|
+
cliFullName: string;
|
|
4
|
+
_: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface ICommandContext {
|
|
7
|
+
argv: ICommandArgv;
|
|
8
|
+
}
|
|
9
|
+
export interface CmdOptions {
|
|
10
|
+
command: CmdCommand;
|
|
11
|
+
context: ICommandContext;
|
|
12
|
+
terminal: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface CmdCommand {
|
|
15
|
+
bean: string;
|
|
16
|
+
info: {
|
|
17
|
+
version: string;
|
|
18
|
+
title: string;
|
|
19
|
+
};
|
|
20
|
+
options: object;
|
|
21
|
+
groups: object | null;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=argv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../../src/types/argv.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAE3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,EAAE,MAAM,EAAE,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argv.js","sourceRoot":"","sources":["../../src/types/argv.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/types/console.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/types/console.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./argv.js"), exports);
|
|
18
|
+
__exportStar(require("./console.js"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,+CAA6B"}
|