@foal/cli 5.1.3 → 5.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli.d.ts +6 -0
- package/lib/cli.js +208 -0
- package/lib/commands/connectors/connect-angular/connect-angular-command.service.d.ts +15 -0
- package/lib/commands/connectors/connect-angular/connect-angular-command.service.js +66 -0
- package/lib/commands/connectors/connect-angular/index.d.ts +1 -0
- package/lib/commands/connectors/connect-angular/index.js +5 -0
- package/lib/commands/connectors/connect-react/connect-react-command.service.d.ts +15 -0
- package/lib/commands/connectors/connect-react/connect-react-command.service.js +47 -0
- package/lib/commands/connectors/connect-react/index.d.ts +1 -0
- package/lib/commands/connectors/connect-react/index.js +5 -0
- package/lib/commands/connectors/connect-vue/connect-vue-command.service.d.ts +15 -0
- package/lib/commands/connectors/connect-vue/connect-vue-command.service.js +51 -0
- package/lib/commands/connectors/connect-vue/index.d.ts +1 -0
- package/lib/commands/connectors/connect-vue/index.js +5 -0
- package/lib/commands/connectors/index.d.ts +3 -0
- package/lib/commands/connectors/index.js +9 -0
- package/lib/commands/create-secret/create-secret-command.service.d.ts +7 -0
- package/lib/commands/create-secret/create-secret-command.service.js +16 -0
- package/lib/commands/create-secret/index.d.ts +1 -0
- package/lib/commands/create-secret/index.js +5 -0
- package/lib/commands/generators/create-app/create-app-command.service.d.ts +25 -0
- package/lib/commands/generators/create-app/create-app-command.service.js +151 -0
- package/lib/commands/generators/create-app/index.d.ts +1 -0
- package/lib/commands/generators/create-app/index.js +5 -0
- package/lib/commands/generators/create-controller/create-controller-command.service.d.ts +19 -0
- package/lib/commands/generators/create-controller/create-controller-command.service.js +53 -0
- package/lib/commands/generators/create-controller/index.d.ts +1 -0
- package/lib/commands/generators/create-controller/index.js +5 -0
- package/lib/commands/generators/create-entity/create-entity-command.service.d.ts +17 -0
- package/lib/commands/generators/create-entity/create-entity-command.service.js +42 -0
- package/lib/commands/generators/create-entity/index.d.ts +1 -0
- package/lib/commands/generators/create-entity/index.js +5 -0
- package/lib/commands/generators/create-hook/create-hook-command.service.d.ts +17 -0
- package/lib/commands/generators/create-hook/create-hook-command.service.js +40 -0
- package/lib/commands/generators/create-hook/index.d.ts +1 -0
- package/lib/commands/generators/create-hook/index.js +5 -0
- package/lib/commands/generators/create-rest-api/create-rest-api-command.service.d.ts +21 -0
- package/lib/commands/generators/create-rest-api/create-rest-api-command.service.js +80 -0
- package/lib/commands/generators/create-rest-api/index.d.ts +1 -0
- package/lib/commands/generators/create-rest-api/index.js +5 -0
- package/lib/commands/generators/create-script/create-script-command.service.d.ts +17 -0
- package/lib/commands/generators/create-script/create-script-command.service.js +28 -0
- package/lib/commands/generators/create-script/index.d.ts +1 -0
- package/lib/commands/generators/create-script/index.js +5 -0
- package/lib/commands/generators/create-service/create-service-command.service.d.ts +17 -0
- package/lib/commands/generators/create-service/create-service-command.service.js +40 -0
- package/lib/commands/generators/create-service/index.d.ts +1 -0
- package/lib/commands/generators/create-service/index.js +5 -0
- package/lib/commands/generators/index.d.ts +7 -0
- package/lib/commands/generators/index.js +17 -0
- package/lib/commands/index.d.ts +6 -0
- package/lib/commands/index.js +23 -0
- package/lib/commands/rmdir/index.d.ts +1 -0
- package/lib/commands/rmdir/index.js +5 -0
- package/lib/commands/rmdir/rmdir-command.service.d.ts +12 -0
- package/lib/commands/rmdir/rmdir-command.service.js +29 -0
- package/lib/commands/run-script/index.d.ts +1 -0
- package/lib/commands/run-script/index.js +5 -0
- package/lib/commands/run-script/run-script-command.service.d.ts +10 -0
- package/lib/commands/run-script/run-script-command.service.js +79 -0
- package/lib/commands/upgrade/index.d.ts +1 -0
- package/lib/commands/upgrade/index.js +5 -0
- package/lib/commands/upgrade/upgrade-command.service.d.ts +24 -0
- package/lib/commands/upgrade/upgrade-command.service.js +49 -0
- package/lib/index.d.ts +1 -6
- package/lib/index.js +1 -157
- package/lib/services/crypto/crypto.service.d.ts +11 -0
- package/lib/services/crypto/crypto.service.js +20 -0
- package/lib/services/crypto/index.d.ts +1 -0
- package/lib/services/crypto/index.js +5 -0
- package/lib/services/file-system/file-system.service.d.ts +24 -0
- package/lib/services/file-system/file-system.service.js +89 -0
- package/lib/services/file-system/index.d.ts +1 -0
- package/lib/services/file-system/index.js +5 -0
- package/lib/{generate/file-system.d.ts → services/generator/generator.d.ts} +34 -41
- package/lib/{generate/file-system.js → services/generator/generator.js} +82 -112
- package/lib/services/generator/index.d.ts +1 -0
- package/lib/services/generator/index.js +6 -0
- package/lib/services/index.d.ts +5 -0
- package/lib/services/index.js +14 -0
- package/lib/services/logger/index.d.ts +1 -0
- package/lib/services/logger/index.js +5 -0
- package/lib/services/logger/logger.service.d.ts +8 -0
- package/lib/services/logger/logger.service.js +39 -0
- package/lib/services/util/index.d.ts +1 -0
- package/lib/services/util/index.js +5 -0
- package/lib/services/util/util.service.d.ts +12 -0
- package/lib/services/util/util.service.js +33 -0
- package/package.json +6 -9
- package/templates/file-system/test-template.txt +1 -0
- package/lib/create-secret/create-secret.d.ts +0 -7
- package/lib/create-secret/create-secret.js +0 -15
- package/lib/create-secret/index.d.ts +0 -1
- package/lib/create-secret/index.js +0 -5
- package/lib/generate/generators/angular/connect-angular.d.ts +0 -1
- package/lib/generate/generators/angular/connect-angular.js +0 -52
- package/lib/generate/generators/angular/index.d.ts +0 -1
- package/lib/generate/generators/angular/index.js +0 -5
- package/lib/generate/generators/app/create-app.d.ts +0 -7
- package/lib/generate/generators/app/create-app.js +0 -134
- package/lib/generate/generators/app/index.d.ts +0 -1
- package/lib/generate/generators/app/index.js +0 -5
- package/lib/generate/generators/controller/create-controller.d.ts +0 -4
- package/lib/generate/generators/controller/create-controller.js +0 -39
- package/lib/generate/generators/controller/index.d.ts +0 -1
- package/lib/generate/generators/controller/index.js +0 -5
- package/lib/generate/generators/entity/create-entity.d.ts +0 -3
- package/lib/generate/generators/entity/create-entity.js +0 -28
- package/lib/generate/generators/entity/index.d.ts +0 -1
- package/lib/generate/generators/entity/index.js +0 -5
- package/lib/generate/generators/hook/create-hook.d.ts +0 -3
- package/lib/generate/generators/hook/create-hook.js +0 -26
- package/lib/generate/generators/hook/index.d.ts +0 -1
- package/lib/generate/generators/hook/index.js +0 -5
- package/lib/generate/generators/index.d.ts +0 -11
- package/lib/generate/generators/index.js +0 -27
- package/lib/generate/generators/react/connect-react.d.ts +0 -1
- package/lib/generate/generators/react/connect-react.js +0 -33
- package/lib/generate/generators/react/index.d.ts +0 -1
- package/lib/generate/generators/react/index.js +0 -5
- package/lib/generate/generators/rest-api/create-rest-api.d.ts +0 -5
- package/lib/generate/generators/rest-api/create-rest-api.js +0 -63
- package/lib/generate/generators/rest-api/index.d.ts +0 -1
- package/lib/generate/generators/rest-api/index.js +0 -5
- package/lib/generate/generators/script/create-script.d.ts +0 -3
- package/lib/generate/generators/script/create-script.js +0 -15
- package/lib/generate/generators/script/index.d.ts +0 -1
- package/lib/generate/generators/script/index.js +0 -5
- package/lib/generate/generators/service/create-service.d.ts +0 -3
- package/lib/generate/generators/service/create-service.js +0 -26
- package/lib/generate/generators/service/index.d.ts +0 -1
- package/lib/generate/generators/service/index.js +0 -5
- package/lib/generate/generators/upgrade/index.d.ts +0 -1
- package/lib/generate/generators/upgrade/index.js +0 -5
- package/lib/generate/generators/upgrade/upgrade.d.ts +0 -8
- package/lib/generate/generators/upgrade/upgrade.js +0 -34
- package/lib/generate/generators/vue/connect-vue.d.ts +0 -1
- package/lib/generate/generators/vue/connect-vue.js +0 -37
- package/lib/generate/generators/vue/index.d.ts +0 -1
- package/lib/generate/generators/vue/index.js +0 -5
- package/lib/generate/index.d.ts +0 -1
- package/lib/generate/index.js +0 -17
- package/lib/rmdir/index.d.ts +0 -1
- package/lib/rmdir/index.js +0 -5
- package/lib/rmdir/rmdir.util.d.ts +0 -8
- package/lib/rmdir/rmdir.util.js +0 -24
- package/lib/run/get-command-line-arguments.util.d.ts +0 -1
- package/lib/run/get-command-line-arguments.util.js +0 -21
- package/lib/run/index.d.ts +0 -1
- package/lib/run/index.js +0 -5
- package/lib/run/run-script.d.ts +0 -7
- package/lib/run/run-script.js +0 -76
- /package/lib/{generate → commands/generators}/utils/get-names.d.ts +0 -0
- /package/lib/{generate → commands/generators}/utils/get-names.js +0 -0
- /package/lib/{generate → commands/generators}/utils/index.d.ts +0 -0
- /package/lib/{generate → commands/generators}/utils/index.js +0 -0
- /package/lib/{generate → commands/generators}/utils/init-git-repo.d.ts +0 -0
- /package/lib/{generate → commands/generators}/utils/init-git-repo.js +0 -0
- /package/lib/{generate → commands/generators}/utils/install-dependencies.d.ts +0 -0
- /package/lib/{generate → commands/generators}/utils/install-dependencies.js +0 -0
- /package/lib/{generate → commands/generators}/utils/logger.d.ts +0 -0
- /package/lib/{generate → commands/generators}/utils/logger.js +0 -0
- /package/lib/{generate → commands/generators}/utils/mkdir-if-does-not-exist.d.ts +0 -0
- /package/lib/{generate → commands/generators}/utils/mkdir-if-does-not-exist.js +0 -0
- /package/lib/{generate → commands/generators}/utils/rm-dir-and-files-if-exist.d.ts +0 -0
- /package/lib/{generate → commands/generators}/utils/rm-dir-and-files-if-exist.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { createScript } from './create-script';
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createScript = void 0;
|
|
4
|
-
var create_script_1 = require("./create-script");
|
|
5
|
-
Object.defineProperty(exports, "createScript", { enumerable: true, get: function () { return create_script_1.createScript; } });
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createService = createService;
|
|
4
|
-
// FoalTS
|
|
5
|
-
const path_1 = require("path");
|
|
6
|
-
const file_system_1 = require("../../file-system");
|
|
7
|
-
const utils_1 = require("../../utils");
|
|
8
|
-
function createService({ name }) {
|
|
9
|
-
const fs = new file_system_1.FileSystem();
|
|
10
|
-
let root = '';
|
|
11
|
-
if (fs.exists('src/app/services')) {
|
|
12
|
-
root = 'src/app/services';
|
|
13
|
-
}
|
|
14
|
-
else if (fs.exists('services')) {
|
|
15
|
-
root = 'services';
|
|
16
|
-
}
|
|
17
|
-
const names = (0, utils_1.getNames)((0, path_1.basename)(name));
|
|
18
|
-
const subdir = (0, path_1.dirname)(name);
|
|
19
|
-
fs
|
|
20
|
-
.cd(root)
|
|
21
|
-
.ensureDir(subdir)
|
|
22
|
-
.cd(subdir)
|
|
23
|
-
.render('service/service.empty.ts', `${names.kebabName}.service.ts`, names)
|
|
24
|
-
.ensureFile('index.ts')
|
|
25
|
-
.addNamedExportIn('index.ts', names.upperFirstCamelName, `./${names.kebabName}.service`);
|
|
26
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { createService } from './create-service';
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createService = void 0;
|
|
4
|
-
var create_service_1 = require("./create-service");
|
|
5
|
-
Object.defineProperty(exports, "createService", { enumerable: true, get: function () { return create_service_1.createService; } });
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { upgrade } from './upgrade';
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.upgrade = upgrade;
|
|
4
|
-
// FoalTS
|
|
5
|
-
const file_system_1 = require("../../file-system");
|
|
6
|
-
const utils_1 = require("../../utils");
|
|
7
|
-
async function getLatestVersion() {
|
|
8
|
-
const response = await fetch('https://registry.npmjs.org/@foal/core/latest');
|
|
9
|
-
const { version } = await response.json();
|
|
10
|
-
return version;
|
|
11
|
-
}
|
|
12
|
-
async function upgrade({ version, autoInstall }, options = { getLatestVersion }) {
|
|
13
|
-
version ??= await options.getLatestVersion();
|
|
14
|
-
utils_1.logger.log();
|
|
15
|
-
utils_1.logger.log(` Upgrading @foal/* dependencies to version ${version}...`);
|
|
16
|
-
utils_1.logger.log();
|
|
17
|
-
const fs = new file_system_1.FileSystem();
|
|
18
|
-
const dependencies = fs.getProjectDependencies();
|
|
19
|
-
for (const dependency of dependencies) {
|
|
20
|
-
if (dependency.name.startsWith('@foal/')) {
|
|
21
|
-
fs.setOrUpdateProjectDependency(dependency.name, version);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
const devDependencies = fs.getProjectDevDependencies();
|
|
25
|
-
for (const devDependency of devDependencies) {
|
|
26
|
-
if (devDependency.name.startsWith('@foal/')) {
|
|
27
|
-
fs.setOrUpdateProjectDevDependency(devDependency.name, version);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
if (autoInstall) {
|
|
31
|
-
await (0, utils_1.installDependencies)();
|
|
32
|
-
utils_1.logger.log();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function connectVue(path: string): void;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.connectVue = connectVue;
|
|
4
|
-
const path_1 = require("path");
|
|
5
|
-
const safe_1 = require("colors/safe");
|
|
6
|
-
const file_system_1 = require("../../file-system");
|
|
7
|
-
function connectVue(path) {
|
|
8
|
-
const fs = new file_system_1.FileSystem();
|
|
9
|
-
if (!fs.exists(path)) {
|
|
10
|
-
if (process.env.P1Z7kEbSUUPMxF8GqPwD8Gx_FOAL_CLI_TEST !== 'true') {
|
|
11
|
-
console.log((0, safe_1.red)(` The directory ${path} does not exist.`));
|
|
12
|
-
}
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
if (!fs.exists((0, path_1.join)(path, 'package.json'))) {
|
|
16
|
-
if (process.env.P1Z7kEbSUUPMxF8GqPwD8Gx_FOAL_CLI_TEST !== 'true') {
|
|
17
|
-
console.log((0, safe_1.red)(` The directory ${path} is not a Vue project (missing package.json).`));
|
|
18
|
-
}
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
fs
|
|
22
|
-
.cd(path)
|
|
23
|
-
.modify('package.json', content => {
|
|
24
|
-
const pkg = JSON.parse(content);
|
|
25
|
-
pkg.vue = pkg.vue || {};
|
|
26
|
-
// Proxy configuration
|
|
27
|
-
pkg.vue.devServer = pkg.vue.devServer || {};
|
|
28
|
-
pkg.vue.devServer.proxy = pkg.vue.devServer.proxy || {};
|
|
29
|
-
pkg.vue.devServer.proxy['^/api'] = { target: 'http://localhost:3001' };
|
|
30
|
-
// Output build directory
|
|
31
|
-
const outputPath = (0, path_1.join)((0, path_1.relative)(path, process.cwd()), 'public')
|
|
32
|
-
// Make projects generated on Windows build on Unix.
|
|
33
|
-
.replace(/\\/g, '/');
|
|
34
|
-
pkg.vue.outputDir = outputPath;
|
|
35
|
-
return JSON.stringify(pkg, null, 2);
|
|
36
|
-
});
|
|
37
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { connectVue } from './connect-vue';
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.connectVue = void 0;
|
|
4
|
-
var connect_vue_1 = require("./connect-vue");
|
|
5
|
-
Object.defineProperty(exports, "connectVue", { enumerable: true, get: function () { return connect_vue_1.connectVue; } });
|
package/lib/generate/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './generators';
|
package/lib/generate/index.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
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("./generators"), exports);
|
package/lib/rmdir/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { rmdir } from './rmdir.util';
|
package/lib/rmdir/index.js
DELETED
package/lib/rmdir/rmdir.util.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.rmdir = rmdir;
|
|
4
|
-
// std
|
|
5
|
-
const promises_1 = require("node:fs/promises");
|
|
6
|
-
/**
|
|
7
|
-
* Remove a directory and all its contents, including any subdirectories and files.
|
|
8
|
-
*
|
|
9
|
-
* @export
|
|
10
|
-
* @param {string} path - The path of the directory
|
|
11
|
-
* @returns {Promise<void>}
|
|
12
|
-
*/
|
|
13
|
-
async function rmdir(path) {
|
|
14
|
-
try {
|
|
15
|
-
await (0, promises_1.readdir)(path);
|
|
16
|
-
}
|
|
17
|
-
catch (error) {
|
|
18
|
-
if (error.code === 'ENOENT') {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
throw error;
|
|
22
|
-
}
|
|
23
|
-
await (0, promises_1.rm)(path, { recursive: true });
|
|
24
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function getCommandLineArguments(argv: string[]): any;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getCommandLineArguments = getCommandLineArguments;
|
|
4
|
-
function getCommandLineArguments(argv) {
|
|
5
|
-
const args = argv.splice(4);
|
|
6
|
-
const result = {};
|
|
7
|
-
args.forEach(keyAndValue => {
|
|
8
|
-
const [key, value] = keyAndValue.split('=');
|
|
9
|
-
if (typeof value === 'undefined') {
|
|
10
|
-
result[key] = true;
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
try {
|
|
14
|
-
result[key] = JSON.parse(value);
|
|
15
|
-
}
|
|
16
|
-
catch (error) {
|
|
17
|
-
result[key] = value;
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
return result;
|
|
21
|
-
}
|
package/lib/run/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { runScript } from './run-script';
|
package/lib/run/index.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.runScript = void 0;
|
|
4
|
-
var run_script_1 = require("./run-script");
|
|
5
|
-
Object.defineProperty(exports, "runScript", { enumerable: true, get: function () { return run_script_1.runScript; } });
|
package/lib/run/run-script.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { Logger, ServiceManager } from '@foal/core';
|
|
2
|
-
export declare function runScript({ name }: {
|
|
3
|
-
name: string;
|
|
4
|
-
}, argv: string[]): Promise<void>;
|
|
5
|
-
export declare function execScript({ name }: {
|
|
6
|
-
name: string;
|
|
7
|
-
}, argv: string[], services: ServiceManager, logger: Logger): Promise<void>;
|
package/lib/run/run-script.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.runScript = runScript;
|
|
4
|
-
exports.execScript = execScript;
|
|
5
|
-
// std
|
|
6
|
-
const fs_1 = require("fs");
|
|
7
|
-
const crypto_1 = require("crypto");
|
|
8
|
-
// 3p
|
|
9
|
-
const ajv_1 = require("ajv");
|
|
10
|
-
const ajv_formats_1 = require("ajv-formats");
|
|
11
|
-
// FoalTS
|
|
12
|
-
const get_command_line_arguments_util_1 = require("./get-command-line-arguments.util");
|
|
13
|
-
// TODO: test this function
|
|
14
|
-
async function runScript({ name }, argv) {
|
|
15
|
-
try {
|
|
16
|
-
const { Logger, ServiceManager } = require(require.resolve('@foal/core', {
|
|
17
|
-
paths: [process.cwd()],
|
|
18
|
-
}));
|
|
19
|
-
const services = new ServiceManager();
|
|
20
|
-
const logger = services.get(Logger);
|
|
21
|
-
logger.initLogContext(() => execScript({ name }, argv, services, logger).catch(error => console.error(error)));
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
if (error.code === 'MODULE_NOT_FOUND') {
|
|
25
|
-
console.error('@foal/core module not found. Are you sure you are in a FoalTS project?');
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
throw error;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
async function execScript({ name }, argv, services, logger) {
|
|
32
|
-
logger.addLogContext({
|
|
33
|
-
scriptId: (0, crypto_1.randomUUID)(),
|
|
34
|
-
scriptName: name
|
|
35
|
-
});
|
|
36
|
-
if (!(0, fs_1.existsSync)(`build/scripts/${name}.js`)) {
|
|
37
|
-
if ((0, fs_1.existsSync)(`src/scripts/${name}.ts`)) {
|
|
38
|
-
logger.error(`Script "${name}" not found in build/scripts/ but found in src/scripts/. Did you forget to build it?`);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
logger.error(`Script "${name}" not found.`);
|
|
42
|
-
}
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
const { main, schema } = require(require.resolve(`./build/scripts/${name}`, {
|
|
46
|
-
paths: [process.cwd()],
|
|
47
|
-
}));
|
|
48
|
-
if (!main) {
|
|
49
|
-
logger.error(`No "main" function found in script "${name}".`);
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
const args = (0, get_command_line_arguments_util_1.getCommandLineArguments)(argv);
|
|
53
|
-
if (schema) {
|
|
54
|
-
const ajv = new ajv_1.default({ useDefaults: true, allErrors: true });
|
|
55
|
-
(0, ajv_formats_1.default)(ajv);
|
|
56
|
-
if (!ajv.validate(schema, args)) {
|
|
57
|
-
ajv.errors.forEach(err => {
|
|
58
|
-
if (err.instancePath) {
|
|
59
|
-
logger.error(`Script argument "${err.instancePath.split('/')[1]}" ${err.message}.`);
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
logger.error(`Script arguments ${err.message}.`);
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
try {
|
|
69
|
-
await main(args, services, logger);
|
|
70
|
-
logger.info(`Script "${name}" completed.`);
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
logger.error(error.message, { error });
|
|
74
|
-
logger.error(`Script "${name}" failed.`);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|