@codenotch/codenotch.cli 1.0.40 → 1.0.41
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/dist/commands/generate/app.js +6 -0
- package/dist/commands/generate/app.js.map +1 -1
- package/dist/commands/generate/appmanifest.js +5 -0
- package/dist/commands/generate/appmanifest.js.map +1 -1
- package/dist/commands/generate/dbcontext.js +5 -1
- package/dist/commands/generate/dbcontext.js.map +1 -1
- package/dist/commands/generate/i18n.js +5 -0
- package/dist/commands/generate/i18n.js.map +1 -1
- package/dist/commands/generate/index.js +8 -1
- package/dist/commands/generate/index.js.map +1 -1
- package/dist/commands/generate/manifest.js +4 -0
- package/dist/commands/generate/manifest.js.map +1 -1
- package/dist/commands/generate/openapi.js +5 -1
- package/dist/commands/generate/openapi.js.map +1 -1
- package/dist/commands/generate/pkg.js +4 -0
- package/dist/commands/generate/pkg.js.map +1 -1
- package/dist/commands/generate/process.js +6 -0
- package/dist/commands/generate/process.js.map +1 -1
- package/dist/commands/project/index.js +8 -1
- package/dist/commands/project/index.js.map +1 -1
- package/dist/commands/project/new.js +7 -1
- package/dist/commands/project/new.js.map +1 -1
- package/dist/commands/project/remove.js +6 -1
- package/dist/commands/project/remove.js.map +1 -1
- package/dist/commands/react/build.js +22 -1
- package/dist/commands/react/build.js.map +1 -1
- package/dist/commands/react/clean.js +7 -2
- package/dist/commands/react/clean.js.map +1 -1
- package/dist/commands/react/dev.js +6 -0
- package/dist/commands/react/dev.js.map +1 -1
- package/dist/commands/react/index.js +11 -1
- package/dist/commands/react/index.js.map +1 -1
- package/dist/commands/react/package.d.ts +2 -0
- package/dist/commands/react/package.js +47 -0
- package/dist/commands/react/package.js.map +1 -0
- package/dist/commands/react/serve.js +5 -0
- package/dist/commands/react/serve.js.map +1 -1
- package/dist/commands/runtime/clear.js +5 -0
- package/dist/commands/runtime/clear.js.map +1 -1
- package/dist/commands/runtime/index.js +8 -1
- package/dist/commands/runtime/index.js.map +1 -1
- package/dist/commands/validation/validate.js +4 -13
- package/dist/commands/validation/validate.js.map +1 -1
- package/dist/utils/BuildUtils.d.ts +53 -5
- package/dist/utils/BuildUtils.js +233 -21
- package/dist/utils/BuildUtils.js.map +1 -1
- package/dist/utils/ConsoleUtils.d.ts +0 -2
- package/dist/utils/ConsoleUtils.js +0 -8
- package/dist/utils/ConsoleUtils.js.map +1 -1
- package/dist/utils/OsUtils.d.ts +6 -0
- package/dist/utils/OsUtils.js +26 -0
- package/dist/utils/OsUtils.js.map +1 -1
- package/dist/utils/PackageUtils.d.ts +101 -0
- package/dist/utils/PackageUtils.js +538 -0
- package/dist/utils/PackageUtils.js.map +1 -0
- package/dist/utils/ProjectCompilationUtils.js.map +1 -1
- package/dist/utils/ServeUtils.js +1 -2
- package/dist/utils/ServeUtils.js.map +1 -1
- package/dist/utils/TemplateUtils.d.ts +1 -0
- package/dist/utils/TemplateUtils.js +1 -0
- package/dist/utils/TemplateUtils.js.map +1 -1
- package/package.json +1 -1
|
@@ -16,6 +16,12 @@ function registerGenerateEmptyApp(generate) {
|
|
|
16
16
|
.option('-n, --name <name>', 'name of the app, used as file name and React component name (asked when omitted)')
|
|
17
17
|
.option('-p, --path <path>', 'directory in which the app is generated', process.cwd())
|
|
18
18
|
.option('--no-manifest', 'do not generate the *.manifest.json next to the app')
|
|
19
|
+
.addHelpText('after', `
|
|
20
|
+
Examples:
|
|
21
|
+
$ cn generate app asks for the name, writes in the current folder
|
|
22
|
+
$ cn generate app -n Dashboard -p apps
|
|
23
|
+
$ cn generate app -n Widget --no-manifest the component alone
|
|
24
|
+
`)
|
|
19
25
|
.action(async (options) => {
|
|
20
26
|
const appName = (options.name ?? await ConsoleUtils_1.default.ask('Name of the app?')).trim();
|
|
21
27
|
if (appName === '') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/commands/generate/app.ts"],"names":[],"mappings":";;;;;AAOA,
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/commands/generate/app.ts"],"names":[],"mappings":";;;;;AAOA,4DAoDC;AA1DD,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,MAAM,CAAC,mBAAmB,EAAE,kFAAkF,CAAC;SAC/G,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACrF,MAAM,CAAC,eAAe,EAAE,qDAAqD,CAAC;SAC9E,WAAW,CAAC,OAAO,EAAE;;;;;CAK7B,CAAC;SACO,MAAM,CAAC,KAAK,EAAE,OAA2D,EAAE,EAAE;QAE1E,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,sBAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpF,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,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"}
|
|
@@ -17,6 +17,11 @@ function registerGenerateAppManifest(generate) {
|
|
|
17
17
|
.command('appmanifest')
|
|
18
18
|
.description('Generate the *.manifest.json of an existing Codenotch app. Without -f, the components missing one are proposed.')
|
|
19
19
|
.option('-f, --file-path <path>', 'path to the *.tsx/*.jsx file (asked when omitted)')
|
|
20
|
+
.addHelpText('after', `
|
|
21
|
+
Examples:
|
|
22
|
+
$ cn generate appmanifest proposes the apps of the project missing a manifest
|
|
23
|
+
$ cn generate appmanifest -f apps/Widget.tsx
|
|
24
|
+
`)
|
|
20
25
|
.action(async (options) => {
|
|
21
26
|
const filePath = options.filePath !== undefined
|
|
22
27
|
? await (0, shared_1.resolveInputFile)(options.filePath, ['.tsx', '.jsx'])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appmanifest.js","sourceRoot":"","sources":["../../../src/commands/generate/appmanifest.ts"],"names":[],"mappings":";;;;;AAUA,
|
|
1
|
+
{"version":3,"file":"appmanifest.js","sourceRoot":"","sources":["../../../src/commands/generate/appmanifest.ts"],"names":[],"mappings":";;;;;AAUA,kEAmCC;AA5CD,kDAA0B;AAC1B,2BAA6C;AAC7C,+BAA+C;AAC/C,sEAA8C;AAC9C,4EAAoD;AACpD,wEAAgD;AAChD,8EAAsD;AACtD,qCAAgE;AAEhE,SAAgB,2BAA2B,CAAC,QAAiB;IACzD,QAAQ;SACH,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,iHAAiH,CAAC;SAC9H,MAAM,CAAC,wBAAwB,EAAE,mDAAmD,CAAC;SACrF,WAAW,CAAC,OAAO,EAAE;;;;CAI7B,CAAC;SACO,MAAM,CAAC,KAAK,EAAE,OAA8B,EAAE,EAAE;QAE7C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS;YAC3C,CAAC,CAAC,MAAM,IAAA,yBAAgB,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5D,CAAC,CAAC,MAAM,4BAA4B,EAAE,CAAC;QAE3C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,kCAAkC;QAC9C,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;AAED;;;;;GAKG;AACH,KAAK,UAAU,4BAA4B;IAEvC,MAAM,aAAa,GAAG,oBAAU,CAAC,aAAa,EAAE,CAAC;IACjD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,6CAA6C,OAAO,CAAC,GAAG,EAAE,6CAA6C,CAAC,CAAC,CAAC;QACrI,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,gBAAW,EAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACvF,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACzE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAA,WAAI,EAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,IAAA,cAAO,EAAC,UAAU,CAAC,EAAE,GAAG,mBAAS,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/G,IAAI,MAAM,mBAAS,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,KAAK,EAAE,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,sBAAY,CAAC,KAAK,CAAC,iBAAiB,QAAQ,6BAA6B,CAAC,CAAC;QAC3E,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,SAAS,IAAA,eAAQ,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;QAC9E,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,sBAAY,CAAC,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACnF,IAAI,EAAE,IAAA,eAAQ,EAAC,aAAa,EAAE,UAAU,CAAC;QACzC,WAAW,EAAE,EAAE;KAClB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -13,8 +13,12 @@ const shared_1 = require("./shared");
|
|
|
13
13
|
function registerGenerateDbContext(generate) {
|
|
14
14
|
generate
|
|
15
15
|
.command('dbcontext')
|
|
16
|
-
.description('
|
|
16
|
+
.description('Scan the tables of a project and generate its db-schema.xml + db-schema.ts')
|
|
17
17
|
.requiredOption('-f, --project-path <path>', 'path to the project')
|
|
18
|
+
.addHelpText('after', `
|
|
19
|
+
Examples:
|
|
20
|
+
$ cn generate dbcontext -f . tables of the current folder, schema written next to them
|
|
21
|
+
`)
|
|
18
22
|
.action(async (options) => {
|
|
19
23
|
const projectPath = (0, path_1.resolve)(options.projectPath);
|
|
20
24
|
if (await FileUtils_1.default.exists(projectPath) === false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbcontext.js","sourceRoot":"","sources":["../../../src/commands/generate/dbcontext.ts"],"names":[],"mappings":";;;;;AAQA,
|
|
1
|
+
{"version":3,"file":"dbcontext.js","sourceRoot":"","sources":["../../../src/commands/generate/dbcontext.ts"],"names":[],"mappings":";;;;;AAQA,8DA0BC;AAjCD,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,4EAA4E,CAAC;SACzF,cAAc,CAAC,2BAA2B,EAAE,qBAAqB,CAAC;SAClE,WAAW,CAAC,OAAO,EAAE;;;CAG7B,CAAC;SACO,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"}
|
|
@@ -16,6 +16,11 @@ function registerGenerateI18nTs(generate) {
|
|
|
16
16
|
.command('i18n')
|
|
17
17
|
.description('Transform a *.i18n.csv into an importable i18n ts (generated next to the csv). Without -f, the files of the project are proposed.')
|
|
18
18
|
.option('-f, --file-path <path>', 'path to the *.i18n.csv file (asked when omitted)')
|
|
19
|
+
.addHelpText('after', `
|
|
20
|
+
Examples:
|
|
21
|
+
$ cn generate i18n proposes the files of the project, 'All of them' by default
|
|
22
|
+
$ cn generate i18n -f globals.i18n.csv writes globals.i18n.ts next to it
|
|
23
|
+
`)
|
|
19
24
|
.action(async (options) => {
|
|
20
25
|
const targets = await resolveTargets(options.filePath);
|
|
21
26
|
if (targets === null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../src/commands/generate/i18n.ts"],"names":[],"mappings":";;;;;AASA,
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../src/commands/generate/i18n.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,14 @@ const process_1 = require("./process");
|
|
|
12
12
|
function registerGenerateCommands(program) {
|
|
13
13
|
const generate = program
|
|
14
14
|
.command('generate')
|
|
15
|
-
.description('Generate project files: derived ones, rebuilt from the sources (db schema, openapi, i18n classes), and ready-to-edit scaffolds (app, manifests, package.json, model processes)')
|
|
15
|
+
.description('Generate project files: derived ones, rebuilt from the sources (db schema, openapi, i18n classes), and ready-to-edit scaffolds (app, manifests, package.json, model processes)')
|
|
16
|
+
.addHelpText('after', `
|
|
17
|
+
Examples:
|
|
18
|
+
$ cn generate app -n Dashboard an empty React app and its manifest
|
|
19
|
+
$ cn generate i18n regenerate the *.i18n.ts classes of the project
|
|
20
|
+
$ cn generate dbcontext -f . db-schema.xml + db-schema.ts from the tables
|
|
21
|
+
$ cn generate process -m api -t Book REST endpoints working on a table
|
|
22
|
+
`);
|
|
16
23
|
(0, manifest_1.registerGenerateProjectManifest)(generate);
|
|
17
24
|
(0, appmanifest_1.registerGenerateAppManifest)(generate);
|
|
18
25
|
(0, pkg_1.registerGeneratePackageJson)(generate);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/generate/index.ts"],"names":[],"mappings":";;AAUA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/generate/index.ts"],"names":[],"mappings":";;AAUA,4DAoBC;AA7BD,yCAA6D;AAC7D,+CAA4D;AAC5D,+BAAoD;AACpD,+BAAiD;AACjD,iCAAgD;AAChD,2CAAwD;AACxD,uCAAoD;AACpD,uCAAoD;AAEpD,SAAgB,wBAAwB,CAAC,OAAgB;IACrD,MAAM,QAAQ,GAAG,OAAO;SACnB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,gLAAgL,CAAC;SAC7L,WAAW,CAAC,OAAO,EAAE;;;;;;CAM7B,CAAC,CAAC;IAEC,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,6BAAsB,EAAC,QAAQ,CAAC,CAAC;IACjC,IAAA,qCAAyB,EAAC,QAAQ,CAAC,CAAC;IACpC,IAAA,iCAAuB,EAAC,QAAQ,CAAC,CAAC;IAClC,IAAA,iCAAuB,EAAC,QAAQ,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -14,6 +14,10 @@ function registerGenerateProjectManifest(generate) {
|
|
|
14
14
|
generate
|
|
15
15
|
.command('manifest')
|
|
16
16
|
.description('Generate the manifest.json of a Codenotch project in the current directory')
|
|
17
|
+
.addHelpText('after', `
|
|
18
|
+
Examples:
|
|
19
|
+
$ cn generate manifest project and service names derive from the current folder name
|
|
20
|
+
`)
|
|
17
21
|
.action(async () => {
|
|
18
22
|
const projectPath = process.cwd();
|
|
19
23
|
const filePath = (0, path_1.join)(projectPath, 'manifest.json');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/commands/generate/manifest.ts"],"names":[],"mappings":";;;;;AAQA,
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/commands/generate/manifest.ts"],"names":[],"mappings":";;;;;AAQA,0EAuBC;AA9BD,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,WAAW,CAAC,OAAO,EAAE;;;CAG7B,CAAC;SACO,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"}
|
|
@@ -13,8 +13,12 @@ const shared_1 = require("./shared");
|
|
|
13
13
|
function registerGenerateOpenApi(generate) {
|
|
14
14
|
generate
|
|
15
15
|
.command('openapi')
|
|
16
|
-
.description('
|
|
16
|
+
.description('Scan the processes of a project and generate its openapi.json from the endpoints they declare')
|
|
17
17
|
.requiredOption('-f, --project-path <path>', 'path to the project')
|
|
18
|
+
.addHelpText('after', `
|
|
19
|
+
Examples:
|
|
20
|
+
$ cn generate openapi -f . endpoints of the current folder, written to ./openapi.json
|
|
21
|
+
`)
|
|
18
22
|
.action(async (options) => {
|
|
19
23
|
const projectPath = (0, path_1.resolve)(options.projectPath);
|
|
20
24
|
if (await FileUtils_1.default.exists(projectPath) === false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../../src/commands/generate/openapi.ts"],"names":[],"mappings":";;;;;AAQA,
|
|
1
|
+
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../../src/commands/generate/openapi.ts"],"names":[],"mappings":";;;;;AAQA,0DA0BC;AAjCD,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,+FAA+F,CAAC;SAC5G,cAAc,CAAC,2BAA2B,EAAE,qBAAqB,CAAC;SAClE,WAAW,CAAC,OAAO,EAAE;;;CAG7B,CAAC;SACO,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"}
|
|
@@ -15,6 +15,10 @@ function registerGeneratePackageJson(generate) {
|
|
|
15
15
|
generate
|
|
16
16
|
.command('pkg')
|
|
17
17
|
.description('Generate the package.json of a Codenotch project in the current directory')
|
|
18
|
+
.addHelpText('after', `
|
|
19
|
+
Examples:
|
|
20
|
+
$ cn generate pkg package named after the serviceName of ./manifest.json
|
|
21
|
+
`)
|
|
18
22
|
.action(async () => {
|
|
19
23
|
const projectPath = process.cwd();
|
|
20
24
|
const filePath = (0, path_1.join)(projectPath, 'package.json');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkg.js","sourceRoot":"","sources":["../../../src/commands/generate/pkg.ts"],"names":[],"mappings":";;;;;AAUA,
|
|
1
|
+
{"version":3,"file":"pkg.js","sourceRoot":"","sources":["../../../src/commands/generate/pkg.ts"],"names":[],"mappings":";;;;;AAUA,kEA4BC;AArCD,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,WAAW,CAAC,OAAO,EAAE;;;CAG7B,CAAC;SACO,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"}
|
|
@@ -53,6 +53,12 @@ function registerGenerateProcess(generate) {
|
|
|
53
53
|
.option('-m, --model <name>', `model to generate: ${ProcessModelUtils_1.PROCESS_MODELS.map(model => model.name).join(', ')} (asked when omitted)`)
|
|
54
54
|
.option('-t, --table <name>', 'name of the table the process works on (asked when omitted)')
|
|
55
55
|
.option('-p, --path <path>', "directory in which the process is generated (default: the 'processes' folder of the project)")
|
|
56
|
+
.addHelpText('after', `
|
|
57
|
+
Examples:
|
|
58
|
+
$ cn generate process pick the model and the table on menus
|
|
59
|
+
$ cn generate process -m api -t Book list/read/create/delete endpoints + the query of the list
|
|
60
|
+
$ cn generate process -m upsert -t Book
|
|
61
|
+
`)
|
|
56
62
|
.action(async (options) => {
|
|
57
63
|
const workspacePath = BuildUtils_1.default.findWorkspace();
|
|
58
64
|
if (workspacePath === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/commands/generate/process.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/commands/generate/process.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,14 @@ const remove_1 = require("./remove");
|
|
|
14
14
|
function registerProjectCommands(program) {
|
|
15
15
|
const project = program
|
|
16
16
|
.command('project') //TODO name subject to change
|
|
17
|
-
.description('
|
|
17
|
+
.description('Work on a Codenotch project: create, inspect, start, sync, test, package, deploy or remove it. Run these inside the project folder, or point -p at it')
|
|
18
|
+
.addHelpText('after', `
|
|
19
|
+
Examples:
|
|
20
|
+
$ cn project new -t todolist
|
|
21
|
+
$ cn project start build, deploy and start the local project
|
|
22
|
+
$ cn project inspect what the sources declare (processes, tables, apps, i18n...)
|
|
23
|
+
$ cn project refresh sync the changes with the running runtime
|
|
24
|
+
`);
|
|
18
25
|
(0, inspect_1.registerInspect)(project);
|
|
19
26
|
(0, open_1.registerOpen)(project);
|
|
20
27
|
(0, start_1.registerStart)(project);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/project/index.ts"],"names":[],"mappings":";;AAYA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/project/index.ts"],"names":[],"mappings":";;AAYA,0DAsBC;AAjCD,uCAA4C;AAC5C,iCAAsC;AACtC,mCAAwC;AACxC,uCAA4C;AAC5C,iCAAsC;AACtC,uCAA4C;AAC5C,uCAA4C;AAC5C,qCAA0C;AAC1C,+BAAoC;AACpC,qCAA0C;AAE1C,SAAgB,uBAAuB,CAAC,OAAgB;IACpD,MAAM,OAAO,GAAG,OAAO;SAClB,OAAO,CAAC,SAAS,CAAC,CAAC,6BAA6B;SAChD,WAAW,CAAC,uJAAuJ,CAAC;SACpK,WAAW,CAAC,OAAO,EAAE;;;;;;CAM7B,CAAC,CAAC;IAEC,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;IACzB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC;IACvB,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;IACzB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;IACzB,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;IACzB,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;IACxB,IAAA,iBAAW,EAAC,OAAO,CAAC,CAAC;IACrB,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -53,7 +53,13 @@ function registerNew(project) {
|
|
|
53
53
|
.description('Create a new project')
|
|
54
54
|
.option('-t, --template <name>', `template to start from: ${ProjectTemplates_1.default.TEMPLATES.map(t => t.name).join(', ')} (asked when omitted)`)
|
|
55
55
|
.option('--list-templates', 'list the available templates and exit')
|
|
56
|
-
.option('--no-install', 'do not run npm install in the new project')
|
|
56
|
+
.option('--no-install', 'do not run npm install in the new project')
|
|
57
|
+
.addHelpText('after', `
|
|
58
|
+
Examples:
|
|
59
|
+
$ cn project new asks for the template and the name
|
|
60
|
+
$ cn project new -t tailwind -p ./shop
|
|
61
|
+
$ cn project new --list-templates
|
|
62
|
+
`))
|
|
57
63
|
.action(async (options) => {
|
|
58
64
|
if (options.listTemplates) {
|
|
59
65
|
for (const template of ProjectTemplates_1.default.TEMPLATES) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/commands/project/new.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/commands/project/new.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,12 @@ function registerRemove(project) {
|
|
|
13
13
|
(0, shared_1.withProjectPathOption)(project
|
|
14
14
|
.command('remove')
|
|
15
15
|
.description('Uninstall the project and erase its data (use with caution)')
|
|
16
|
-
.option('-y, --yes', 'do not ask for confirmation', false)
|
|
16
|
+
.option('-y, --yes', 'do not ask for confirmation', false)
|
|
17
|
+
.addHelpText('after', `
|
|
18
|
+
Examples:
|
|
19
|
+
$ cn project remove asks for confirmation first
|
|
20
|
+
$ cn project remove --yes no confirmation (scripts, CI)
|
|
21
|
+
`))
|
|
17
22
|
.action(async (options) => {
|
|
18
23
|
const projectName = FileUtils_1.default.getNameFromPath(options.projectPath);
|
|
19
24
|
// Erasing data deserves an explicit go: outside a terminal, only --yes can give it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/project/remove.ts"],"names":[],"mappings":";;;;;AAOA,
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/project/remove.ts"],"names":[],"mappings":";;;;;AAOA,wCAuBC;AA7BD,kDAA0B;AAC1B,4EAAoD;AACpD,4EAAoD;AACpD,sEAA8C;AAC9C,qCAAyE;AAEzE,SAAgB,cAAc,CAAC,OAAgB;IAC3C,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,MAAM,CAAC,WAAW,EAAE,6BAA6B,EAAE,KAAK,CAAC;SACzD,WAAW,CAAC,OAAO,EAAE;;;;CAI7B,CAAC,CAAC;SACM,MAAM,CAAC,KAAK,EAAE,OAAkD,EAAE,EAAE;QAEjE,MAAM,WAAW,GAAG,mBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEnE,mFAAmF;QACnF,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,sBAAY,CAAC,OAAO,CAAC,mBAAmB,WAAW,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5G,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,sEAAsE,CAAC,CAAC,CAAC;YACpG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,sBAAY,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -5,19 +5,40 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.registerBuild = registerBuild;
|
|
7
7
|
const BuildUtils_1 = __importDefault(require("../../utils/BuildUtils"));
|
|
8
|
+
const OsUtils_1 = require("../../utils/OsUtils");
|
|
8
9
|
const shared_1 = require("./shared");
|
|
9
10
|
function registerBuild(react) {
|
|
10
11
|
react
|
|
11
12
|
.command('build [app]')
|
|
12
13
|
.description('Build a React app of the project into a ready-to-serve bundle. By its name, or the path of its component; the only app when omitted.')
|
|
13
14
|
.option('-c, --cluster <url>', 'cluster the app will talk to, written into the .env of the bundle')
|
|
15
|
+
.option('--static', 'bake the environment into the bundle instead of the /api/env fetch: the dist runs from any static file host')
|
|
16
|
+
.option('--pwa', 'installable PWA (implies --static): web manifest from the pwa section of the app manifest, icons, offline service worker')
|
|
17
|
+
.option('--no-open', 'do not open the bundle folder in the file explorer once the build is done')
|
|
18
|
+
.addHelpText('after', `
|
|
19
|
+
Examples:
|
|
20
|
+
$ cn react build the only app of the project (a menu when there are several)
|
|
21
|
+
$ cn react build Dashboard bundle written to .codenotch/Dashboard-dist
|
|
22
|
+
$ cn react build apps/Dashboard.tsx by the path of its component
|
|
23
|
+
$ cn react build Dashboard --static env baked in, for nginx / S3 / GitHub Pages...
|
|
24
|
+
$ cn react build Dashboard --pwa installable, works offline, for any static host
|
|
25
|
+
$ cn react build Dashboard --no-open without opening the bundle folder
|
|
26
|
+
`)
|
|
14
27
|
.action(async (target, options) => {
|
|
15
28
|
const app = await (0, shared_1.resolveAppTarget)(target);
|
|
16
29
|
if (app === null) {
|
|
17
30
|
process.exitCode = 1;
|
|
18
31
|
return;
|
|
19
32
|
}
|
|
20
|
-
await BuildUtils_1.default.buildReactApp(app.scriptPath,
|
|
33
|
+
const bundlePath = await BuildUtils_1.default.buildReactApp(app.scriptPath, {
|
|
34
|
+
clusterUrl: options.cluster,
|
|
35
|
+
static: options.static,
|
|
36
|
+
pwa: options.pwa
|
|
37
|
+
});
|
|
38
|
+
// Show the bundle where it landed, the build only prints its path
|
|
39
|
+
if (bundlePath !== undefined && options.open !== false) {
|
|
40
|
+
OsUtils_1.OsUtils.openInFileExplorer(bundlePath);
|
|
41
|
+
}
|
|
21
42
|
});
|
|
22
43
|
}
|
|
23
44
|
//# sourceMappingURL=build.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/react/build.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/react/build.ts"],"names":[],"mappings":";;;;;AAKA,sCAoCC;AAxCD,wEAAmE;AACnE,iDAA8C;AAC9C,qCAA4C;AAE5C,SAAgB,aAAa,CAAC,KAAc;IACxC,KAAK;SACA,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,sIAAsI,CAAC;SACnJ,MAAM,CAAC,qBAAqB,EAAE,mEAAmE,CAAC;SAClG,MAAM,CAAC,UAAU,EAAE,6GAA6G,CAAC;SACjI,MAAM,CAAC,OAAO,EAAE,0HAA0H,CAAC;SAC3I,MAAM,CAAC,WAAW,EAAE,2EAA2E,CAAC;SAChG,WAAW,CAAC,OAAO,EAAE;;;;;;;;CAQ7B,CAAC;SACO,MAAM,CAAC,KAAK,EAAE,MAA0B,EAAE,OAAsB,EAAE,EAAE;QAEjE,MAAM,GAAG,GAAG,MAAM,IAAA,yBAAgB,EAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,oBAAU,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE;YAC9D,UAAU,EAAE,OAAO,CAAC,OAAO;YAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG;SACnB,CAAC,CAAC;QAEH,kEAAkE;QAClE,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACrD,iBAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -10,12 +10,17 @@ const path_1 = require("path");
|
|
|
10
10
|
const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
|
|
11
11
|
const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
|
|
12
12
|
const shared_1 = require("./shared");
|
|
13
|
-
/** The folders 'cn react build' and 'cn react
|
|
14
|
-
const STAGING_SUFFIXES = ['-source', '-dist', '-dev'];
|
|
13
|
+
/** The folders 'cn react build', 'cn react dev' and 'cn react package' stage under .codenotch */
|
|
14
|
+
const STAGING_SUFFIXES = ['-source', '-dist', '-dev', '-package'];
|
|
15
15
|
function registerClean(react) {
|
|
16
16
|
react
|
|
17
17
|
.command('clean [app]')
|
|
18
18
|
.description('Delete the staging and bundle folders a build or a dev server left under .codenotch, for one app or for all')
|
|
19
|
+
.addHelpText('after', `
|
|
20
|
+
Examples:
|
|
21
|
+
$ cn react clean every app of the project
|
|
22
|
+
$ cn react clean Dashboard only that app
|
|
23
|
+
`)
|
|
19
24
|
.action(async (target) => {
|
|
20
25
|
const workspacePath = (0, shared_1.findWorkspace)();
|
|
21
26
|
if (workspacePath === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/commands/react/clean.ts"],"names":[],"mappings":";;;;;AAWA,
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/commands/react/clean.ts"],"names":[],"mappings":";;;;;AAWA,sCAyCC;AAnDD,kDAA0B;AAC1B,2BAA6C;AAC7C,+BAA4B;AAC5B,4EAAoD;AACpD,sEAA8C;AAC9C,qCAAyC;AAEzC,iGAAiG;AACjG,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAElE,SAAgB,aAAa,CAAC,KAAc;IACxC,KAAK;SACA,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,6GAA6G,CAAC;SAC1H,WAAW,CAAC,OAAO,EAAE;;;;CAI7B,CAAC;SACO,MAAM,CAAC,KAAK,EAAE,MAA0B,EAAE,EAAE;QAEzC,MAAM,aAAa,GAAG,IAAA,sBAAa,GAAE,CAAC;QACtC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,6CAA6C,OAAO,CAAC,GAAG,EAAE,6CAA6C,CAAC,CAAC,CAAC;YACrI,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE,CAAC;YAC7B,sBAAY,CAAC,KAAK,CAAC,sBAAsB,aAAa,mBAAmB,CAAC,CAAC;YAC3E,OAAO;QACX,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC9D,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;aACpC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;aACxB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;aACpF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;QAExI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,sBAAY,CAAC,KAAK,CAAC,mBAAmB,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,QAAQ,aAAa,IAAI,CAAC,CAAC;YAC/G,OAAO;QACX,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,mBAAS,CAAC,iBAAiB,CAAC,IAAA,WAAI,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,uBAAuB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -13,6 +13,12 @@ function registerDev(react) {
|
|
|
13
13
|
.option('-p, --port <port>', 'port of the dev server (default 5173)', (value) => parseInt(value, 10), 5173)
|
|
14
14
|
.option('-c, --cluster <url>', 'cluster the app will talk to, exposed to the page through /api/env')
|
|
15
15
|
.option('--no-open', 'do not open the browser once the server is up')
|
|
16
|
+
.addHelpText('after', `
|
|
17
|
+
Examples:
|
|
18
|
+
$ cn react dev the only app of the project (a menu when there are several)
|
|
19
|
+
$ cn react dev Dashboard -p 3000
|
|
20
|
+
$ cn react dev Dashboard --no-open -c https://cluster.example.com
|
|
21
|
+
`)
|
|
16
22
|
.action(async (target, options) => {
|
|
17
23
|
const app = await (0, shared_1.resolveAppTarget)(target);
|
|
18
24
|
if (app === null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/commands/react/dev.ts"],"names":[],"mappings":";;;;;AAIA,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/commands/react/dev.ts"],"names":[],"mappings":";;;;;AAIA,kCA0BC;AA7BD,wEAAgD;AAChD,qCAA4C;AAE5C,SAAgB,WAAW,CAAC,KAAc;IACtC,KAAK;SACA,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,kHAAkH,CAAC;SAC/H,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;SAClH,MAAM,CAAC,qBAAqB,EAAE,oEAAoE,CAAC;SACnG,MAAM,CAAC,WAAW,EAAE,+CAA+C,CAAC;SACpE,WAAW,CAAC,OAAO,EAAE;;;;;CAK7B,CAAC;SACO,MAAM,CAAC,KAAK,EAAE,MAA0B,EAAE,OAA0D,EAAE,EAAE;QAErG,MAAM,GAAG,GAAG,MAAM,IAAA,yBAAgB,EAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,oBAAU,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACvI,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAChC,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -5,13 +5,23 @@ const serve_1 = require("./serve");
|
|
|
5
5
|
const build_1 = require("./build");
|
|
6
6
|
const dev_1 = require("./dev");
|
|
7
7
|
const clean_1 = require("./clean");
|
|
8
|
+
const package_1 = require("./package");
|
|
8
9
|
function registerReactCommands(program) {
|
|
9
10
|
const react = program
|
|
10
11
|
.command('react')
|
|
11
|
-
.description('React
|
|
12
|
+
.description('Work on the React apps of the project: dev server with hot reload, production build, preview of a build, desktop installer, cleanup of the staging folders')
|
|
13
|
+
.addHelpText('after', `
|
|
14
|
+
Examples:
|
|
15
|
+
$ cn react dev dev server of the only app, opens the browser
|
|
16
|
+
$ cn react build Dashboard production bundle in .codenotch/Dashboard-dist
|
|
17
|
+
$ cn react preview Dashboard serve that bundle locally
|
|
18
|
+
$ cn react package Dashboard desktop installer for this OS (Tauri, needs Rust)
|
|
19
|
+
$ cn react clean delete every staging and bundle folder
|
|
20
|
+
`);
|
|
12
21
|
(0, dev_1.registerDev)(react);
|
|
13
22
|
(0, build_1.registerBuild)(react);
|
|
14
23
|
(0, serve_1.registerServe)(react);
|
|
24
|
+
(0, package_1.registerPackage)(react);
|
|
15
25
|
(0, clean_1.registerClean)(react);
|
|
16
26
|
}
|
|
17
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/react/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/react/index.ts"],"names":[],"mappings":";;AAOA,sDAkBC;AAxBD,mCAAwC;AACxC,mCAAwC;AACxC,+BAAoC;AACpC,mCAAwC;AACxC,uCAA4C;AAE5C,SAAgB,qBAAqB,CAAC,OAAgB;IAClD,MAAM,KAAK,GAAG,OAAO;SAChB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,4JAA4J,CAAC;SACzK,WAAW,CAAC,OAAO,EAAE;;;;;;;CAO7B,CAAC,CAAC;IAEC,IAAA,iBAAW,EAAC,KAAK,CAAC,CAAC;IACnB,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;IACrB,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;IACrB,IAAA,yBAAe,EAAC,KAAK,CAAC,CAAC;IACvB,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
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.registerPackage = registerPackage;
|
|
7
|
+
const PackageUtils_1 = __importDefault(require("../../utils/PackageUtils"));
|
|
8
|
+
const OsUtils_1 = require("../../utils/OsUtils");
|
|
9
|
+
const shared_1 = require("./shared");
|
|
10
|
+
function registerPackage(react) {
|
|
11
|
+
react
|
|
12
|
+
.command('package [app]')
|
|
13
|
+
.description('Package an app as a desktop installer (Tauri) for the OS this command runs on. Needs the Rust toolchain — proposed for installation (rustup) when missing.')
|
|
14
|
+
.option('-c, --cluster <url>', 'cluster the app will talk to, baked into the packaged bundle')
|
|
15
|
+
.option('-t, --target <os>', 'windows, linux or macos — only the current OS is possible, installers do not cross-compile (default: the current OS)')
|
|
16
|
+
.option('--no-open', 'do not open the installers folder in the file explorer once done')
|
|
17
|
+
.addHelpText('after', `
|
|
18
|
+
Examples:
|
|
19
|
+
$ cn react package the only app of the project (a menu when there are several)
|
|
20
|
+
$ cn react package Dashboard e.g. on Windows: an NSIS setup .exe in .codenotch/Dashboard-package
|
|
21
|
+
$ cn react package Dashboard -c https://cluster.example.com
|
|
22
|
+
|
|
23
|
+
The static bundle is built first (env baked in), then wrapped by Tauri into a native window.
|
|
24
|
+
First run: npm + cargo fetch and compile the Tauri runtime, expect several minutes; later runs are incremental.
|
|
25
|
+
For the installers of the other OSes, run the same command on that OS or in a CI matrix.
|
|
26
|
+
`)
|
|
27
|
+
.action(async (app, options) => {
|
|
28
|
+
const resolved = await (0, shared_1.resolveAppTarget)(app);
|
|
29
|
+
if (resolved === null) {
|
|
30
|
+
process.exitCode = 1;
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const installersDir = await PackageUtils_1.default.packageReactApp(resolved.scriptPath, {
|
|
34
|
+
target: options.target,
|
|
35
|
+
clusterUrl: options.cluster
|
|
36
|
+
});
|
|
37
|
+
if (installersDir === undefined) {
|
|
38
|
+
process.exitCode = 1;
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// Show the installers where they landed, the build only prints their paths
|
|
42
|
+
if (options.open !== false) {
|
|
43
|
+
OsUtils_1.OsUtils.openInFileExplorer(installersDir);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../../src/commands/react/package.ts"],"names":[],"mappings":";;;;;AAKA,0CAuCC;AA3CD,4EAAoD;AACpD,iDAA8C;AAC9C,qCAA4C;AAE5C,SAAgB,eAAe,CAAC,KAAc;IAC1C,KAAK;SACA,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,4JAA4J,CAAC;SACzK,MAAM,CAAC,qBAAqB,EAAE,8DAA8D,CAAC;SAC7F,MAAM,CAAC,mBAAmB,EAAE,sHAAsH,CAAC;SACnJ,MAAM,CAAC,WAAW,EAAE,kEAAkE,CAAC;SACvF,WAAW,CAAC,OAAO,EAAE;;;;;;;;;CAS7B,CAAC;SACO,MAAM,CAAC,KAAK,EAAE,GAAuB,EAAE,OAA6D,EAAE,EAAE;QAErG,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAgB,EAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,sBAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,EAAE;YAC1E,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,OAAO;SAC9B,CAAC,CAAC;QACH,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,2EAA2E;QAC3E,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACzB,iBAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -16,6 +16,11 @@ function registerServe(react) {
|
|
|
16
16
|
.description('Serve the built bundle of an app (by name, the only app when omitted), or any folder holding an index.html')
|
|
17
17
|
.option('-p, --port <port>', 'port to serve the application on (default 5000)', (value) => parseInt(value, 10), 5000)
|
|
18
18
|
.option('-i, --index <name>', 'index file name (default index.html)', 'index.html')
|
|
19
|
+
.addHelpText('after', `
|
|
20
|
+
Examples:
|
|
21
|
+
$ cn react preview Dashboard the bundle built by 'cn react build Dashboard'
|
|
22
|
+
$ cn react serve ./some/dist -p 8080 any folder holding an index.html
|
|
23
|
+
`)
|
|
19
24
|
.action(async (target, options) => {
|
|
20
25
|
// An explicit folder is served as it is, whatever it holds
|
|
21
26
|
if (target !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/commands/react/serve.ts"],"names":[],"mappings":";;;;;AAOA,
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/commands/react/serve.ts"],"names":[],"mappings":";;;;;AAOA,sCA4CC;AAlDD,kDAA0B;AAC1B,2BAA2C;AAC3C,+BAAqC;AACrC,wEAAmE;AACnE,qCAA2D;AAE3D,SAAgB,aAAa,CAAC,KAAc;IACxC,KAAK;SACA,OAAO,CAAC,gBAAgB,CAAC;SACzB,KAAK,CAAC,SAAS,CAAC;SAChB,WAAW,CAAC,4GAA4G,CAAC;SACzH,MAAM,CAAC,mBAAmB,EAAE,iDAAiD,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;SAC5H,MAAM,CAAC,oBAAoB,EAAE,sCAAsC,EAAE,YAAY,CAAC;SAClF,WAAW,CAAC,OAAO,EAAE;;;;CAI7B,CAAC;SACO,MAAM,CAAC,KAAK,EAAE,MAA0B,EAAE,OAAsB,EAAE,EAAE;QAEjE,2DAA2D;QAC3D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAA,cAAO,EAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,IAAA,eAAU,EAAC,MAAM,CAAC,IAAI,IAAA,cAAS,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxD,MAAM,oBAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC3C,OAAO;YACX,CAAC;QACL,CAAC;QAED,kFAAkF;QAClF,IAAI,MAAM,KAAK,SAAS,IAAI,IAAA,sBAAa,GAAE,KAAK,SAAS,EAAE,CAAC;YACxD,MAAM,oBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO;QACX,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAA,yBAAgB,EAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,GAAG,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,gCAAgC,GAAG,CAAC,IAAI,MAAM,QAAQ,0CAA0C,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1I,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,oBAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -12,6 +12,11 @@ function registerClear(runtime) {
|
|
|
12
12
|
.command('clear')
|
|
13
13
|
.description('Erase all runtime data (ie. all projects, users, ...) but keep the runtime itself (use with caution)')
|
|
14
14
|
.option('-y, --yes', 'do not ask for confirmation', false)
|
|
15
|
+
.addHelpText('after', `
|
|
16
|
+
Examples:
|
|
17
|
+
$ cn runtime clear asks for confirmation first
|
|
18
|
+
$ cn runtime clear --yes no confirmation (scripts, CI)
|
|
19
|
+
`)
|
|
15
20
|
.action(async (options) => {
|
|
16
21
|
// Erasing every project and user deserves an explicit go: outside a terminal, only --yes can give it
|
|
17
22
|
if (!options.yes && !await ConsoleUtils_1.default.confirm('Erase ALL runtime data (every project, user, ...)?', false)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../src/commands/runtime/clear.ts"],"names":[],"mappings":";;;;;AAKA,
|
|
1
|
+
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../src/commands/runtime/clear.ts"],"names":[],"mappings":";;;;;AAKA,sCAqBC;AAzBD,kDAA0B;AAC1B,4EAAoD;AACpD,4EAAoD;AAEpD,SAAgB,aAAa,CAAC,OAAgB;IAC1C,OAAO;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,sGAAsG,CAAC;SACnH,MAAM,CAAC,WAAW,EAAE,6BAA6B,EAAE,KAAK,CAAC;SACzD,WAAW,CAAC,OAAO,EAAE;;;;CAI7B,CAAC;SACO,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;QAExC,qGAAqG;QACrG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,sBAAY,CAAC,OAAO,CAAC,oDAAoD,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3G,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,qEAAqE,CAAC,CAAC,CAAC;YACnG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,sBAAY,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -12,7 +12,14 @@ const portal_1 = require("./portal");
|
|
|
12
12
|
function registerRuntimeCommands(program) {
|
|
13
13
|
const runtime = program
|
|
14
14
|
.command('runtime') //TODO name subject to change
|
|
15
|
-
.description('
|
|
15
|
+
.description('Manage the local Codenotch runtime: install or update it, start and stop it, inspect its status, erase its data')
|
|
16
|
+
.addHelpText('after', `
|
|
17
|
+
Examples:
|
|
18
|
+
$ cn runtime install download and install the latest runtime release
|
|
19
|
+
$ cn runtime start
|
|
20
|
+
$ cn runtime status
|
|
21
|
+
$ cn runtime clear --yes erase every project and user without asking
|
|
22
|
+
`);
|
|
16
23
|
(0, info_1.registerInfo)(runtime);
|
|
17
24
|
(0, update_1.registerUpdate)(runtime);
|
|
18
25
|
(0, start_1.registerStart)(runtime);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/runtime/index.ts"],"names":[],"mappings":";;AAUA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/runtime/index.ts"],"names":[],"mappings":";;AAUA,0DAoBC;AA7BD,iCAAsC;AACtC,qCAA0C;AAC1C,mCAAwC;AACxC,iCAAsC;AACtC,mCAAwC;AACxC,qCAA0C;AAC1C,qCAA0C;AAE1C,qKAAqK;AACrK,SAAgB,uBAAuB,CAAC,OAAgB;IACpD,MAAM,OAAO,GAAG,OAAO;SAClB,OAAO,CAAC,SAAS,CAAC,CAAC,6BAA6B;SAChD,WAAW,CAAC,iHAAiH,CAAC;SAC9H,WAAW,CAAC,OAAO,EAAE;;;;;;CAM7B,CAAC,CAAC;IAEC,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;IACxB,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC;IACvB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC;IACvB,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;IAExB,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
|