@nlabs/lex 1.46.2 → 1.47.0
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/__mocks__/LexConfig.js +20 -0
- package/__mocks__/boxen.js +7 -0
- package/__mocks__/build.js +16 -0
- package/__mocks__/chalk.js +23 -0
- package/__mocks__/compile.js +8 -0
- package/__mocks__/execa.js +21 -0
- package/__mocks__/ora.js +17 -0
- package/__mocks__/versions.js +12 -0
- package/dist/LexConfig.js +72 -14
- package/dist/commands/ai/ai.js +303 -0
- package/dist/commands/ai/index.js +7 -0
- package/dist/commands/build/build.js +350 -0
- package/dist/commands/clean/clean.js +31 -0
- package/dist/commands/compile/compile.js +195 -0
- package/dist/commands/config/config.js +43 -0
- package/dist/commands/copy/copy.js +38 -0
- package/dist/commands/create/create.js +124 -0
- package/dist/commands/dev/dev.js +70 -0
- package/dist/commands/init/init.js +93 -0
- package/dist/commands/link/link.js +15 -0
- package/dist/commands/lint/lint.js +656 -0
- package/dist/commands/migrate/migrate.js +37 -0
- package/dist/commands/publish/publish.js +104 -0
- package/dist/commands/test/test.js +327 -0
- package/dist/commands/update/update.js +62 -0
- package/dist/commands/upgrade/upgrade.js +47 -0
- package/dist/commands/versions/versions.js +41 -0
- package/dist/create/changelog.js +3 -3
- package/dist/index.js +35 -0
- package/dist/jest.config.lex.d.ts +2 -0
- package/dist/lex.js +25 -22
- package/dist/types.js +1 -0
- package/dist/utils/aiService.js +290 -0
- package/dist/utils/app.js +3 -3
- package/dist/utils/file.js +1 -1
- package/dist/utils/log.js +2 -1
- package/dist/utils/reactShim.js +3 -3
- package/dist/webpack.config.d.ts +2 -0
- package/eslint.config.js +10 -0
- package/index.cjs +20 -0
- package/jest.config.cjs +31 -27
- package/jest.config.lex.js +90 -38
- package/jest.setup.js +5 -0
- package/lex.config.js +50 -0
- package/package.json +69 -52
- package/{.postcssrc.js → postcss.config.js} +21 -9
- package/tsconfig.json +2 -1
- package/webpack.config.js +27 -11
- package/dist/commands/build.js +0 -265
- package/dist/commands/bulid.test.js +0 -317
- package/dist/commands/clean.js +0 -31
- package/dist/commands/clean.test.js +0 -63
- package/dist/commands/compile.js +0 -195
- package/dist/commands/compile.test.js +0 -93
- package/dist/commands/config.js +0 -43
- package/dist/commands/copy.js +0 -38
- package/dist/commands/create.js +0 -120
- package/dist/commands/dev.js +0 -70
- package/dist/commands/init.js +0 -93
- package/dist/commands/link.js +0 -15
- package/dist/commands/lint.js +0 -179
- package/dist/commands/migrate.js +0 -37
- package/dist/commands/publish.js +0 -104
- package/dist/commands/test.js +0 -190
- package/dist/commands/update.js +0 -64
- package/dist/commands/upgrade.js +0 -47
- package/dist/commands/versions.js +0 -41
- package/dist/commands/versions.test.js +0 -49
- package/dist/lint.js +0 -11
- package/jest.setup.ts +0 -3
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { writeFileSync } from "fs";
|
|
2
|
+
import startCase from "lodash/startCase.js";
|
|
3
|
+
import { relative as pathRelative } from "path";
|
|
4
|
+
import { LexConfig } from "../../LexConfig.js";
|
|
5
|
+
import { createSpinner } from "../../utils/app.js";
|
|
6
|
+
import { log } from "../../utils/log.js";
|
|
7
|
+
const config = async (type, cmd, callback = () => ({})) => {
|
|
8
|
+
const { cliName = "Lex", json, quiet } = cmd;
|
|
9
|
+
const validTypes = ["app", "jest", "webpack"];
|
|
10
|
+
if (!validTypes.includes(type)) {
|
|
11
|
+
log(`
|
|
12
|
+
${cliName} Error: Option for ${type} not found. Configurations only available for app, jest, and webpack.`, "error", quiet);
|
|
13
|
+
callback(1);
|
|
14
|
+
return Promise.resolve(1);
|
|
15
|
+
}
|
|
16
|
+
log(`${cliName} generating configuration for ${startCase(type)}...`, "info", quiet);
|
|
17
|
+
await LexConfig.parseConfig(cmd);
|
|
18
|
+
let configOptions;
|
|
19
|
+
switch (type) {
|
|
20
|
+
case "app":
|
|
21
|
+
configOptions = LexConfig.config;
|
|
22
|
+
break;
|
|
23
|
+
case "jest":
|
|
24
|
+
configOptions = import("../../../jest.config.lex.js");
|
|
25
|
+
break;
|
|
26
|
+
case "webpack":
|
|
27
|
+
configOptions = import("../../../webpack.config.js");
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
const jsonOutput = JSON.stringify(configOptions, null, 2);
|
|
31
|
+
if (json) {
|
|
32
|
+
const spinner = createSpinner(quiet);
|
|
33
|
+
spinner.start("Creating JSON output...");
|
|
34
|
+
writeFileSync(json, jsonOutput);
|
|
35
|
+
spinner.succeed(`Successfully saved JSON output to ${pathRelative(process.cwd(), json)}`);
|
|
36
|
+
}
|
|
37
|
+
callback(0);
|
|
38
|
+
return Promise.resolve(0);
|
|
39
|
+
};
|
|
40
|
+
export {
|
|
41
|
+
config
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2NvbmZpZy9jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge3dyaXRlRmlsZVN5bmN9IGZyb20gJ2ZzJztcbmltcG9ydCBzdGFydENhc2UgZnJvbSAnbG9kYXNoL3N0YXJ0Q2FzZS5qcyc7XG5pbXBvcnQge3JlbGF0aXZlIGFzIHBhdGhSZWxhdGl2ZX0gZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7TGV4Q29uZmlnfSBmcm9tICcuLi8uLi9MZXhDb25maWcuanMnO1xuaW1wb3J0IHtjcmVhdGVTcGlubmVyfSBmcm9tICcuLi8uLi91dGlscy9hcHAuanMnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4uLy4uL3V0aWxzL2xvZy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGNsaU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGpzb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgQ29uZmlnQ2FsbGJhY2sgPSAoc3RhdHVzOiBudW1iZXIpID0+IHZvaWQ7XG5cbmV4cG9ydCBjb25zdCBjb25maWcgPSBhc3luYyAodHlwZTogc3RyaW5nLCBjbWQ6IENvbmZpZ09wdGlvbnMsIGNhbGxiYWNrOiBDb25maWdDYWxsYmFjayA9ICgpID0+ICh7fSkpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICBjb25zdCB7Y2xpTmFtZSA9ICdMZXgnLCBqc29uLCBxdWlldH0gPSBjbWQ7XG4gIGNvbnN0IHZhbGlkVHlwZXM6IHN0cmluZ1tdID0gWydhcHAnLCAnamVzdCcsICd3ZWJwYWNrJ107XG5cbiAgaWYoIXZhbGlkVHlwZXMuaW5jbHVkZXModHlwZSkpIHtcbiAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IE9wdGlvbiBmb3IgJHt0eXBlfSBub3QgZm91bmQuIENvbmZpZ3VyYXRpb25zIG9ubHkgYXZhaWxhYmxlIGZvciBhcHAsIGplc3QsIGFuZCB3ZWJwYWNrLmAsICdlcnJvcicsIHF1aWV0KTtcbiAgICBjYWxsYmFjaygxKTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKDEpO1xuICB9XG5cbiAgLy8gRGlzcGxheSBzdGF0dXNcbiAgbG9nKGAke2NsaU5hbWV9IGdlbmVyYXRpbmcgY29uZmlndXJhdGlvbiBmb3IgJHtzdGFydENhc2UodHlwZSl9Li4uYCwgJ2luZm8nLCBxdWlldCk7XG5cbiAgLy8gR2V0IGN1c3RvbSBjb25maWd1cmF0aW9uXG4gIGF3YWl0IExleENvbmZpZy5wYXJzZUNvbmZpZyhjbWQpO1xuXG4gIGxldCBjb25maWdPcHRpb25zO1xuXG4gIHN3aXRjaCh0eXBlKSB7XG4gICAgY2FzZSAnYXBwJzpcbiAgICAgIGNvbmZpZ09wdGlvbnMgPSBMZXhDb25maWcuY29uZmlnO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnamVzdCc6XG4gICAgICBjb25maWdPcHRpb25zID0gaW1wb3J0KCcuLi8uLi8uLi9qZXN0LmNvbmZpZy5sZXguanMnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3dlYnBhY2snOlxuICAgICAgY29uZmlnT3B0aW9ucyA9IGltcG9ydCgnLi4vLi4vLi4vd2VicGFjay5jb25maWcuanMnKTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgLy8gT3V0cHV0IGNvbmZpZyB0byBjb25zb2xlXG4gIGNvbnN0IGpzb25PdXRwdXQ6IHN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGNvbmZpZ09wdGlvbnMsIG51bGwsIDIpO1xuXG4gIGlmKGpzb24pIHtcbiAgICAvLyBTcGlubmVyXG4gICAgY29uc3Qgc3Bpbm5lciA9IGNyZWF0ZVNwaW5uZXIocXVpZXQpO1xuXG4gICAgLy8gU3RhcnQgc3Bpbm5lclxuICAgIHNwaW5uZXIuc3RhcnQoJ0NyZWF0aW5nIEpTT04gb3V0cHV0Li4uJyk7XG5cbiAgICAvLyBTYXZlIGpzb24gbG9jYWxseVxuICAgIHdyaXRlRmlsZVN5bmMoanNvbiwganNvbk91dHB1dCk7XG5cbiAgICAvLyBTdWNjZXNzIHNwaW5uZXJcbiAgICBzcGlubmVyLnN1Y2NlZWQoYFN1Y2Nlc3NmdWxseSBzYXZlZCBKU09OIG91dHB1dCB0byAke3BhdGhSZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBqc29uKX1gKTtcbiAgfVxuXG4gIGNhbGxiYWNrKDApO1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKDApO1xufTsiXSwKICAibWFwcGluZ3MiOiAiQUFJQSxTQUFRLHFCQUFvQjtBQUM1QixPQUFPLGVBQWU7QUFDdEIsU0FBUSxZQUFZLG9CQUFtQjtBQUV2QyxTQUFRLGlCQUFnQjtBQUN4QixTQUFRLHFCQUFvQjtBQUM1QixTQUFRLFdBQVU7QUFVWCxNQUFNLFNBQVMsT0FBTyxNQUFjLEtBQW9CLFdBQTJCLE9BQU8sQ0FBQyxPQUF3QjtBQUN4SCxRQUFNLEVBQUMsVUFBVSxPQUFPLE1BQU0sTUFBSyxJQUFJO0FBQ3ZDLFFBQU0sYUFBdUIsQ0FBQyxPQUFPLFFBQVEsU0FBUztBQUV0RCxNQUFHLENBQUMsV0FBVyxTQUFTLElBQUksR0FBRztBQUM3QixRQUFJO0FBQUEsRUFBSyxPQUFPLHNCQUFzQixJQUFJLHlFQUF5RSxTQUFTLEtBQUs7QUFDakksYUFBUyxDQUFDO0FBQ1YsV0FBTyxRQUFRLFFBQVEsQ0FBQztBQUFBLEVBQzFCO0FBR0EsTUFBSSxHQUFHLE9BQU8saUNBQWlDLFVBQVUsSUFBSSxDQUFDLE9BQU8sUUFBUSxLQUFLO0FBR2xGLFFBQU0sVUFBVSxZQUFZLEdBQUc7QUFFL0IsTUFBSTtBQUVKLFVBQU8sTUFBTTtBQUFBLElBQ1gsS0FBSztBQUNILHNCQUFnQixVQUFVO0FBQzFCO0FBQUEsSUFDRixLQUFLO0FBQ0gsc0JBQWdCLE9BQU8sNkJBQTZCO0FBQ3BEO0FBQUEsSUFDRixLQUFLO0FBQ0gsc0JBQWdCLE9BQU8sNEJBQTRCO0FBQ25EO0FBQUEsRUFDSjtBQUdBLFFBQU0sYUFBcUIsS0FBSyxVQUFVLGVBQWUsTUFBTSxDQUFDO0FBRWhFLE1BQUcsTUFBTTtBQUVQLFVBQU0sVUFBVSxjQUFjLEtBQUs7QUFHbkMsWUFBUSxNQUFNLHlCQUF5QjtBQUd2QyxrQkFBYyxNQUFNLFVBQVU7QUFHOUIsWUFBUSxRQUFRLHFDQUFxQyxhQUFhLFFBQVEsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFO0FBQUEsRUFDMUY7QUFFQSxXQUFTLENBQUM7QUFDVixTQUFPLFFBQVEsUUFBUSxDQUFDO0FBQzFCOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { existsSync, lstatSync } from "fs";
|
|
2
|
+
import { copyFileSync, copyFolderRecursiveSync } from "../../utils/app.js";
|
|
3
|
+
import { log } from "../../utils/log.js";
|
|
4
|
+
const copy = (from, to, cmd, callback = () => ({})) => {
|
|
5
|
+
const { cliName = "Lex", quiet } = cmd;
|
|
6
|
+
log(`${cliName} copying "${to}"...`, "info", quiet);
|
|
7
|
+
if (!existsSync(from)) {
|
|
8
|
+
log(`
|
|
9
|
+
${cliName} Error: Path not found, "${from}"...`, "error", quiet);
|
|
10
|
+
callback(1);
|
|
11
|
+
return Promise.resolve(1);
|
|
12
|
+
}
|
|
13
|
+
if (lstatSync(from).isDirectory()) {
|
|
14
|
+
try {
|
|
15
|
+
copyFolderRecursiveSync(from, to);
|
|
16
|
+
} catch (error) {
|
|
17
|
+
log(`
|
|
18
|
+
${cliName} Error: Cannot copy "${from}". ${error.message}`, "error", quiet);
|
|
19
|
+
callback(1);
|
|
20
|
+
return Promise.resolve(1);
|
|
21
|
+
}
|
|
22
|
+
} else {
|
|
23
|
+
try {
|
|
24
|
+
copyFileSync(from, to);
|
|
25
|
+
} catch (error) {
|
|
26
|
+
log(`
|
|
27
|
+
${cliName} Error: Cannot copy "${from}" ${error.message}`, "error", quiet);
|
|
28
|
+
callback(1);
|
|
29
|
+
return Promise.resolve(1);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
callback(0);
|
|
33
|
+
return Promise.resolve(0);
|
|
34
|
+
};
|
|
35
|
+
export {
|
|
36
|
+
copy
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2NvcHkvY29weS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7ZXhpc3RzU3luYywgbHN0YXRTeW5jfSBmcm9tICdmcyc7XG5cbmltcG9ydCB7Y29weUZpbGVTeW5jLCBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luY30gZnJvbSAnLi4vLi4vdXRpbHMvYXBwLmpzJztcbmltcG9ydCB7bG9nfSBmcm9tICcuLi8uLi91dGlscy9sb2cuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvcHlPcHRpb25zIHtcbiAgcmVhZG9ubHkgY2xpTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBDb3B5Q2FsbGJhY2sgPSAoc3RhdHVzOiBudW1iZXIpID0+IHZvaWQ7XG5cbmV4cG9ydCBjb25zdCBjb3B5ID0gKGZyb206IHN0cmluZywgdG86IHN0cmluZywgY21kOiBDb3B5T3B0aW9ucywgY2FsbGJhY2s6IENvcHlDYWxsYmFjayA9ICgpID0+ICh7fSkpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICBjb25zdCB7Y2xpTmFtZSA9ICdMZXgnLCBxdWlldH0gPSBjbWQ7XG5cbiAgLy8gRGlzcGxheSBtZXNzYWdlXG4gIGxvZyhgJHtjbGlOYW1lfSBjb3B5aW5nIFwiJHt0b31cIi4uLmAsICdpbmZvJywgcXVpZXQpO1xuXG4gIGlmKCFleGlzdHNTeW5jKGZyb20pKSB7XG4gICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBQYXRoIG5vdCBmb3VuZCwgXCIke2Zyb219XCIuLi5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgY2FsbGJhY2soMSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgxKTtcbiAgfVxuXG4gIGlmKGxzdGF0U3luYyhmcm9tKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIENvcHkgZGlyZWN0b3J5XG4gICAgICBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyhmcm9tLCB0byk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBDYW5ub3QgY29weSBcIiR7ZnJvbX1cIi4gJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcbiAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgxKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIENvcHkgZmlsZVxuICAgICAgY29weUZpbGVTeW5jKGZyb20sIHRvKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IENhbm5vdCBjb3B5IFwiJHtmcm9tfVwiICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICBjYWxsYmFjaygxKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoMSk7XG4gICAgfVxuICB9XG5cbiAgY2FsbGJhY2soMCk7XG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoMCk7XG59OyJdLAogICJtYXBwaW5ncyI6ICJBQUlBLFNBQVEsWUFBWSxpQkFBZ0I7QUFFcEMsU0FBUSxjQUFjLCtCQUE4QjtBQUNwRCxTQUFRLFdBQVU7QUFTWCxNQUFNLE9BQU8sQ0FBQyxNQUFjLElBQVksS0FBa0IsV0FBeUIsT0FBTyxDQUFDLE9BQXdCO0FBQ3hILFFBQU0sRUFBQyxVQUFVLE9BQU8sTUFBSyxJQUFJO0FBR2pDLE1BQUksR0FBRyxPQUFPLGFBQWEsRUFBRSxRQUFRLFFBQVEsS0FBSztBQUVsRCxNQUFHLENBQUMsV0FBVyxJQUFJLEdBQUc7QUFDcEIsUUFBSTtBQUFBLEVBQUssT0FBTyw0QkFBNEIsSUFBSSxRQUFRLFNBQVMsS0FBSztBQUN0RSxhQUFTLENBQUM7QUFDVixXQUFPLFFBQVEsUUFBUSxDQUFDO0FBQUEsRUFDMUI7QUFFQSxNQUFHLFVBQVUsSUFBSSxFQUFFLFlBQVksR0FBRztBQUNoQyxRQUFJO0FBRUYsOEJBQXdCLE1BQU0sRUFBRTtBQUFBLElBQ2xDLFNBQVEsT0FBTztBQUNiLFVBQUk7QUFBQSxFQUFLLE9BQU8sd0JBQXdCLElBQUksTUFBTSxNQUFNLE9BQU8sSUFBSSxTQUFTLEtBQUs7QUFDakYsZUFBUyxDQUFDO0FBQ1YsYUFBTyxRQUFRLFFBQVEsQ0FBQztBQUFBLElBQzFCO0FBQUEsRUFDRixPQUFPO0FBQ0wsUUFBSTtBQUVGLG1CQUFhLE1BQU0sRUFBRTtBQUFBLElBQ3ZCLFNBQVEsT0FBTztBQUNiLFVBQUk7QUFBQSxFQUFLLE9BQU8sd0JBQXdCLElBQUksS0FBSyxNQUFNLE9BQU8sSUFBSSxTQUFTLEtBQUs7QUFDaEYsZUFBUyxDQUFDO0FBQ1YsYUFBTyxRQUFRLFFBQVEsQ0FBQztBQUFBLElBQzFCO0FBQUEsRUFDRjtBQUVBLFdBQVMsQ0FBQztBQUNWLFNBQU8sUUFBUSxRQUFRLENBQUM7QUFDMUI7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { existsSync, readFileSync, renameSync, writeFileSync } from "fs";
|
|
2
|
+
import { resolve as pathResolve } from "path";
|
|
3
|
+
import { URL } from "url";
|
|
4
|
+
import { createChangelog } from "../../create/changelog.js";
|
|
5
|
+
import { LexConfig } from "../../LexConfig.js";
|
|
6
|
+
import { copyFolderRecursiveSync, getFilenames, removeFiles, updateTemplateName } from "../../utils/app.js";
|
|
7
|
+
import { log } from "../../utils/log.js";
|
|
8
|
+
const create = async (type, cmd, callback = () => ({})) => {
|
|
9
|
+
const { cliName = "Lex", outputFile, outputName, quiet } = cmd;
|
|
10
|
+
const cwd = process.cwd();
|
|
11
|
+
log(`${cliName} creating ${type}...`, "info", quiet);
|
|
12
|
+
await LexConfig.parseConfig(cmd, false);
|
|
13
|
+
const { outputPath, sourcePath, useTypescript } = LexConfig.config;
|
|
14
|
+
if (useTypescript) {
|
|
15
|
+
LexConfig.checkTypescriptConfig();
|
|
16
|
+
}
|
|
17
|
+
const { config } = LexConfig;
|
|
18
|
+
const dirName = new URL(".", import.meta.url).pathname;
|
|
19
|
+
switch (type) {
|
|
20
|
+
case "changelog": {
|
|
21
|
+
const statusChangelog = await createChangelog({ cliName, config, outputFile, quiet });
|
|
22
|
+
callback(statusChangelog);
|
|
23
|
+
return statusChangelog;
|
|
24
|
+
}
|
|
25
|
+
case "store": {
|
|
26
|
+
try {
|
|
27
|
+
const result = getFilenames({
|
|
28
|
+
cliName,
|
|
29
|
+
name: outputName,
|
|
30
|
+
quiet,
|
|
31
|
+
type,
|
|
32
|
+
useTypescript
|
|
33
|
+
});
|
|
34
|
+
if (!result) {
|
|
35
|
+
return 1;
|
|
36
|
+
}
|
|
37
|
+
const { nameCaps, templateExt, templatePath } = result;
|
|
38
|
+
const storePath = `${cwd}/${nameCaps}Store`;
|
|
39
|
+
if (!existsSync(storePath)) {
|
|
40
|
+
copyFolderRecursiveSync(pathResolve(dirName, templatePath, "./.SampleStore"), cwd);
|
|
41
|
+
renameSync(`${cwd}/.SampleStore`, storePath);
|
|
42
|
+
const storeTestPath = `${storePath}/${nameCaps}Store.test${templateExt}`;
|
|
43
|
+
renameSync(`${storePath}/SampleStore.test${templateExt}.txt`, storeTestPath);
|
|
44
|
+
updateTemplateName(storeTestPath, outputName, nameCaps);
|
|
45
|
+
const storeFilePath = `${storePath}/${nameCaps}Store${templateExt}`;
|
|
46
|
+
renameSync(`${storePath}/SampleStore${templateExt}.txt`, storeFilePath);
|
|
47
|
+
updateTemplateName(storeFilePath, outputName, nameCaps);
|
|
48
|
+
} else {
|
|
49
|
+
log(`
|
|
50
|
+
${cliName} Error: Cannot create new ${type}. Directory, ${storePath} already exists.`, "error", quiet);
|
|
51
|
+
callback(1);
|
|
52
|
+
return 1;
|
|
53
|
+
}
|
|
54
|
+
} catch (error) {
|
|
55
|
+
log(`
|
|
56
|
+
${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
|
|
57
|
+
callback(1);
|
|
58
|
+
return 1;
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
case "tsconfig": {
|
|
63
|
+
await removeFiles("tsconfig.json", true);
|
|
64
|
+
const templatePath = pathResolve(dirName, "../../../tsconfig.template.json");
|
|
65
|
+
let data = readFileSync(templatePath, "utf8");
|
|
66
|
+
data = data.replace(/.\/src/g, sourcePath);
|
|
67
|
+
data = data.replace(/.\/dist/g, outputPath);
|
|
68
|
+
const destPath = pathResolve(cwd, "./tsconfig.json");
|
|
69
|
+
writeFileSync(destPath, data, "utf8");
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
case "view": {
|
|
73
|
+
const result = getFilenames({
|
|
74
|
+
cliName,
|
|
75
|
+
name: outputName,
|
|
76
|
+
quiet,
|
|
77
|
+
type,
|
|
78
|
+
useTypescript
|
|
79
|
+
});
|
|
80
|
+
if (!result) {
|
|
81
|
+
return 1;
|
|
82
|
+
}
|
|
83
|
+
const { nameCaps, templatePath, templateReact } = result;
|
|
84
|
+
const viewPath = `${cwd}/${nameCaps}View`;
|
|
85
|
+
try {
|
|
86
|
+
if (!existsSync(viewPath)) {
|
|
87
|
+
copyFolderRecursiveSync(pathResolve(dirName, templatePath, "./.SampleView"), cwd);
|
|
88
|
+
renameSync(`${cwd}/.SampleView`, viewPath);
|
|
89
|
+
const viewStylePath = `${viewPath}/${outputName}View.css`;
|
|
90
|
+
renameSync(`${viewPath}/sampleView.css`, viewStylePath);
|
|
91
|
+
updateTemplateName(viewStylePath, outputName, nameCaps);
|
|
92
|
+
const viewTestPath = `${viewPath}/${nameCaps}View.test${templateReact}`;
|
|
93
|
+
renameSync(`${viewPath}/SampleView.test${templateReact}.txt`, viewTestPath);
|
|
94
|
+
updateTemplateName(viewTestPath, outputName, nameCaps);
|
|
95
|
+
const viewFilePath = `${viewPath}/${nameCaps}View${templateReact}`;
|
|
96
|
+
renameSync(`${viewPath}/SampleView${templateReact}.txt`, viewFilePath);
|
|
97
|
+
updateTemplateName(viewFilePath, outputName, nameCaps);
|
|
98
|
+
} else {
|
|
99
|
+
log(`
|
|
100
|
+
${cliName} Error: Cannot create new ${type}. Directory, ${viewPath} already exists.`, "error", quiet);
|
|
101
|
+
callback(1);
|
|
102
|
+
return 1;
|
|
103
|
+
}
|
|
104
|
+
} catch (error) {
|
|
105
|
+
log(`
|
|
106
|
+
${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
|
|
107
|
+
callback(1);
|
|
108
|
+
return 1;
|
|
109
|
+
}
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
case "vscode": {
|
|
113
|
+
await removeFiles(".vscode", true);
|
|
114
|
+
copyFolderRecursiveSync(pathResolve(dirName, "../../../.vscode"), cwd);
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
callback(0);
|
|
119
|
+
return 0;
|
|
120
|
+
};
|
|
121
|
+
export {
|
|
122
|
+
create
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2NyZWF0ZS9jcmVhdGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2V4aXN0c1N5bmMsIHJlYWRGaWxlU3luYywgcmVuYW1lU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtyZXNvbHZlIGFzIHBhdGhSZXNvbHZlfSBmcm9tICdwYXRoJztcbmltcG9ydCB7VVJMfSBmcm9tICd1cmwnO1xuXG5pbXBvcnQge2NyZWF0ZUNoYW5nZWxvZ30gZnJvbSAnLi4vLi4vY3JlYXRlL2NoYW5nZWxvZy5qcyc7XG5pbXBvcnQge0xleENvbmZpZ30gZnJvbSAnLi4vLi4vTGV4Q29uZmlnLmpzJztcbmltcG9ydCB7Y29weUZvbGRlclJlY3Vyc2l2ZVN5bmMsIGdldEZpbGVuYW1lcywgcmVtb3ZlRmlsZXMsIHVwZGF0ZVRlbXBsYXRlTmFtZX0gZnJvbSAnLi4vLi4vdXRpbHMvYXBwLmpzJztcbmltcG9ydCB7bG9nfSBmcm9tICcuLi8uLi91dGlscy9sb2cuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU9wdGlvbnMge1xuICByZWFkb25seSBjbGlOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBvdXRwdXRGaWxlPzogc3RyaW5nO1xuICByZWFkb25seSBvdXRwdXROYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBxdWlldD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUNhbGxiYWNrID0gKHN0YXR1czogbnVtYmVyKSA9PiB2b2lkO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlID0gYXN5bmMgKHR5cGU6IHN0cmluZywgY21kOiBDcmVhdGVPcHRpb25zLCBjYWxsYmFjazogQ3JlYXRlQ2FsbGJhY2sgPSAoKSA9PiAoe30pKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgY29uc3Qge2NsaU5hbWUgPSAnTGV4Jywgb3V0cHV0RmlsZSwgb3V0cHV0TmFtZSwgcXVpZXR9ID0gY21kO1xuICBjb25zdCBjd2Q6IHN0cmluZyA9IHByb2Nlc3MuY3dkKCk7XG4gIGxvZyhgJHtjbGlOYW1lfSBjcmVhdGluZyAke3R5cGV9Li4uYCwgJ2luZm8nLCBxdWlldCk7XG5cbiAgLy8gR2V0IGN1c3RvbSBjb25maWd1cmF0aW9uXG4gIGF3YWl0IExleENvbmZpZy5wYXJzZUNvbmZpZyhjbWQsIGZhbHNlKTtcbiAgY29uc3Qge291dHB1dFBhdGgsIHNvdXJjZVBhdGgsIHVzZVR5cGVzY3JpcHR9ID0gTGV4Q29uZmlnLmNvbmZpZztcblxuICBpZih1c2VUeXBlc2NyaXB0KSB7XG4gICAgLy8gTWFrZSBzdXJlIHRzY29uZmlnLmpzb24gZXhpc3RzXG4gICAgTGV4Q29uZmlnLmNoZWNrVHlwZXNjcmlwdENvbmZpZygpO1xuICB9XG5cbiAgY29uc3Qge2NvbmZpZ30gPSBMZXhDb25maWc7XG4gIGNvbnN0IGRpck5hbWUgPSBuZXcgVVJMKCcuJywgaW1wb3J0Lm1ldGEudXJsKS5wYXRobmFtZTtcblxuICBzd2l0Y2godHlwZSkge1xuICAgIGNhc2UgJ2NoYW5nZWxvZyc6IHtcbiAgICAgIGNvbnN0IHN0YXR1c0NoYW5nZWxvZzogbnVtYmVyID0gYXdhaXQgY3JlYXRlQ2hhbmdlbG9nKHtjbGlOYW1lLCBjb25maWcsIG91dHB1dEZpbGUsIHF1aWV0fSk7XG4gICAgICBjYWxsYmFjayhzdGF0dXNDaGFuZ2Vsb2cpO1xuICAgICAgcmV0dXJuIHN0YXR1c0NoYW5nZWxvZztcbiAgICB9XG4gICAgY2FzZSAnc3RvcmUnOiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBnZXRGaWxlbmFtZXMoe1xuICAgICAgICAgIGNsaU5hbWUsXG4gICAgICAgICAgbmFtZTogb3V0cHV0TmFtZSxcbiAgICAgICAgICBxdWlldCxcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHVzZVR5cGVzY3JpcHRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYoIXJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge25hbWVDYXBzLCB0ZW1wbGF0ZUV4dCwgdGVtcGxhdGVQYXRofSA9IHJlc3VsdDtcbiAgICAgICAgY29uc3Qgc3RvcmVQYXRoOiBzdHJpbmcgPSBgJHtjd2R9LyR7bmFtZUNhcHN9U3RvcmVgO1xuXG4gICAgICAgIGlmKCFleGlzdHNTeW5jKHN0b3JlUGF0aCkpIHtcbiAgICAgICAgLy8gQ29weSBzdG9yZSBmaWxlc1xuICAgICAgICAgIGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jKHBhdGhSZXNvbHZlKGRpck5hbWUsIHRlbXBsYXRlUGF0aCwgJy4vLlNhbXBsZVN0b3JlJyksIGN3ZCk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgZGlyZWN0b3J5XG4gICAgICAgICAgcmVuYW1lU3luYyhgJHtjd2R9Ly5TYW1wbGVTdG9yZWAsIHN0b3JlUGF0aCk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgdGVzdFxuICAgICAgICAgIGNvbnN0IHN0b3JlVGVzdFBhdGg6IHN0cmluZyA9IGAke3N0b3JlUGF0aH0vJHtuYW1lQ2Fwc31TdG9yZS50ZXN0JHt0ZW1wbGF0ZUV4dH1gO1xuICAgICAgICAgIHJlbmFtZVN5bmMoYCR7c3RvcmVQYXRofS9TYW1wbGVTdG9yZS50ZXN0JHt0ZW1wbGF0ZUV4dH0udHh0YCwgc3RvcmVUZXN0UGF0aCk7XG5cbiAgICAgICAgICAvLyBTZWFyY2ggYW5kIHJlcGxhY2Ugc3RvcmUgbmFtZVxuICAgICAgICAgIHVwZGF0ZVRlbXBsYXRlTmFtZShzdG9yZVRlc3RQYXRoLCBvdXRwdXROYW1lLCBuYW1lQ2Fwcyk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgc291cmNlIGZpbGVcbiAgICAgICAgICBjb25zdCBzdG9yZUZpbGVQYXRoOiBzdHJpbmcgPSBgJHtzdG9yZVBhdGh9LyR7bmFtZUNhcHN9U3RvcmUke3RlbXBsYXRlRXh0fWA7XG4gICAgICAgICAgcmVuYW1lU3luYyhgJHtzdG9yZVBhdGh9L1NhbXBsZVN0b3JlJHt0ZW1wbGF0ZUV4dH0udHh0YCwgc3RvcmVGaWxlUGF0aCk7XG5cbiAgICAgICAgICAvLyBTZWFyY2ggYW5kIHJlcGxhY2Ugc3RvcmUgbmFtZVxuICAgICAgICAgIHVwZGF0ZVRlbXBsYXRlTmFtZShzdG9yZUZpbGVQYXRoLCBvdXRwdXROYW1lLCBuYW1lQ2Fwcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBDYW5ub3QgY3JlYXRlIG5ldyAke3R5cGV9LiBEaXJlY3RvcnksICR7c3RvcmVQYXRofSBhbHJlYWR5IGV4aXN0cy5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICAgICAgY2FsbGJhY2soMSk7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBDYW5ub3QgY3JlYXRlIG5ldyAke3R5cGV9LiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgICBjYWxsYmFjaygxKTtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAndHNjb25maWcnOiB7XG4gICAgLy8gUmVtb3ZlIGV4aXN0aW5nIGZpbGVcbiAgICAgIGF3YWl0IHJlbW92ZUZpbGVzKCd0c2NvbmZpZy5qc29uJywgdHJ1ZSk7XG5cbiAgICAgIC8vIEdldCB0c2NvbmZpZyB0ZW1wbGF0ZVxuICAgICAgY29uc3QgdGVtcGxhdGVQYXRoOiBzdHJpbmcgPSBwYXRoUmVzb2x2ZShkaXJOYW1lLCAnLi4vLi4vLi4vdHNjb25maWcudGVtcGxhdGUuanNvbicpO1xuICAgICAgbGV0IGRhdGE6IHN0cmluZyA9IHJlYWRGaWxlU3luYyh0ZW1wbGF0ZVBhdGgsICd1dGY4Jyk7XG5cbiAgICAgIC8vIFVwZGF0ZSBMZXggdHNjb25maWcgdGVtcGxhdGUgd2l0aCBzb3VyY2UgYW5kIG91dHB1dCBkaXJlY3Rvcmllc1xuICAgICAgZGF0YSA9IGRhdGEucmVwbGFjZSgvLlxcL3NyYy9nLCBzb3VyY2VQYXRoKTtcbiAgICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoLy5cXC9kaXN0L2csIG91dHB1dFBhdGgpO1xuXG4gICAgICAvLyBTYXZlIG5ldyB0c2NvbmZpZyB0byBhcHBcbiAgICAgIGNvbnN0IGRlc3RQYXRoOiBzdHJpbmcgPSBwYXRoUmVzb2x2ZShjd2QsICcuL3RzY29uZmlnLmpzb24nKTtcbiAgICAgIHdyaXRlRmlsZVN5bmMoZGVzdFBhdGgsIGRhdGEsICd1dGY4Jyk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAndmlldyc6IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGdldEZpbGVuYW1lcyh7XG4gICAgICAgIGNsaU5hbWUsXG4gICAgICAgIG5hbWU6IG91dHB1dE5hbWUsXG4gICAgICAgIHF1aWV0LFxuICAgICAgICB0eXBlLFxuICAgICAgICB1c2VUeXBlc2NyaXB0XG4gICAgICB9KTtcblxuICAgICAgaWYoIXJlc3VsdCkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qge25hbWVDYXBzLCB0ZW1wbGF0ZVBhdGgsIHRlbXBsYXRlUmVhY3R9ID0gcmVzdWx0O1xuICAgICAgY29uc3Qgdmlld1BhdGg6IHN0cmluZyA9IGAke2N3ZH0vJHtuYW1lQ2Fwc31WaWV3YDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgaWYoIWV4aXN0c1N5bmModmlld1BhdGgpKSB7XG4gICAgICAgIC8vIENvcHkgdmlldyBmaWxlc1xuICAgICAgICAgIGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jKHBhdGhSZXNvbHZlKGRpck5hbWUsIHRlbXBsYXRlUGF0aCwgJy4vLlNhbXBsZVZpZXcnKSwgY3dkKTtcblxuICAgICAgICAgIC8vIFJlbmFtZSBkaXJlY3RvcnlcbiAgICAgICAgICByZW5hbWVTeW5jKGAke2N3ZH0vLlNhbXBsZVZpZXdgLCB2aWV3UGF0aCk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgQ1NTXG4gICAgICAgICAgY29uc3Qgdmlld1N0eWxlUGF0aDogc3RyaW5nID0gYCR7dmlld1BhdGh9LyR7b3V0cHV0TmFtZX1WaWV3LmNzc2A7XG4gICAgICAgICAgcmVuYW1lU3luYyhgJHt2aWV3UGF0aH0vc2FtcGxlVmlldy5jc3NgLCB2aWV3U3R5bGVQYXRoKTtcblxuICAgICAgICAgIC8vIFNlYXJjaCBhbmQgcmVwbGFjZSB2aWV3IG5hbWVcbiAgICAgICAgICB1cGRhdGVUZW1wbGF0ZU5hbWUodmlld1N0eWxlUGF0aCwgb3V0cHV0TmFtZSwgbmFtZUNhcHMpO1xuXG4gICAgICAgICAgLy8gUmVuYW1lIHRlc3RcbiAgICAgICAgICBjb25zdCB2aWV3VGVzdFBhdGg6IHN0cmluZyA9IGAke3ZpZXdQYXRofS8ke25hbWVDYXBzfVZpZXcudGVzdCR7dGVtcGxhdGVSZWFjdH1gO1xuICAgICAgICAgIHJlbmFtZVN5bmMoYCR7dmlld1BhdGh9L1NhbXBsZVZpZXcudGVzdCR7dGVtcGxhdGVSZWFjdH0udHh0YCwgdmlld1Rlc3RQYXRoKTtcblxuICAgICAgICAgIC8vIFNlYXJjaCBhbmQgcmVwbGFjZSB2aWV3IG5hbWVcbiAgICAgICAgICB1cGRhdGVUZW1wbGF0ZU5hbWUodmlld1Rlc3RQYXRoLCBvdXRwdXROYW1lLCBuYW1lQ2Fwcyk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgc291cmNlIGZpbGVcbiAgICAgICAgICBjb25zdCB2aWV3RmlsZVBhdGg6IHN0cmluZyA9IGAke3ZpZXdQYXRofS8ke25hbWVDYXBzfVZpZXcke3RlbXBsYXRlUmVhY3R9YDtcbiAgICAgICAgICByZW5hbWVTeW5jKGAke3ZpZXdQYXRofS9TYW1wbGVWaWV3JHt0ZW1wbGF0ZVJlYWN0fS50eHRgLCB2aWV3RmlsZVBhdGgpO1xuXG4gICAgICAgICAgLy8gU2VhcmNoIGFuZCByZXBsYWNlIHZpZXcgbmFtZVxuICAgICAgICAgIHVwZGF0ZVRlbXBsYXRlTmFtZSh2aWV3RmlsZVBhdGgsIG91dHB1dE5hbWUsIG5hbWVDYXBzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IENhbm5vdCBjcmVhdGUgbmV3ICR7dHlwZX0uIERpcmVjdG9yeSwgJHt2aWV3UGF0aH0gYWxyZWFkeSBleGlzdHMuYCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogQ2Fubm90IGNyZWF0ZSBuZXcgJHt0eXBlfS4gJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcbiAgICAgICAgY2FsbGJhY2soMSk7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgJ3ZzY29kZSc6IHtcbiAgICAvLyBSZW1vdmUgZXhpc3RpbmcgZGlyZWN0b3J5XG4gICAgICBhd2FpdCByZW1vdmVGaWxlcygnLnZzY29kZScsIHRydWUpO1xuXG4gICAgICAvLyBDb3B5IHZzY29kZSBjb25maWd1cmF0aW9uXG4gICAgICBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyhwYXRoUmVzb2x2ZShkaXJOYW1lLCAnLi4vLi4vLi4vLnZzY29kZScpLCBjd2QpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgY2FsbGJhY2soMCk7XG4gIHJldHVybiAwO1xufTsiXSwKICAibWFwcGluZ3MiOiAiQUFJQSxTQUFRLFlBQVksY0FBYyxZQUFZLHFCQUFvQjtBQUNsRSxTQUFRLFdBQVcsbUJB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
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { execa } from "execa";
|
|
2
|
+
import { resolve as pathResolve } from "path";
|
|
3
|
+
import { URL } from "url";
|
|
4
|
+
import { LexConfig } from "../../LexConfig.js";
|
|
5
|
+
import { createSpinner, removeFiles } from "../../utils/app.js";
|
|
6
|
+
import { relativeNodePath } from "../../utils/file.js";
|
|
7
|
+
import { log } from "../../utils/log.js";
|
|
8
|
+
const dev = async (cmd, callback = () => ({})) => {
|
|
9
|
+
const { bundleAnalyzer, cliName = "Lex", config, open = false, quiet, remove, variables } = cmd;
|
|
10
|
+
const spinner = createSpinner(quiet);
|
|
11
|
+
log(`${cliName} start development server...`, "info", quiet);
|
|
12
|
+
await LexConfig.parseConfig(cmd);
|
|
13
|
+
const { outputFullPath, useTypescript } = LexConfig.config;
|
|
14
|
+
let variablesObj = { NODE_ENV: "development" };
|
|
15
|
+
if (variables) {
|
|
16
|
+
try {
|
|
17
|
+
variablesObj = JSON.parse(variables);
|
|
18
|
+
} catch (_error) {
|
|
19
|
+
log(`
|
|
20
|
+
${cliName} Error: Environment variables option is not a valid JSON object.`, "error", quiet);
|
|
21
|
+
callback(1);
|
|
22
|
+
return 1;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
process.env = { ...process.env, ...variablesObj };
|
|
26
|
+
if (useTypescript) {
|
|
27
|
+
LexConfig.checkTypescriptConfig();
|
|
28
|
+
}
|
|
29
|
+
if (remove) {
|
|
30
|
+
spinner.start("Cleaning output directory...");
|
|
31
|
+
await removeFiles(outputFullPath);
|
|
32
|
+
spinner.succeed("Successfully cleaned output directory!");
|
|
33
|
+
}
|
|
34
|
+
const dirName = new URL(".", import.meta.url).pathname;
|
|
35
|
+
const webpackConfig = config || pathResolve(dirName, "../../../webpack.config.js");
|
|
36
|
+
const webpackOptions = [
|
|
37
|
+
"--color",
|
|
38
|
+
"--watch",
|
|
39
|
+
"--config",
|
|
40
|
+
webpackConfig
|
|
41
|
+
];
|
|
42
|
+
if (bundleAnalyzer) {
|
|
43
|
+
webpackOptions.push("--bundleAnalyzer");
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
const dirPath = pathResolve(dirName, "../../..");
|
|
47
|
+
const webpackPath = relativeNodePath("webpack-cli/bin/cli.js", dirPath);
|
|
48
|
+
await execa(webpackPath, webpackOptions, {
|
|
49
|
+
encoding: "utf8",
|
|
50
|
+
env: {
|
|
51
|
+
LEX_QUIET: quiet,
|
|
52
|
+
WEBPACK_DEV_OPEN: open
|
|
53
|
+
},
|
|
54
|
+
stdio: "inherit"
|
|
55
|
+
});
|
|
56
|
+
spinner.succeed("Development server started.");
|
|
57
|
+
callback(0);
|
|
58
|
+
return 0;
|
|
59
|
+
} catch (error) {
|
|
60
|
+
log(`
|
|
61
|
+
${cliName} Error: ${error.message}`, "error", quiet);
|
|
62
|
+
spinner.fail("There was an error while running Webpack.");
|
|
63
|
+
callback(1);
|
|
64
|
+
return 1;
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
export {
|
|
68
|
+
dev
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Rldi9kZXYudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2V4ZWNhfSBmcm9tICdleGVjYSc7XG5pbXBvcnQge3Jlc29sdmUgYXMgcGF0aFJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtVUkx9IGZyb20gJ3VybCc7XG5cbmltcG9ydCB7TGV4Q29uZmlnfSBmcm9tICcuLi8uLi9MZXhDb25maWcuanMnO1xuaW1wb3J0IHtjcmVhdGVTcGlubmVyLCByZW1vdmVGaWxlc30gZnJvbSAnLi4vLi4vdXRpbHMvYXBwLmpzJztcbmltcG9ydCB7cmVsYXRpdmVOb2RlUGF0aH0gZnJvbSAnLi4vLi4vdXRpbHMvZmlsZS5qcyc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi4vLi4vdXRpbHMvbG9nLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBEZXZPcHRpb25zIHtcbiAgcmVhZG9ubHkgYnVuZGxlQW5hbHl6ZXI/OiBib29sZWFuO1xuICByZWFkb25seSBjbGlOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBjb25maWc/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9wZW4/OiBib29sZWFuO1xuICByZWFkb25seSBxdWlldD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHJlbW92ZT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHZhcmlhYmxlcz86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgRGV2Q2FsbGJhY2sgPSAoc3RhdHVzOiBudW1iZXIpID0+IHZvaWQ7XG5cbmV4cG9ydCBjb25zdCBkZXYgPSBhc3luYyAoY21kOiBEZXZPcHRpb25zLCBjYWxsYmFjazogRGV2Q2FsbGJhY2sgPSAoKSA9PiAoe30pKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgY29uc3Qge2J1bmRsZUFuYWx5emVyLCBjbGlOYW1lID0gJ0xleCcsIGNvbmZpZywgb3BlbiA9IGZhbHNlLCBxdWlldCwgcmVtb3ZlLCB2YXJpYWJsZXN9ID0gY21kO1xuXG4gIC8vIFNwaW5uZXJcbiAgY29uc3Qgc3Bpbm5lciA9IGNyZWF0ZVNwaW5uZXIocXVpZXQpO1xuXG4gIC8vIERpc3BsYXkgc3RhdHVzXG4gIGxvZyhgJHtjbGlOYW1lfSBzdGFydCBkZXZlbG9wbWVudCBzZXJ2ZXIuLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICAvLyBHZXQgY3VzdG9tIGNvbmZpZ3VyYXRpb25cbiAgYXdhaXQgTGV4Q29uZmlnLnBhcnNlQ29uZmlnKGNtZCk7XG5cbiAgY29uc3Qge291dHB1dEZ1bGxQYXRoLCB1c2VUeXBlc2NyaXB0fSA9IExleENvbmZpZy5jb25maWc7XG5cbiAgLy8gU2V0IG5vZGUgZW52aXJvbm1lbnQgdmFyaWFibGVzXG4gIGxldCB2YXJpYWJsZXNPYmo6IG9iamVjdCA9IHtOT0RFX0VOVjogJ2RldmVsb3BtZW50J307XG5cbiAgaWYodmFyaWFibGVzKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhcmlhYmxlc09iaiA9IEpTT04ucGFyc2UodmFyaWFibGVzKTtcbiAgICB9IGNhdGNoKF9lcnJvcikge1xuICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgb3B0aW9uIGlzIG5vdCBhIHZhbGlkIEpTT04gb2JqZWN0LmAsICdlcnJvcicsIHF1aWV0KTtcbiAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICB9XG5cbiAgcHJvY2Vzcy5lbnYgPSB7Li4ucHJvY2Vzcy5lbnYsIC4uLnZhcmlhYmxlc09ian07XG5cbiAgaWYodXNlVHlwZXNjcmlwdCkge1xuICAgIC8vIE1ha2Ugc3VyZSB0c2NvbmZpZy5qc29uIGV4aXN0c1xuICAgIExleENvbmZpZy5jaGVja1R5cGVzY3JpcHRDb25maWcoKTtcbiAgfVxuXG4gIC8vIENsZWFuIG91dHB1dCBkaXJlY3RvcnkgYmVmb3JlIHdlIHN0YXJ0IGFkZGluZyBpbiBuZXcgZmlsZXNcbiAgaWYocmVtb3ZlKSB7XG4gICAgLy8gU3RhcnQgY2xlYW5pbmcgc3Bpbm5lclxuICAgIHNwaW5uZXIuc3RhcnQoJ0NsZWFuaW5nIG91dHB1dCBkaXJlY3RvcnkuLi4nKTtcblxuICAgIC8vIENsZWFuXG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMob3V0cHV0RnVsbFBhdGgpO1xuXG4gICAgLy8gU3RvcCBzcGlubmVyXG4gICAgc3Bpbm5lci5zdWNjZWVkKCdTdWNjZXNzZnVsbHkgY2xlYW5lZCBvdXRwdXQgZGlyZWN0b3J5IScpO1xuICB9XG5cbiAgLy8gR2V0IGN1c3RvbSB3ZWJwYWNrIGNvbmZpZ3VyYXRpb24gZmlsZVxuICBjb25zdCBkaXJOYW1lID0gbmV3IFVSTCgnLicsIGltcG9ydC5tZXRhLnVybCkucGF0aG5hbWU7XG4gIGNvbnN0IHdlYnBhY2tDb25maWc6IHN0cmluZyA9IGNvbmZpZyB8fCBwYXRoUmVzb2x2ZShkaXJOYW1lLCAnLi4vLi4vLi4vd2VicGFjay5jb25maWcuanMnKTtcblxuICAvLyBDb21waWxlIHVzaW5nIHdlYnBhY2tcbiAgY29uc3Qgd2VicGFja09wdGlvbnM6IHN0cmluZ1tdID0gW1xuICAgICctLWNvbG9yJyxcbiAgICAnLS13YXRjaCcsXG4gICAgJy0tY29uZmlnJywgd2VicGFja0NvbmZpZ1xuICBdO1xuXG4gIGlmKGJ1bmRsZUFuYWx5emVyKSB7XG4gICAgd2VicGFja09wdGlvbnMucHVzaCgnLS1idW5kbGVBbmFseXplcicpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBkaXJQYXRoID0gcGF0aFJlc29sdmUoZGlyTmFtZSwgJy4uLy4uLy4uJyk7XG4gICAgY29uc3Qgd2VicGFja1BhdGggPSByZWxhdGl2ZU5vZGVQYXRoKCd3ZWJwYWNrLWNsaS9iaW4vY2xpLmpzJywgZGlyUGF0aCk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGF3YWl0IGV4ZWNhKHdlYnBhY2tQYXRoLCB3ZWJwYWNrT3B0aW9ucywge1xuICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgIGVudjoge1xuICAgICAgICBMRVhfUVVJRVQ6IHF1aWV0LFxuICAgICAgICBXRUJQQUNLX0RFVl9PUEVOOiBvcGVuXG4gICAgICB9LFxuICAgICAgc3RkaW86ICdpbmhlcml0J1xuICAgIH0pO1xuXG4gICAgLy8gU3RvcCBzcGlubmVyXG4gICAgc3Bpbm5lci5zdWNjZWVkKCdEZXZlbG9wbWVudCBzZXJ2ZXIgc3RhcnRlZC4nKTtcblxuICAgIGNhbGxiYWNrKDApO1xuICAgIHJldHVybiAwO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgLy8gRGlzcGxheSBlcnJvciBtZXNzYWdlXG4gICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuXG4gICAgLy8gU3RvcCBzcGlubmVyXG4gICAgc3Bpbm5lci5mYWlsKCdUaGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgcnVubmluZyBXZWJwYWNrLicpO1xuXG4gICAgLy8gS2lsbCBwcm9jZXNzXG4gICAgY2FsbGJhY2soMSk7XG4gICAgcmV0dXJuIDE7XG4gIH1cbn07Il0sCiAgIm1hcHBpbmdzIjogIkFBSUEsU0FBUSxhQUFZO0FBQ3BCLFNBQVEsV0FBVyxtQkFBa0I7QUFDckMsU0FBUSxXQUFVO0FBRWxCLFNBQVEsaUJBQWdCO0FBQ3hCLFNBQVEsZUFBZSxtQkFBa0I7QUFDekMsU0FBUSx3QkFBdUI7QUFDL0IsU0FBUSxXQUFVO0FBY1gsTUFBTSxNQUFNLE9BQU8sS0FBaUIsV0FBd0IsT0FBTyxDQUFDLE9BQXdCO0FBQ2pHLFFBQU0sRUFBQyxnQkFBZ0IsVUFBVSxPQUFPLFFBQVEsT0FBTyxPQUFPLE9BQU8sUUFBUSxVQUFTLElBQUk7QUFHMUYsUUFBTSxVQUFVLGNBQWMsS0FBSztBQUduQyxNQUFJLEdBQUcsT0FBTyxnQ0FBZ0MsUUFBUSxLQUFLO0FBRzNELFFBQU0sVUFBVSxZQUFZLEdBQUc7QUFFL0IsUUFBTSxFQUFDLGdCQUFnQixjQUFhLElBQUksVUFBVTtBQUdsRCxNQUFJLGVBQXVCLEVBQUMsVUFBVSxjQUFhO0FBRW5ELE1BQUcsV0FBVztBQUNaLFFBQUk7QUFDRixxQkFBZSxLQUFLLE1BQU0sU0FBUztBQUFBLElBQ3JDLFNBQVEsUUFBUTtBQUNkLFVBQUk7QUFBQSxFQUFLLE9BQU8sb0VBQW9FLFNBQVMsS0FBSztBQUNsRyxlQUFTLENBQUM7QUFDVixhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFQSxVQUFRLE1BQU0sRUFBQyxHQUFHLFFBQVEsS0FBSyxHQUFHLGFBQVk7QUFFOUMsTUFBRyxlQUFlO0FBRWhCLGNBQVUsc0JBQXNCO0FBQUEsRUFDbEM7QUFHQSxNQUFHLFFBQVE7QUFFVCxZQUFRLE1BQU0sOEJBQThCO0FBRzVDLFVBQU0sWUFBWSxjQUFjO0FBR2hDLFlBQVEsUUFBUSx3Q0FBd0M7QUFBQSxFQUMxRDtBQUdBLFFBQU0sVUFBVSxJQUFJLElBQUksS0FBSyxZQUFZLEdBQUcsRUFBRTtBQUM5QyxRQUFNLGdCQUF3QixVQUFVLFlBQVksU0FBUyw0QkFBNEI7QUFHekYsUUFBTSxpQkFBMkI7QUFBQSxJQUMvQjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFBWTtBQUFBLEVBQ2Q7QUFFQSxNQUFHLGdCQUFnQjtBQUNqQixtQkFBZSxLQUFLLGtCQUFrQjtBQUFBLEVBQ3hDO0FBRUEsTUFBSTtBQUNGLFVBQU0sVUFBVSxZQUFZLFNBQVMsVUFBVTtBQUMvQyxVQUFNLGNBQWMsaUJBQWlCLDBCQUEwQixPQUFPO0FBRXRFLFVBQU0sTUFBTSxhQUFhLGdCQUFnQjtBQUFBLE1BQ3ZDLFVBQVU7QUFBQSxNQUNWLEtBQUs7QUFBQSxRQUNILFdBQVc7QUFBQSxRQUNYLGtCQUFrQjtBQUFBLE1BQ3BCO0FBQUEsTUFDQSxPQUFPO0FBQUEsSUFDVCxDQUFDO0FBR0QsWUFBUSxRQUFRLDZCQUE2QjtBQUU3QyxhQUFTLENBQUM7QUFDVixXQUFPO0FBQUEsRUFDVCxTQUFRLE9BQU87QUFFYixRQUFJO0FBQUEsRUFBSyxPQUFPLFdBQVcsTUFBTSxPQUFPLElBQUksU0FBUyxLQUFLO0FBRzFELFlBQVEsS0FBSywyQ0FBMkM7QUFHeEQsYUFBUyxDQUFDO0FBQ1YsV0FBTztBQUFBLEVBQ1Q7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { execa } from "execa";
|
|
2
|
+
import { renameSync, writeFileSync } from "fs";
|
|
3
|
+
import { resolve as pathResolve } from "path";
|
|
4
|
+
import { URL } from "url";
|
|
5
|
+
import { LexConfig } from "../../LexConfig.js";
|
|
6
|
+
import { createSpinner, getPackageJson, setPackageJson } from "../../utils/app.js";
|
|
7
|
+
import { log } from "../../utils/log.js";
|
|
8
|
+
const init = async (appName, packageName, cmd, callback = () => ({})) => {
|
|
9
|
+
const { cliName = "Lex", install, packageManager: cmdPackageManager, quiet, typescript } = cmd;
|
|
10
|
+
const cwd = process.cwd();
|
|
11
|
+
const spinner = createSpinner(quiet);
|
|
12
|
+
log(`${cliName} is downloading the app module...`, "info", quiet);
|
|
13
|
+
spinner.start("Downloading app...");
|
|
14
|
+
const tmpPath = pathResolve(cwd, "./.lexTmp");
|
|
15
|
+
const appPath = pathResolve(cwd, `./${appName}`);
|
|
16
|
+
const dirName = new URL(".", import.meta.url).pathname;
|
|
17
|
+
const dnpPath = pathResolve(dirName, "../../../node_modules/download-npm-package/bin/cli.js");
|
|
18
|
+
await LexConfig.parseConfig(cmd);
|
|
19
|
+
const { packageManager: configPackageManager, useTypescript: configTypescript } = LexConfig.config;
|
|
20
|
+
const packageManager = cmdPackageManager || configPackageManager;
|
|
21
|
+
const useTypescript = typescript !== void 0 ? typescript : configTypescript;
|
|
22
|
+
let appModule = packageName;
|
|
23
|
+
if (!appModule) {
|
|
24
|
+
if (useTypescript) {
|
|
25
|
+
appModule = "@nlabs/arkhamjs-example-ts-react";
|
|
26
|
+
} else {
|
|
27
|
+
appModule = "@nlabs/arkhamjs-example-flow-react";
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
await execa(dnpPath, [appModule, tmpPath], {});
|
|
32
|
+
spinner.succeed("Successfully downloaded app!");
|
|
33
|
+
} catch (error) {
|
|
34
|
+
console.log("error", error);
|
|
35
|
+
log(`
|
|
36
|
+
${cliName} Error: There was an error downloading ${appModule}. Make sure the package exists and there is a network connection.`, "error", quiet);
|
|
37
|
+
spinner.fail("Downloaded of app failed.");
|
|
38
|
+
callback(1);
|
|
39
|
+
return 1;
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
renameSync(`${tmpPath}/${appModule}`, appPath);
|
|
43
|
+
} catch (_error) {
|
|
44
|
+
log(`
|
|
45
|
+
${cliName} Error: There was an error copying ${appModule} to the current working directory.`, "error", quiet);
|
|
46
|
+
callback(1);
|
|
47
|
+
return 1;
|
|
48
|
+
}
|
|
49
|
+
const packagePath = `${appPath}/package.json`;
|
|
50
|
+
const packageJson = getPackageJson(packagePath);
|
|
51
|
+
packageJson.name = appName;
|
|
52
|
+
packageJson.description = `${cliName} created app`;
|
|
53
|
+
packageJson.version = "0.1.0";
|
|
54
|
+
delete packageJson.keywords;
|
|
55
|
+
delete packageJson.author;
|
|
56
|
+
delete packageJson.contributors;
|
|
57
|
+
delete packageJson.repository;
|
|
58
|
+
delete packageJson.homepage;
|
|
59
|
+
delete packageJson.bugs;
|
|
60
|
+
try {
|
|
61
|
+
setPackageJson(packageJson, packagePath);
|
|
62
|
+
const readmePath = `${appPath}/README.md`;
|
|
63
|
+
writeFileSync(readmePath, `# ${appName}`);
|
|
64
|
+
} catch (error) {
|
|
65
|
+
log(`
|
|
66
|
+
${cliName} Error: ${error.message}`, "error", quiet);
|
|
67
|
+
callback(1);
|
|
68
|
+
return 1;
|
|
69
|
+
}
|
|
70
|
+
if (install) {
|
|
71
|
+
spinner.start("Installing dependencies...");
|
|
72
|
+
process.chdir(appPath);
|
|
73
|
+
try {
|
|
74
|
+
await execa(packageManager, ["install"], {
|
|
75
|
+
encoding: "utf8",
|
|
76
|
+
stdio: "inherit"
|
|
77
|
+
});
|
|
78
|
+
spinner.succeed("Successfully installed dependencies!");
|
|
79
|
+
} catch (error) {
|
|
80
|
+
log(`
|
|
81
|
+
${cliName} Error: ${error.message}`, "error", quiet);
|
|
82
|
+
spinner.fail("Failed to install dependencies.");
|
|
83
|
+
callback(1);
|
|
84
|
+
return 1;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
callback(0);
|
|
88
|
+
return 0;
|
|
89
|
+
};
|
|
90
|
+
export {
|
|
91
|
+
init
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2luaXQvaW5pdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7ZXhlY2F9IGZyb20gJ2V4ZWNhJztcbmltcG9ydCB7cmVuYW1lU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtyZXNvbHZlIGFzIHBhdGhSZXNvbHZlfSBmcm9tICdwYXRoJztcbmltcG9ydCB7VVJMfSBmcm9tICd1cmwnO1xuXG5pbXBvcnQge0xleENvbmZpZ30gZnJvbSAnLi4vLi4vTGV4Q29uZmlnLmpzJztcbmltcG9ydCB7Y3JlYXRlU3Bpbm5lciwgZ2V0UGFja2FnZUpzb24sIHNldFBhY2thZ2VKc29ufSBmcm9tICcuLi8uLi91dGlscy9hcHAuanMnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4uLy4uL3V0aWxzL2xvZy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5pdE9wdGlvbnMge1xuICByZWFkb25seSBjbGlOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBpbnN0YWxsPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcGFja2FnZU1hbmFnZXI/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdHlwZXNjcmlwdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIEluaXRDYWxsYmFjayA9IChzdGF0dXM6IG51bWJlcikgPT4gdm9pZDtcblxuZXhwb3J0IGNvbnN0IGluaXQgPSBhc3luYyAoXG4gIGFwcE5hbWU6IHN0cmluZyxcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbiAgY21kOiBJbml0T3B0aW9ucyxcbiAgY2FsbGJhY2s6IEluaXRDYWxsYmFjayA9ICgpID0+ICh7fSlcbik6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGNvbnN0IHtjbGlOYW1lID0gJ0xleCcsIGluc3RhbGwsIHBhY2thZ2VNYW5hZ2VyOiBjbWRQYWNrYWdlTWFuYWdlciwgcXVpZXQsIHR5cGVzY3JpcHR9ID0gY21kO1xuICBjb25zdCBjd2Q6IHN0cmluZyA9IHByb2Nlc3MuY3dkKCk7XG5cbiAgLy8gU3Bpbm5lclxuICBjb25zdCBzcGlubmVyID0gY3JlYXRlU3Bpbm5lcihxdWlldCk7XG5cbiAgLy8gRG93bmxvYWQgYXBwIG1vZHVsZSBpbnRvIHRlbXBvcmFyeSBkaXJlY3RvcnlcbiAgbG9nKGAke2NsaU5hbWV9IGlzIGRvd25sb2FkaW5nIHRoZSBhcHAgbW9kdWxlLi4uYCwgJ2luZm8nLCBxdWlldCk7XG4gIHNwaW5uZXIuc3RhcnQoJ0Rvd25sb2FkaW5nIGFwcC4uLicpO1xuICBjb25zdCB0bXBQYXRoOiBzdHJpbmcgPSBwYXRoUmVzb2x2ZShjd2QsICcuLy5sZXhUbXAnKTtcbiAgY29uc3QgYXBwUGF0aDogc3RyaW5nID0gcGF0aFJlc29sdmUoY3dkLCBgLi8ke2FwcE5hbWV9YCk7XG4gIGNvbnN0IGRpck5hbWUgPSBuZXcgVVJMKCcuJywgaW1wb3J0Lm1ldGEudXJsKS5wYXRobmFtZTtcbiAgY29uc3QgZG5wUGF0aDogc3RyaW5nID0gcGF0aFJlc29sdmUoZGlyTmFtZSwgJy4uLy4uLy4uL25vZGVfbW9kdWxlcy9kb3dubG9hZC1ucG0tcGFja2FnZS9iaW4vY2xpLmpzJyk7XG5cbiAgLy8gR2V0IGN1c3RvbSBjb25maWd1cmF0aW9uXG4gIGF3YWl0IExleENvbmZpZy5wYXJzZUNvbmZpZyhjbWQpO1xuICBjb25zdCB7cGFja2FnZU1hbmFnZXI6IGNvbmZpZ1BhY2thZ2VNYW5hZ2VyLCB1c2VUeXBlc2NyaXB0OiBjb25maWdUeXBlc2NyaXB0fSA9IExleENvbmZpZy5jb25maWc7XG4gIGNvbnN0IHBhY2thZ2VNYW5hZ2VyOiBzdHJpbmcgPSBjbWRQYWNrYWdlTWFuYWdlciB8fCBjb25maWdQYWNrYWdlTWFuYWdlcjtcbiAgY29uc3QgdXNlVHlwZXNjcmlwdDogYm9vbGVhbiA9IHR5cGVzY3JpcHQgIT09IHVuZGVmaW5lZCA/IHR5cGVzY3JpcHQgOiBjb25maWdUeXBlc2NyaXB0O1xuXG4gIGxldCBhcHBNb2R1bGU6IHN0cmluZyA9IHBhY2thZ2VOYW1lO1xuXG4gIC8vIFVzZSBiYXNlIGFwcCBtb2R1bGUgYmFzZWQgb24gY29uZmlnXG4gIGlmKCFhcHBNb2R1bGUpIHtcbiAgICBpZih1c2VUeXBlc2NyaXB0KSB7XG4gICAgICBhcHBNb2R1bGUgPSAnQG5sYWJzL2Fya2hhbWpzLWV4YW1wbGUtdHMtcmVhY3QnO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcHBNb2R1bGUgPSAnQG5sYWJzL2Fya2hhbWpzLWV4YW1wbGUtZmxvdy1yZWFjdCc7XG4gICAgfVxuICB9XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBleGVjYShkbnBQYXRoLCBbYXBwTW9kdWxlLCB0bXBQYXRoXSwge30pO1xuXG4gICAgLy8gU3RvcCBzcGlubmVyIGFuZCB1cGRhdGUgc3RhdHVzXG4gICAgc3Bpbm5lci5zdWNjZWVkKCdTdWNjZXNzZnVsbHkgZG93bmxvYWRlZCBhcHAhJyk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBjb25zb2xlLmxvZygnZXJyb3InLCBlcnJvcik7XG4gICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBUaGVyZSB3YXMgYW4gZXJyb3IgZG93bmxvYWRpbmcgJHthcHBNb2R1bGV9LiBNYWtlIHN1cmUgdGhlIHBhY2thZ2UgZXhpc3RzIGFuZCB0aGVyZSBpcyBhIG5ldHdvcmsgY29ubmVjdGlvbi5gLCAnZXJyb3InLCBxdWlldCk7XG5cbiAgICAvLyBTdG9wIHNwaW5uZXIgYW5kIGtpbGwgcHJvY2Vzc1xuICAgIHNwaW5uZXIuZmFpbCgnRG93bmxvYWRlZCBvZiBhcHAgZmFpbGVkLicpO1xuXG4gICAgLy8gS2lsbCBwcm9jZXNzXG4gICAgY2FsbGJhY2soMSk7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvLyBNb3ZlIGludG8gY29uZmlndXJlZCBkaXJlY3RvcnlcbiAgdHJ5IHtcbiAgICByZW5hbWVTeW5jKGAke3RtcFBhdGh9LyR7YXBwTW9kdWxlfWAsIGFwcFBhdGgpO1xuICB9IGNhdGNoKF9lcnJvcikge1xuICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogVGhlcmUgd2FzIGFuIGVycm9yIGNvcHlpbmcgJHthcHBNb2R1bGV9IHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LmAsICdlcnJvcicsIHF1aWV0KTtcbiAgICBjYWxsYmFjaygxKTtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIC8vIENvbmZpZ3VyZSBwYWNrYWdlLmpzb25cbiAgY29uc3QgcGFja2FnZVBhdGg6IHN0cmluZyA9IGAke2FwcFBhdGh9L3BhY2thZ2UuanNvbmA7XG4gIGNvbnN0IHBhY2thZ2VKc29uID0gZ2V0UGFja2FnZUpzb24ocGFja2FnZVBhdGgpO1xuICBwYWNrYWdlSnNvbi5uYW1lID0gYXBwTmFtZTtcbiAgcGFja2FnZUpzb24uZGVzY3JpcHRpb24gPSBgJHtjbGlOYW1lfSBjcmVhdGVkIGFwcGA7XG4gIHBhY2thZ2VKc29uLnZlcnNpb24gPSAnMC4xLjAnO1xuICBkZWxldGUgcGFja2FnZUpzb24ua2V5d29yZHM7XG4gIGRlbGV0ZSBwYWNrYWdlSnNvbi5hdXRob3I7XG4gIGRlbGV0ZSBwYWNrYWdlSnNvbi5jb250cmlidXRvcnM7XG4gIGRlbGV0ZSBwYWNrYWdlSnNvbi5yZXBvc2l0b3J5O1xuICBkZWxldGUgcGFja2FnZUpzb24uaG9tZXBhZ2U7XG4gIGRlbGV0ZSBwYWNrYWdlSnNvbi5idWdzO1xuXG4gIHRyeSB7XG4gICAgLy8gVXBkYXRlIHBhY2thZ2UuanNvblxuICAgIHNldFBhY2thZ2VKc29uKHBhY2thZ2VKc29uLCBwYWNrYWdlUGF0aCk7XG5cbiAgICAvLyBVcGRhdGUgUkVBRE1FXG4gICAgY29uc3QgcmVhZG1lUGF0aDogc3RyaW5nID0gYCR7YXBwUGF0aH0vUkVBRE1FLm1kYDtcbiAgICB3cml0ZUZpbGVTeW5jKHJlYWRtZVBhdGgsIGAjICR7YXBwTmFtZX1gKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcbiAgICBjYWxsYmFjaygxKTtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIGlmKGluc3RhbGwpIHtcbiAgICBzcGlubmVyLnN0YXJ0KCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcy4uLicpO1xuXG4gICAgLy8gQ2hhbmdlIHRvIHRoZSBhcHAgZGlyZWN0b3J5XG4gICAgcHJvY2Vzcy5jaGRpcihhcHBQYXRoKTtcblxuICAgIC8vIEluc3RhbGwgZGVwZW5kZW5jaWVzXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGV4ZWNhKHBhY2thZ2VNYW5hZ2VyLCBbJ2luc3RhbGwnXSwge1xuICAgICAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgICBzdGRpbzogJ2luaGVyaXQnXG4gICAgICB9KTtcblxuICAgICAgLy8gU3RvcCBzcGlubmVyXG4gICAgICBzcGlubmVyLnN1Y2NlZWQoJ1N1Y2Nlc3NmdWxseSBpbnN0YWxsZWQgZGVwZW5kZW5jaWVzIScpO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIC8vIERpc3BsYXkgZXJyb3IgbWVzc2FnZVxuICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuXG4gICAgICAvLyBTdG9wIHNwaW5uZXJcbiAgICAgIHNwaW5uZXIuZmFpbCgnRmFpbGVkIHRvIGluc3RhbGwgZGVwZW5kZW5jaWVzLicpO1xuXG4gICAgICAvLyBLaWxsIHByb2Nlc3NcbiAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICB9XG5cbiAgLy8gS2lsbCBw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
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { LexConfig } from "../../LexConfig.js";
|
|
2
|
+
import { checkLinkedModules } from "../../utils/app.js";
|
|
3
|
+
import { log } from "../../utils/log.js";
|
|
4
|
+
const linked = async (cmd, callback = () => ({})) => {
|
|
5
|
+
const { cliName = "Lex", quiet } = cmd;
|
|
6
|
+
log(`${cliName} checking for linked modules...`, "info", quiet);
|
|
7
|
+
await LexConfig.parseConfig(cmd);
|
|
8
|
+
checkLinkedModules();
|
|
9
|
+
callback(0);
|
|
10
|
+
return Promise.resolve(0);
|
|
11
|
+
};
|
|
12
|
+
export {
|
|
13
|
+
linked
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2xpbmsvbGluay50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7TGV4Q29uZmlnfSBmcm9tICcuLi8uLi9MZXhDb25maWcuanMnO1xuaW1wb3J0IHtjaGVja0xpbmtlZE1vZHVsZXN9IGZyb20gJy4uLy4uL3V0aWxzL2FwcC5qcyc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi4vLi4vdXRpbHMvbG9nLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBMaW5rT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGNsaU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgTGlua0NhbGxiYWNrID0gKHN0YXR1czogbnVtYmVyKSA9PiB2b2lkO1xuXG5leHBvcnQgY29uc3QgbGlua2VkID0gYXN5bmMgKGNtZDogTGlua09wdGlvbnMsIGNhbGxiYWNrOiBMaW5rQ2FsbGJhY2sgPSAoKSA9PiAoe30pKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgY29uc3Qge2NsaU5hbWUgPSAnTGV4JywgcXVpZXR9ID0gY21kO1xuXG4gIC8vIERpc3BsYXkgc3RhdHVzXG4gIGxvZyhgJHtjbGlOYW1lfSBjaGVja2luZyBmb3IgbGlua2VkIG1vZHVsZXMuLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICAvLyBHZXQgY3VzdG9tIGNvbmZpZ3VyYXRpb25cbiAgYXdhaXQgTGV4Q29uZmlnLnBhcnNlQ29uZmlnKGNtZCk7XG5cbiAgLy8gQ2hlY2sgZm9yIGxpbmtlZCBtb2R1bGVzXG4gIGNoZWNrTGlua2VkTW9kdWxlcygpO1xuICBjYWxsYmFjaygwKTtcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgwKTtcbn07Il0sCiAgIm1hcHBpbmdzIjogIkFBSUEsU0FBUSxpQkFBZ0I7QUFDeEIsU0FBUSwwQkFBeUI7QUFDakMsU0FBUSxXQUFVO0FBU1gsTUFBTSxTQUFTLE9BQU8sS0FBa0IsV0FBeUIsT0FBTyxDQUFDLE9BQXdCO0FBQ3RHLFFBQU0sRUFBQyxVQUFVLE9BQU8sTUFBSyxJQUFJO0FBR2pDLE1BQUksR0FBRyxPQUFPLG1DQUFtQyxRQUFRLEtBQUs7QUFHOUQsUUFBTSxVQUFVLFlBQVksR0FBRztBQUcvQixxQkFBbUI7QUFDbkIsV0FBUyxDQUFDO0FBQ1YsU0FBTyxRQUFRLFFBQVEsQ0FBQztBQUMxQjsiLAogICJuYW1lcyI6IFtdCn0K
|