@codenotch/codenotch.cli 1.0.36 → 1.0.38
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/README.md +2 -2
- package/dist/commands/generate/app.d.ts +2 -0
- package/dist/commands/generate/app.js +45 -0
- package/dist/commands/generate/app.js.map +1 -0
- package/dist/commands/generate/appmanifest.d.ts +2 -0
- package/dist/commands/generate/appmanifest.js +34 -0
- package/dist/commands/generate/appmanifest.js.map +1 -0
- package/dist/commands/generate/dbcontext.d.ts +2 -0
- package/dist/commands/generate/dbcontext.js +32 -0
- package/dist/commands/generate/dbcontext.js.map +1 -0
- package/dist/commands/generate/i18n.d.ts +2 -0
- package/dist/commands/generate/i18n.js +29 -0
- package/dist/commands/generate/i18n.js.map +1 -0
- package/dist/commands/generate/index.d.ts +0 -1
- package/dist/commands/generate/index.js +14 -33
- package/dist/commands/generate/index.js.map +1 -1
- package/dist/commands/generate/manifest.d.ts +2 -0
- package/dist/commands/generate/manifest.js +29 -0
- package/dist/commands/generate/manifest.js.map +1 -0
- package/dist/commands/generate/openapi.d.ts +2 -0
- package/dist/commands/generate/openapi.js +32 -0
- package/dist/commands/generate/openapi.js.map +1 -0
- package/dist/commands/generate/pkg.d.ts +2 -0
- package/dist/commands/generate/pkg.js +34 -0
- package/dist/commands/generate/pkg.js.map +1 -0
- package/dist/commands/generate/shared.d.ts +17 -0
- package/dist/commands/generate/shared.js +70 -0
- package/dist/commands/generate/shared.js.map +1 -0
- package/dist/commands/project/new.js +108 -96
- package/dist/commands/project/new.js.map +1 -1
- package/dist/commands/react/build.js +11 -5
- package/dist/commands/react/build.js.map +1 -1
- package/dist/commands/react/clean.d.ts +2 -0
- package/dist/commands/react/clean.js +46 -0
- package/dist/commands/react/clean.js.map +1 -0
- package/dist/commands/react/dev.d.ts +2 -0
- package/dist/commands/react/dev.js +28 -0
- package/dist/commands/react/dev.js.map +1 -0
- package/dist/commands/react/index.js +5 -1
- package/dist/commands/react/index.js.map +1 -1
- package/dist/commands/react/serve.js +33 -4
- package/dist/commands/react/serve.js.map +1 -1
- package/dist/commands/react/shared.d.ts +21 -0
- package/dist/commands/react/shared.js +80 -0
- package/dist/commands/react/shared.js.map +1 -0
- package/dist/commands/validation/ValidationUtils.d.ts +1 -1
- package/dist/commands/validation/ValidationUtils.js +3 -0
- package/dist/commands/validation/ValidationUtils.js.map +1 -1
- package/dist/commands/validation/files/I18nValidator.d.ts +29 -0
- package/dist/commands/validation/files/I18nValidator.js +198 -0
- package/dist/commands/validation/files/I18nValidator.js.map +1 -0
- package/dist/commands/validation/files/ProjectManifestValidator.d.ts +5 -0
- package/dist/commands/validation/files/ProjectManifestValidator.js +31 -0
- package/dist/commands/validation/files/ProjectManifestValidator.js.map +1 -0
- package/dist/commands/validation/files/ScriptValidator.js +1 -1
- package/dist/commands/validation/files/ScriptValidator.js.map +1 -1
- package/dist/commands/validation/validate.js +11 -6
- package/dist/commands/validation/validate.js.map +1 -1
- package/dist/utils/BuildUtils.d.ts +62 -7
- package/dist/utils/BuildUtils.js +310 -222
- package/dist/utils/BuildUtils.js.map +1 -1
- package/dist/utils/ConsoleUtils.d.ts +8 -0
- package/dist/utils/ConsoleUtils.js +25 -0
- package/dist/utils/ConsoleUtils.js.map +1 -1
- package/dist/utils/DbSchemaUtils.d.ts +49 -0
- package/dist/utils/DbSchemaUtils.js +246 -0
- package/dist/utils/DbSchemaUtils.js.map +1 -0
- package/dist/utils/FileUtils.d.ts +104 -15
- package/dist/utils/FileUtils.js +285 -100
- package/dist/utils/FileUtils.js.map +1 -1
- package/dist/utils/I18nTsUtils.d.ts +66 -0
- package/dist/utils/I18nTsUtils.js +221 -0
- package/dist/utils/I18nTsUtils.js.map +1 -0
- package/dist/utils/OpenApiUtils.d.ts +81 -0
- package/dist/utils/OpenApiUtils.js +123 -0
- package/dist/utils/OpenApiUtils.js.map +1 -0
- package/dist/utils/ProjectCompilationUtils.d.ts +0 -1
- package/dist/utils/ProjectCompilationUtils.js +4 -52
- package/dist/utils/ProjectCompilationUtils.js.map +1 -1
- package/dist/utils/ProjectGeneratorUtils.d.ts +35 -0
- package/dist/utils/ProjectGeneratorUtils.js +119 -0
- package/dist/utils/ProjectGeneratorUtils.js.map +1 -0
- package/dist/utils/ProjectTemplates.d.ts +102 -0
- package/dist/utils/ProjectTemplates.js +284 -0
- package/dist/utils/ProjectTemplates.js.map +1 -0
- package/dist/utils/ProjectUtils.d.ts +216 -3
- package/dist/utils/ProjectUtils.js +387 -22
- package/dist/utils/ProjectUtils.js.map +1 -1
- package/dist/utils/RuntimeUtils.js +14 -8
- package/dist/utils/RuntimeUtils.js.map +1 -1
- package/dist/utils/ScriptDeclarationUtils.d.ts +169 -0
- package/dist/utils/ScriptDeclarationUtils.js +398 -0
- package/dist/utils/ScriptDeclarationUtils.js.map +1 -0
- package/dist/utils/ServeUtils.js +10 -5
- package/dist/utils/ServeUtils.js.map +1 -1
- package/dist/utils/ShellUtils.d.ts +6 -0
- package/dist/utils/ShellUtils.js +13 -0
- package/dist/utils/ShellUtils.js.map +1 -1
- package/dist/utils/TemplateUtils.d.ts +62 -0
- package/dist/utils/TemplateUtils.js +218 -0
- package/dist/utils/TemplateUtils.js.map +1 -0
- package/dist/utils/TypeSchemaUtils.d.ts +42 -0
- package/dist/utils/TypeSchemaUtils.js +171 -0
- package/dist/utils/TypeSchemaUtils.js.map +1 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ You need to have NodeJs installed and available on the PATH for the runtime to w
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
## .npmrc
|
|
25
|
-
We need a npm token to get the private package codenotch
|
|
25
|
+
We need a npm token to get the private package @codenotch/codenotch.react from npm.
|
|
26
26
|
At the moment we use a npm file that we copy on build to the project.
|
|
27
27
|
This token is not valid to get others private packages, meaning it will also prevent you from installing other codenotch packages
|
|
28
|
-
We need to fin a real solution to this or simply make the codenotch
|
|
28
|
+
We need to fin a real solution to this or simply make the @codenotch/codenotch.reactpackage public
|
|
@@ -0,0 +1,45 @@
|
|
|
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.registerGenerateEmptyApp = registerGenerateEmptyApp;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
|
|
10
|
+
const TemplateUtils_1 = __importDefault(require("../../utils/TemplateUtils"));
|
|
11
|
+
const shared_1 = require("./shared");
|
|
12
|
+
function registerGenerateEmptyApp(generate) {
|
|
13
|
+
generate
|
|
14
|
+
.command('app')
|
|
15
|
+
.description('Generate an empty Codenotch React app (*.tsx and its *.manifest.json)')
|
|
16
|
+
.requiredOption('-n, --name <name>', 'name of the app, used as file name and React component name')
|
|
17
|
+
.option('-p, --path <path>', 'directory in which the app is generated', process.cwd())
|
|
18
|
+
.option('--no-manifest', 'do not generate the *.manifest.json next to the app')
|
|
19
|
+
.action(async (options) => {
|
|
20
|
+
const appName = options.name.trim();
|
|
21
|
+
if (!TemplateUtils_1.default.isValidAppName(appName)) {
|
|
22
|
+
console.error(chalk_1.default.yellow(`Aborted: '${appName}' is not a valid app name (letters, digits, '_' and '$', not starting with a digit).`));
|
|
23
|
+
process.exitCode = 1;
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const targetFolder = (0, path_1.resolve)(options.path);
|
|
27
|
+
const filePath = (0, path_1.join)(targetFolder, `${appName}.tsx`);
|
|
28
|
+
if (!await (0, shared_1.writeGeneratedFile)(filePath, TemplateUtils_1.default.createAppTsx(appName))) {
|
|
29
|
+
process.exitCode = 1;
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
ConsoleUtils_1.default.check(`${appName}.tsx generated at ${chalk_1.default.green(filePath)}`);
|
|
33
|
+
if (!options.manifest) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const manifestPath = (0, path_1.join)(targetFolder, `${appName}.manifest.json`);
|
|
37
|
+
const manifestContent = JSON.stringify(TemplateUtils_1.default.createAppManifest(appName), null, 4);
|
|
38
|
+
if (!await (0, shared_1.writeGeneratedFile)(manifestPath, manifestContent)) {
|
|
39
|
+
process.exitCode = 1;
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
ConsoleUtils_1.default.check(`${appName}.manifest.json generated at ${chalk_1.default.green(manifestPath)}`);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/commands/generate/app.ts"],"names":[],"mappings":";;;;;AAOA,4DAyCC;AA/CD,kDAA0B;AAC1B,+BAAqC;AACrC,4EAAoD;AACpD,8EAAsD;AACtD,qCAA8C;AAE9C,SAAgB,wBAAwB,CAAC,QAAiB;IACtD,QAAQ;SACH,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,uEAAuE,CAAC;SACpF,cAAc,CAAC,mBAAmB,EAAE,6DAA6D,CAAC;SAClG,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACrF,MAAM,CAAC,eAAe,EAAE,qDAAqD,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,OAA0D,EAAE,EAAE;QAEzE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAEpC,IAAI,CAAC,uBAAa,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,aAAa,OAAO,sFAAsF,CAAC,CAAC,CAAC;YACxI,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,YAAY,EAAE,GAAG,OAAO,MAAM,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,IAAA,2BAAkB,EAAC,QAAQ,EAAE,uBAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC3E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,GAAG,OAAO,qBAAqB,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE3E,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,YAAY,EAAE,GAAG,OAAO,gBAAgB,CAAC,CAAC;QACpE,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE1F,IAAI,CAAC,MAAM,IAAA,2BAAkB,EAAC,YAAY,EAAE,eAAe,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,GAAG,OAAO,+BAA+B,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
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.registerGenerateAppManifest = registerGenerateAppManifest;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
|
|
10
|
+
const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
|
|
11
|
+
const TemplateUtils_1 = __importDefault(require("../../utils/TemplateUtils"));
|
|
12
|
+
const shared_1 = require("./shared");
|
|
13
|
+
function registerGenerateAppManifest(generate) {
|
|
14
|
+
generate
|
|
15
|
+
.command('appmanifest')
|
|
16
|
+
.description('Generate the *.manifest.json of an existing Codenotch app')
|
|
17
|
+
.requiredOption('-f, --file-path <path>', 'path to the *.tsx/*.jsx file')
|
|
18
|
+
.action(async (options) => {
|
|
19
|
+
const filePath = await (0, shared_1.resolveInputFile)(options.filePath, ['.tsx', '.jsx']);
|
|
20
|
+
if (filePath === null) {
|
|
21
|
+
process.exitCode = 1;
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const appName = FileUtils_1.default.getNameFromPath(filePath, true);
|
|
25
|
+
const targetPath = (0, path_1.join)((0, path_1.dirname)(filePath), `${appName}.manifest.json`);
|
|
26
|
+
const content = JSON.stringify(TemplateUtils_1.default.createAppManifest(appName), null, 4);
|
|
27
|
+
if (!await (0, shared_1.writeGeneratedFile)(targetPath, content)) {
|
|
28
|
+
process.exitCode = 1;
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
ConsoleUtils_1.default.check(`App manifest generated at ${chalk_1.default.green(targetPath)}`);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=appmanifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appmanifest.js","sourceRoot":"","sources":["../../../src/commands/generate/appmanifest.ts"],"names":[],"mappings":";;;;;AAQA,kEAwBC;AA/BD,kDAA0B;AAC1B,+BAAqC;AACrC,sEAA8C;AAC9C,4EAAoD;AACpD,8EAAsD;AACtD,qCAAgE;AAEhE,SAAgB,2BAA2B,CAAC,QAAiB;IACzD,QAAQ;SACH,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,2DAA2D,CAAC;SACxE,cAAc,CAAC,wBAAwB,EAAE,8BAA8B,CAAC;SACxE,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;QAE5C,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAgB,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5E,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,OAAO,GAAG,mBAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,IAAA,cAAO,EAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,gBAAgB,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAElF,IAAI,CAAC,MAAM,IAAA,2BAAkB,EAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,6BAA6B,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
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.registerGenerateDbContext = registerGenerateDbContext;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
|
|
10
|
+
const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
|
|
11
|
+
const ProjectGeneratorUtils_1 = __importDefault(require("../../utils/ProjectGeneratorUtils"));
|
|
12
|
+
const shared_1 = require("./shared");
|
|
13
|
+
function registerGenerateDbContext(generate) {
|
|
14
|
+
generate
|
|
15
|
+
.command('dbcontext')
|
|
16
|
+
.description('scan tables and generate ./db-schema.xml + ./db-schema.ts')
|
|
17
|
+
.requiredOption('-f, --project-path <path>', 'path to the project')
|
|
18
|
+
.action(async (options) => {
|
|
19
|
+
const projectPath = (0, path_1.resolve)(options.projectPath);
|
|
20
|
+
if (await FileUtils_1.default.exists(projectPath) === false) {
|
|
21
|
+
console.error(chalk_1.default.yellow(`Aborted: '${projectPath}' not exists.`));
|
|
22
|
+
process.exitCode = 1;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const result = await ProjectGeneratorUtils_1.default.generateDbContext(projectPath);
|
|
26
|
+
if (!(0, shared_1.reportGeneration)(result)) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
ConsoleUtils_1.default.check(`${result.tableCount} table(s) scanned, schema written to ${chalk_1.default.green(result.written[0])} and ${chalk_1.default.green(result.written[1])}`);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=dbcontext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dbcontext.js","sourceRoot":"","sources":["../../../src/commands/generate/dbcontext.ts"],"names":[],"mappings":";;;;;AAQA,8DAsBC;AA7BD,kDAA0B;AAC1B,+BAA+B;AAC/B,sEAA8C;AAC9C,4EAAoD;AACpD,8FAAsE;AACtE,qCAA4C;AAE5C,SAAgB,yBAAyB,CAAC,QAAiB;IACvD,QAAQ;SACH,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,2DAA2D,CAAC;SACxE,cAAc,CAAC,2BAA2B,EAAE,qBAAqB,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;QAE/C,MAAM,WAAW,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEjD,IAAI,MAAM,mBAAS,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,KAAK,EAAE,CAAC;YAChD,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,aAAa,WAAW,eAAe,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,+BAAqB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAA,yBAAgB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,wCAAwC,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3J,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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.registerI18nTs = registerI18nTs;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
|
|
9
|
+
const ProjectGeneratorUtils_1 = __importDefault(require("../../utils/ProjectGeneratorUtils"));
|
|
10
|
+
const shared_1 = require("./shared");
|
|
11
|
+
function registerI18nTs(generate) {
|
|
12
|
+
generate
|
|
13
|
+
.command('i18n')
|
|
14
|
+
.description('Transform a *.i18n.csv into an importable i18n ts (generated next to the csv).')
|
|
15
|
+
.requiredOption('-f, --file-path <path>', 'path to the *.i18n.csv file')
|
|
16
|
+
.action(async (options) => {
|
|
17
|
+
const filePath = await (0, shared_1.resolveInputFile)(options.filePath, ['.i18n.csv']);
|
|
18
|
+
if (filePath === null) {
|
|
19
|
+
process.exitCode = 1;
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const result = await ProjectGeneratorUtils_1.default.generateI18n(filePath);
|
|
23
|
+
if (!(0, shared_1.reportGeneration)(result)) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
ConsoleUtils_1.default.check(`${result.keyCount} key(s) generated at ${chalk_1.default.green(result.written[0])}`);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=i18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../src/commands/generate/i18n.ts"],"names":[],"mappings":";;;;;AAMA,wCAoBC;AAzBD,kDAA0B;AAC1B,4EAAoD;AACpD,8FAAsE;AACtE,qCAA8D;AAE9D,SAAgB,cAAc,CAAC,QAAiB;IAC5C,QAAQ;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,gFAAgF,CAAC;SAC7F,cAAc,CAAC,wBAAwB,EAAE,6BAA6B,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;QAE5C,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAgB,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACzE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,+BAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,IAAA,yBAAgB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,wBAAwB,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1,42 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.registerGenerateCommands = registerGenerateCommands;
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
4
|
+
const manifest_1 = require("./manifest");
|
|
5
|
+
const appmanifest_1 = require("./appmanifest");
|
|
6
|
+
const pkg_1 = require("./pkg");
|
|
7
|
+
const app_1 = require("./app");
|
|
8
|
+
const i18n_1 = require("./i18n");
|
|
9
|
+
const dbcontext_1 = require("./dbcontext");
|
|
10
|
+
const openapi_1 = require("./openapi");
|
|
13
11
|
function registerGenerateCommands(program) {
|
|
14
12
|
const generate = program
|
|
15
13
|
.command('generate')
|
|
16
14
|
.description('Generate Codenotch project files (manifest, ...)');
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
generate
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const projectPath = process.cwd();
|
|
25
|
-
const filePath = (0, path_1.join)(projectPath, 'manifest.json');
|
|
26
|
-
if (await FileUtils_1.default.exists(filePath)) {
|
|
27
|
-
const overwrite = await ConsoleUtils_1.default.confirm(`'${filePath}' already exists. Overwrite it?`, false);
|
|
28
|
-
if (!overwrite) {
|
|
29
|
-
console.error(chalk_1.default.yellow(`Aborted: '${filePath}' already exists, use --force to overwrite it.`));
|
|
30
|
-
process.exitCode = 1;
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
const manifest = ManifestUtils_1.default.createManifest('');
|
|
35
|
-
if (!FileUtils_1.default.writeFileSync(filePath, ManifestUtils_1.default.serialize(manifest))) {
|
|
36
|
-
process.exitCode = 1;
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
ConsoleUtils_1.default.check(`manifest.json generated at ${chalk_1.default.green(filePath)}`);
|
|
40
|
-
});
|
|
15
|
+
(0, manifest_1.registerGenerateProjectManifest)(generate);
|
|
16
|
+
(0, appmanifest_1.registerGenerateAppManifest)(generate);
|
|
17
|
+
(0, pkg_1.registerGeneratePackageJson)(generate);
|
|
18
|
+
(0, app_1.registerGenerateEmptyApp)(generate);
|
|
19
|
+
(0, i18n_1.registerI18nTs)(generate);
|
|
20
|
+
(0, dbcontext_1.registerGenerateDbContext)(generate);
|
|
21
|
+
(0, openapi_1.registerGenerateOpenApi)(generate);
|
|
41
22
|
}
|
|
42
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/generate/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/generate/index.ts"],"names":[],"mappings":";;AASA,4DAYC;AApBD,yCAA6D;AAC7D,+CAA4D;AAC5D,+BAAoD;AACpD,+BAAiD;AACjD,iCAAwC;AACxC,2CAAwD;AACxD,uCAAoD;AAEpD,SAAgB,wBAAwB,CAAC,OAAgB;IACrD,MAAM,QAAQ,GAAG,OAAO;SACnB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,kDAAkD,CAAC,CAAC;IAErE,IAAA,0CAA+B,EAAC,QAAQ,CAAC,CAAC;IAC1C,IAAA,yCAA2B,EAAC,QAAQ,CAAC,CAAC;IACtC,IAAA,iCAA2B,EAAC,QAAQ,CAAC,CAAC;IACtC,IAAA,8BAAwB,EAAC,QAAQ,CAAC,CAAC;IACnC,IAAA,qBAAc,EAAC,QAAQ,CAAC,CAAC;IACzB,IAAA,qCAAyB,EAAC,QAAQ,CAAC,CAAC;IACpC,IAAA,iCAAuB,EAAC,QAAQ,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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.registerGenerateProjectManifest = registerGenerateProjectManifest;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
|
|
10
|
+
const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
|
|
11
|
+
const ManifestUtils_1 = __importDefault(require("../../utils/ManifestUtils"));
|
|
12
|
+
const shared_1 = require("./shared");
|
|
13
|
+
function registerGenerateProjectManifest(generate) {
|
|
14
|
+
generate
|
|
15
|
+
.command('manifest')
|
|
16
|
+
.description('Generate the manifest.json of a Codenotch project in the current directory')
|
|
17
|
+
.action(async () => {
|
|
18
|
+
const projectPath = process.cwd();
|
|
19
|
+
const filePath = (0, path_1.join)(projectPath, 'manifest.json');
|
|
20
|
+
// Named after the folder, like 'cn project new' does: an empty name would fail validation
|
|
21
|
+
const manifest = ManifestUtils_1.default.createManifest(FileUtils_1.default.getNameFromPath(projectPath));
|
|
22
|
+
if (!await (0, shared_1.writeGeneratedFile)(filePath, ManifestUtils_1.default.serialize(manifest))) {
|
|
23
|
+
process.exitCode = 1;
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
ConsoleUtils_1.default.check(`manifest.json generated at ${chalk_1.default.green(filePath)}`);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/commands/generate/manifest.ts"],"names":[],"mappings":";;;;;AAQA,0EAmBC;AA1BD,kDAA0B;AAC1B,+BAA4B;AAC5B,sEAA8C;AAC9C,4EAAoD;AACpD,8EAAsD;AACtD,qCAA8C;AAE9C,SAAgB,+BAA+B,CAAC,QAAiB;IAC7D,QAAQ;SACH,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,4EAA4E,CAAC;SACzF,MAAM,CAAC,KAAK,IAAI,EAAE;QAEf,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAEpD,0FAA0F;QAC1F,MAAM,QAAQ,GAAG,uBAAa,CAAC,cAAc,CAAC,mBAAS,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;QAEtF,IAAI,CAAC,MAAM,IAAA,2BAAkB,EAAC,QAAQ,EAAE,uBAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACzE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,8BAA8B,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
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.registerGenerateOpenApi = registerGenerateOpenApi;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
|
|
10
|
+
const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
|
|
11
|
+
const ProjectGeneratorUtils_1 = __importDefault(require("../../utils/ProjectGeneratorUtils"));
|
|
12
|
+
const shared_1 = require("./shared");
|
|
13
|
+
function registerGenerateOpenApi(generate) {
|
|
14
|
+
generate
|
|
15
|
+
.command('openapi')
|
|
16
|
+
.description('scan processes and generate ./openapi.json from the endpoints they declare')
|
|
17
|
+
.requiredOption('-f, --project-path <path>', 'path to the project')
|
|
18
|
+
.action(async (options) => {
|
|
19
|
+
const projectPath = (0, path_1.resolve)(options.projectPath);
|
|
20
|
+
if (await FileUtils_1.default.exists(projectPath) === false) {
|
|
21
|
+
console.error(chalk_1.default.yellow(`Aborted: '${projectPath}' not exists.`));
|
|
22
|
+
process.exitCode = 1;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const result = await ProjectGeneratorUtils_1.default.generateOpenApi(projectPath);
|
|
26
|
+
if (!(0, shared_1.reportGeneration)(result)) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
ConsoleUtils_1.default.check(`${result.endpointCount} endpoint(s) written to ${chalk_1.default.green(result.written[0])}`);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=openapi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../../src/commands/generate/openapi.ts"],"names":[],"mappings":";;;;;AAQA,0DAsBC;AA7BD,kDAA0B;AAC1B,+BAA+B;AAC/B,sEAA8C;AAC9C,4EAAoD;AACpD,8FAAsE;AACtE,qCAA4C;AAE5C,SAAgB,uBAAuB,CAAC,QAAiB;IACrD,QAAQ;SACH,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,4EAA4E,CAAC;SACzF,cAAc,CAAC,2BAA2B,EAAE,qBAAqB,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;QAE/C,MAAM,WAAW,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEjD,IAAI,MAAM,mBAAS,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,KAAK,EAAE,CAAC;YAChD,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,aAAa,WAAW,eAAe,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,+BAAqB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACxE,IAAI,CAAC,IAAA,yBAAgB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,aAAa,2BAA2B,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
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.registerGeneratePackageJson = registerGeneratePackageJson;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
|
|
10
|
+
const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
|
|
11
|
+
const ManifestUtils_1 = __importDefault(require("../../utils/ManifestUtils"));
|
|
12
|
+
const TemplateUtils_1 = __importDefault(require("../../utils/TemplateUtils"));
|
|
13
|
+
const shared_1 = require("./shared");
|
|
14
|
+
function registerGeneratePackageJson(generate) {
|
|
15
|
+
generate
|
|
16
|
+
.command('pkg')
|
|
17
|
+
.description('Generate the package.json of a Codenotch project in the current directory')
|
|
18
|
+
.action(async () => {
|
|
19
|
+
const projectPath = process.cwd();
|
|
20
|
+
const filePath = (0, path_1.join)(projectPath, 'package.json');
|
|
21
|
+
// Name the package after the project service name when the manifest is available, after the folder otherwise
|
|
22
|
+
const manifest = await FileUtils_1.default.exists((0, path_1.join)(projectPath, 'manifest.json'))
|
|
23
|
+
? await FileUtils_1.default.readJsonFileAsync((0, path_1.join)(projectPath, 'manifest.json'))
|
|
24
|
+
: null;
|
|
25
|
+
const name = manifest?.serviceName ?? ManifestUtils_1.default.toServiceName(FileUtils_1.default.getNameFromPath(projectPath));
|
|
26
|
+
const pkg = TemplateUtils_1.default.createPackageJson(name);
|
|
27
|
+
if (!await (0, shared_1.writeGeneratedFile)(filePath, JSON.stringify(pkg, null, 4))) {
|
|
28
|
+
process.exitCode = 1;
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
ConsoleUtils_1.default.check(`package.json generated at ${chalk_1.default.green(filePath)}`);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=pkg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pkg.js","sourceRoot":"","sources":["../../../src/commands/generate/pkg.ts"],"names":[],"mappings":";;;;;AAUA,kEAwBC;AAjCD,kDAA0B;AAC1B,+BAA4B;AAE5B,sEAA8C;AAC9C,4EAAoD;AACpD,8EAAsD;AACtD,8EAAsD;AACtD,qCAA8C;AAE9C,SAAgB,2BAA2B,CAAC,QAAiB;IACzD,QAAQ;SACH,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,2EAA2E,CAAC;SACxF,MAAM,CAAC,KAAK,IAAI,EAAE;QAEf,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAEnD,6GAA6G;QAC7G,MAAM,QAAQ,GAAG,MAAM,mBAAS,CAAC,MAAM,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YACvE,CAAC,CAAC,MAAM,mBAAS,CAAC,iBAAiB,CAA4B,IAAA,WAAI,EAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YAClG,CAAC,CAAC,IAAI,CAAC;QACX,MAAM,IAAI,GAAG,QAAQ,EAAE,WAAW,IAAI,uBAAa,CAAC,aAAa,CAAC,mBAAS,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;QAE1G,MAAM,GAAG,GAAG,uBAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM,IAAA,2BAAkB,EAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,6BAA6B,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IGenerationResult } from '../../utils/ProjectGeneratorUtils';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves and validates the file given by -f/--file-path.
|
|
4
|
+
* Returns null (and prints the reason) when it cannot be used.
|
|
5
|
+
* @param extensions accepted lowercase extensions, e.g. ['.tsx', '.jsx']
|
|
6
|
+
*/
|
|
7
|
+
export declare function resolveInputFile(inputPath: string, extensions: string[]): Promise<string | null>;
|
|
8
|
+
/**
|
|
9
|
+
* Prints the warnings of a generation, then the reason it was skipped or failed when it was.
|
|
10
|
+
* Returns true when something was written and the command can report it.
|
|
11
|
+
*/
|
|
12
|
+
export declare function reportGeneration(result: IGenerationResult): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Writes a generated file, asking for a confirmation when it already exists.
|
|
15
|
+
* Returns false when the user declined or when the write failed.
|
|
16
|
+
*/
|
|
17
|
+
export declare function writeGeneratedFile(filePath: string, content: string): Promise<boolean>;
|
|
@@ -0,0 +1,70 @@
|
|
|
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.resolveInputFile = resolveInputFile;
|
|
7
|
+
exports.reportGeneration = reportGeneration;
|
|
8
|
+
exports.writeGeneratedFile = writeGeneratedFile;
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const path_1 = require("path");
|
|
11
|
+
const fs_1 = require("fs");
|
|
12
|
+
const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
|
|
13
|
+
const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
|
|
14
|
+
/**
|
|
15
|
+
* Resolves and validates the file given by -f/--file-path.
|
|
16
|
+
* Returns null (and prints the reason) when it cannot be used.
|
|
17
|
+
* @param extensions accepted lowercase extensions, e.g. ['.tsx', '.jsx']
|
|
18
|
+
*/
|
|
19
|
+
async function resolveInputFile(inputPath, extensions) {
|
|
20
|
+
const filePath = (0, path_1.resolve)(inputPath);
|
|
21
|
+
// Check it exists
|
|
22
|
+
if (await FileUtils_1.default.exists(filePath) === false) {
|
|
23
|
+
console.error(chalk_1.default.yellow(`Aborted: '${filePath}' not exists.`));
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
// Check is file
|
|
27
|
+
if ((0, fs_1.lstatSync)(filePath).isDirectory()) {
|
|
28
|
+
console.error(chalk_1.default.yellow(`Aborted: '${filePath}' is a directory.`));
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
// Check extension
|
|
32
|
+
if (extensions.length > 0 && !extensions.some(extension => filePath.toLowerCase().endsWith(extension))) {
|
|
33
|
+
console.error(chalk_1.default.yellow(`Aborted: '${filePath}' is not a ${extensions.join('/')} file.`));
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
return filePath;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Prints the warnings of a generation, then the reason it was skipped or failed when it was.
|
|
40
|
+
* Returns true when something was written and the command can report it.
|
|
41
|
+
*/
|
|
42
|
+
function reportGeneration(result) {
|
|
43
|
+
for (const warning of result.warnings) {
|
|
44
|
+
ConsoleUtils_1.default.checkWarning(warning);
|
|
45
|
+
}
|
|
46
|
+
if (result.skipped !== undefined) {
|
|
47
|
+
ConsoleUtils_1.default.checkWarning(result.skipped);
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
if (result.error !== undefined) {
|
|
51
|
+
console.error(chalk_1.default.yellow(`Aborted: ${result.error}`));
|
|
52
|
+
process.exitCode = 1;
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Writes a generated file, asking for a confirmation when it already exists.
|
|
59
|
+
* Returns false when the user declined or when the write failed.
|
|
60
|
+
*/
|
|
61
|
+
async function writeGeneratedFile(filePath, content) {
|
|
62
|
+
if (await FileUtils_1.default.exists(filePath)) {
|
|
63
|
+
const overwrite = await ConsoleUtils_1.default.confirm(`'${filePath}' already exists. Overwrite it?`, false);
|
|
64
|
+
if (!overwrite) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return FileUtils_1.default.writeFileSync(filePath, content);
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/generate/shared.ts"],"names":[],"mappings":";;;;;AAYA,4CAuBC;AAMD,4CAkBC;AAMD,gDAUC;AA3ED,kDAA0B;AAC1B,+BAA+B;AAC/B,2BAA+B;AAC/B,sEAA8C;AAC9C,4EAAoD;AAGpD;;;;GAIG;AACI,KAAK,UAAU,gBAAgB,CAAC,SAAiB,EAAE,UAAoB;IAE1E,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,SAAS,CAAC,CAAC;IAEpC,kBAAkB;IAClB,IAAI,MAAM,mBAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,aAAa,QAAQ,eAAe,CAAC,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gBAAgB;IAChB,IAAI,IAAA,cAAS,EAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,aAAa,QAAQ,mBAAmB,CAAC,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACrG,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,aAAa,QAAQ,cAAc,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,MAAyB;IAEtD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,sBAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,sBAAY,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,YAAY,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,kBAAkB,CAAC,QAAgB,EAAE,OAAe;IAEtE,IAAI,MAAM,mBAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,sBAAY,CAAC,OAAO,CAAC,IAAI,QAAQ,iCAAiC,EAAE,KAAK,CAAC,CAAC;QACnG,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,mBAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC"}
|