@nlabs/lex 1.30.0 → 1.32.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/.postcssrc.js +1 -1
- package/dist/LexConfig.js +39 -53
- package/dist/commands/build.js +117 -61
- package/dist/commands/bulid.test.js +2 -19
- package/dist/commands/clean.js +21 -23
- package/dist/commands/compile.js +50 -48
- package/dist/commands/config.js +21 -21
- package/dist/commands/copy.js +21 -20
- package/dist/commands/create.js +35 -34
- package/dist/commands/dev.js +25 -37
- package/dist/commands/index.js +26 -29
- package/dist/commands/init.js +26 -25
- package/dist/commands/link.js +16 -18
- package/dist/commands/lint.js +22 -20
- package/dist/commands/migrate.js +22 -21
- package/dist/commands/publish.js +28 -44
- package/dist/commands/test.js +22 -20
- package/dist/commands/update.js +19 -19
- package/dist/commands/upgrade.js +24 -23
- package/dist/commands/versions.js +19 -22
- package/dist/create/changelog.js +25 -24
- package/dist/lex.js +4 -21
- package/dist/resolver.js +1 -0
- package/dist/utils/app.js +243 -0
- package/dist/utils/file.js +51 -0
- package/dist/utils/log.js +54 -0
- package/dist/utils/reactShim.js +31 -0
- package/jest.config.lex.js +1 -1
- package/package.json +56 -54
- package/tsconfig.template.json +1 -1
- package/webpack.config.js +34 -15
- package/dist/utils.js +0 -306
package/dist/commands/compile.js
CHANGED
|
@@ -4,33 +4,34 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
7
|
var __export = (target, all) => {
|
|
9
|
-
__markAsModule(target);
|
|
10
8
|
for (var name in all)
|
|
11
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
10
|
};
|
|
13
|
-
var
|
|
14
|
-
if (
|
|
15
|
-
for (let key of __getOwnPropNames(
|
|
16
|
-
if (!__hasOwnProp.call(
|
|
17
|
-
__defProp(
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
16
|
}
|
|
19
|
-
return
|
|
17
|
+
return to;
|
|
20
18
|
};
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
};
|
|
24
|
-
__export(
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
var compile_exports = {};
|
|
22
|
+
__export(compile_exports, {
|
|
25
23
|
compile: () => compile,
|
|
26
24
|
hasFileType: () => hasFileType
|
|
27
25
|
});
|
|
28
|
-
|
|
29
|
-
var
|
|
30
|
-
var
|
|
31
|
-
var
|
|
32
|
-
var
|
|
33
|
-
var
|
|
26
|
+
module.exports = __toCommonJS(compile_exports);
|
|
27
|
+
var import_execa = __toESM(require("execa"));
|
|
28
|
+
var import_fs = __toESM(require("fs"));
|
|
29
|
+
var import_glob = __toESM(require("glob"));
|
|
30
|
+
var import_path = __toESM(require("path"));
|
|
31
|
+
var import_LexConfig = require("../LexConfig");
|
|
32
|
+
var import_app = require("../utils/app");
|
|
33
|
+
var import_file = require("../utils/file");
|
|
34
|
+
var import_log = require("../utils/log");
|
|
34
35
|
const hasFileType = (startPath, ext) => {
|
|
35
36
|
if (!import_fs.default.existsSync(startPath)) {
|
|
36
37
|
return false;
|
|
@@ -48,18 +49,18 @@ const hasFileType = (startPath, ext) => {
|
|
|
48
49
|
};
|
|
49
50
|
const compile = async (cmd, callback = () => ({})) => {
|
|
50
51
|
const { cliName = "Lex", config, quiet, remove, watch } = cmd;
|
|
51
|
-
const spinner = (0,
|
|
52
|
-
(0,
|
|
52
|
+
const spinner = (0, import_app.createSpinner)(quiet);
|
|
53
|
+
(0, import_log.log)(`${cliName} compiling...`, "info", quiet);
|
|
53
54
|
import_LexConfig.LexConfig.parseConfig(cmd);
|
|
54
55
|
const { outputFullPath, sourceFullPath, useTypescript } = import_LexConfig.LexConfig.config;
|
|
55
56
|
const nodePath = import_path.default.resolve(__dirname, "../../node_modules");
|
|
56
|
-
(0,
|
|
57
|
+
(0, import_app.checkLinkedModules)();
|
|
57
58
|
if (remove) {
|
|
58
|
-
await (0,
|
|
59
|
+
await (0, import_app.removeFiles)(outputFullPath);
|
|
59
60
|
}
|
|
60
61
|
if (useTypescript) {
|
|
61
62
|
import_LexConfig.LexConfig.checkTypescriptConfig();
|
|
62
|
-
const typescriptPath = (0,
|
|
63
|
+
const typescriptPath = (0, import_file.relativeFilePath)("typescript/bin/tsc", nodePath);
|
|
63
64
|
const typescriptOptions = config ? ["-p", config] : [
|
|
64
65
|
"--allowSyntheticDefaultImports",
|
|
65
66
|
"--baseUrl",
|
|
@@ -68,7 +69,7 @@ const compile = async (cmd, callback = () => ({})) => {
|
|
|
68
69
|
"--emitDeclarationOnly",
|
|
69
70
|
"--inlineSourceMap",
|
|
70
71
|
"--jsx",
|
|
71
|
-
"react",
|
|
72
|
+
"react-jsx",
|
|
72
73
|
"--lib",
|
|
73
74
|
["ES5", "ES6", "ES2015", "ES7", "ES2016", "ES2017", "ES2018", "ESNext", "DOM"],
|
|
74
75
|
"--module",
|
|
@@ -96,7 +97,7 @@ const compile = async (cmd, callback = () => ({})) => {
|
|
|
96
97
|
await (0, import_execa.default)(typescriptPath, typescriptOptions, { encoding: "utf-8" });
|
|
97
98
|
spinner.succeed("Successfully completed type checking!");
|
|
98
99
|
} catch (error) {
|
|
99
|
-
(0,
|
|
100
|
+
(0, import_log.log)(`
|
|
100
101
|
${cliName} Error: ${error.message}`, "error", quiet);
|
|
101
102
|
if (!quiet) {
|
|
102
103
|
console.error(error);
|
|
@@ -115,7 +116,7 @@ ${cliName} Error: ${error.message}`, "error", quiet);
|
|
|
115
116
|
const tsFiles = import_glob.default.sync(`${sourceFullPath}/**/**.ts*`, globOptions);
|
|
116
117
|
const jsFiles = import_glob.default.sync(`${sourceFullPath}/**/**.js`, globOptions);
|
|
117
118
|
const sourceFiles = [...tsFiles, ...jsFiles];
|
|
118
|
-
const esbuildPath = (0,
|
|
119
|
+
const esbuildPath = (0, import_file.relativeFilePath)("esbuild/bin/esbuild", nodePath);
|
|
119
120
|
const esbuildOptions = [
|
|
120
121
|
...sourceFiles,
|
|
121
122
|
"--color=true",
|
|
@@ -124,7 +125,7 @@ ${cliName} Error: ${error.message}`, "error", quiet);
|
|
|
124
125
|
"--outdir=lib",
|
|
125
126
|
"--platform=node",
|
|
126
127
|
"--sourcemap=inline",
|
|
127
|
-
"--target=
|
|
128
|
+
"--target=node14"
|
|
128
129
|
];
|
|
129
130
|
if (useTypescript) {
|
|
130
131
|
esbuildOptions.push("--loader:.ts=ts", "--loader:.tsx=tsx");
|
|
@@ -132,9 +133,9 @@ ${cliName} Error: ${error.message}`, "error", quiet);
|
|
|
132
133
|
if (watch) {
|
|
133
134
|
esbuildOptions.push("--watch");
|
|
134
135
|
}
|
|
135
|
-
const cssFiles = (0,
|
|
136
|
+
const cssFiles = (0, import_app.getFilesByExt)(".css", import_LexConfig.LexConfig.config);
|
|
136
137
|
if (cssFiles.length) {
|
|
137
|
-
const postcssPath = (0,
|
|
138
|
+
const postcssPath = (0, import_file.relativeFilePath)("postcss-cli/index.js", nodePath);
|
|
138
139
|
const postcssOptions = [
|
|
139
140
|
`${sourceFullPath}/**/**.css`,
|
|
140
141
|
"--base",
|
|
@@ -148,51 +149,51 @@ ${cliName} Error: ${error.message}`, "error", quiet);
|
|
|
148
149
|
await (0, import_execa.default)(postcssPath, postcssOptions, { encoding: "utf-8" });
|
|
149
150
|
spinner.succeed(`Successfully formatted ${cssFiles.length} css files!`);
|
|
150
151
|
} catch (error) {
|
|
151
|
-
(0,
|
|
152
|
+
(0, import_log.log)(`
|
|
152
153
|
${cliName} Error: ${error.message}`, "error", quiet);
|
|
153
154
|
spinner.fail("Failed formatting css.");
|
|
154
155
|
callback(error.status);
|
|
155
156
|
return error.status;
|
|
156
157
|
}
|
|
157
158
|
}
|
|
158
|
-
const gifFiles = (0,
|
|
159
|
-
const jpgFiles = (0,
|
|
160
|
-
const pngFiles = (0,
|
|
161
|
-
const svgFiles = (0,
|
|
159
|
+
const gifFiles = (0, import_app.getFilesByExt)(".gif", import_LexConfig.LexConfig.config);
|
|
160
|
+
const jpgFiles = (0, import_app.getFilesByExt)(".jpg", import_LexConfig.LexConfig.config);
|
|
161
|
+
const pngFiles = (0, import_app.getFilesByExt)(".png", import_LexConfig.LexConfig.config);
|
|
162
|
+
const svgFiles = (0, import_app.getFilesByExt)(".svg", import_LexConfig.LexConfig.config);
|
|
162
163
|
const imageFiles = [...gifFiles, ...jpgFiles, ...pngFiles, ...svgFiles];
|
|
163
164
|
if (imageFiles.length) {
|
|
164
165
|
try {
|
|
165
|
-
await (0,
|
|
166
|
+
await (0, import_app.copyFiles)(imageFiles, "image", spinner, import_LexConfig.LexConfig.config);
|
|
166
167
|
} catch (error) {
|
|
167
|
-
(0,
|
|
168
|
+
(0, import_log.log)(`
|
|
168
169
|
${cliName} Error: ${error.message}`, "error", quiet);
|
|
169
170
|
spinner.fail("Failed to move images to output directory.");
|
|
170
171
|
callback(error.status);
|
|
171
172
|
return error.status;
|
|
172
173
|
}
|
|
173
174
|
}
|
|
174
|
-
const ttfFiles = (0,
|
|
175
|
-
const otfFiles = (0,
|
|
176
|
-
const woffFiles = (0,
|
|
177
|
-
const woff2Files = (0,
|
|
175
|
+
const ttfFiles = (0, import_app.getFilesByExt)(".ttf", import_LexConfig.LexConfig.config);
|
|
176
|
+
const otfFiles = (0, import_app.getFilesByExt)(".otf", import_LexConfig.LexConfig.config);
|
|
177
|
+
const woffFiles = (0, import_app.getFilesByExt)(".woff", import_LexConfig.LexConfig.config);
|
|
178
|
+
const woff2Files = (0, import_app.getFilesByExt)(".woff2", import_LexConfig.LexConfig.config);
|
|
178
179
|
const fontFiles = [...ttfFiles, ...otfFiles, ...woffFiles, ...woff2Files];
|
|
179
180
|
if (fontFiles.length) {
|
|
180
181
|
try {
|
|
181
|
-
await (0,
|
|
182
|
+
await (0, import_app.copyFiles)(fontFiles, "font", spinner, import_LexConfig.LexConfig.config);
|
|
182
183
|
} catch (error) {
|
|
183
|
-
(0,
|
|
184
|
+
(0, import_log.log)(`
|
|
184
185
|
${cliName} Error: ${error.message}`, "error", quiet);
|
|
185
186
|
spinner.fail("Failed to move fonts to output directory.");
|
|
186
187
|
callback(error.status);
|
|
187
188
|
return error.status;
|
|
188
189
|
}
|
|
189
190
|
}
|
|
190
|
-
const mdFiles = (0,
|
|
191
|
+
const mdFiles = (0, import_app.getFilesByExt)(".md", import_LexConfig.LexConfig.config);
|
|
191
192
|
if (mdFiles.length) {
|
|
192
193
|
try {
|
|
193
|
-
await (0,
|
|
194
|
+
await (0, import_app.copyFiles)(mdFiles, "documents", spinner, import_LexConfig.LexConfig.config);
|
|
194
195
|
} catch (error) {
|
|
195
|
-
(0,
|
|
196
|
+
(0, import_log.log)(`
|
|
196
197
|
${cliName} Error: ${error.message}`, "error", quiet);
|
|
197
198
|
spinner.fail("Failed to move docs to output directory.");
|
|
198
199
|
callback(error.status);
|
|
@@ -201,10 +202,10 @@ ${cliName} Error: ${error.message}`, "error", quiet);
|
|
|
201
202
|
}
|
|
202
203
|
spinner.start(watch ? "Watching for changes..." : "Compiling with ESBuild...");
|
|
203
204
|
try {
|
|
204
|
-
|
|
205
|
-
spinner.succeed(
|
|
205
|
+
await (0, import_execa.default)(esbuildPath, esbuildOptions, { encoding: "utf-8" });
|
|
206
|
+
spinner.succeed("Compile completed successfully!");
|
|
206
207
|
} catch (error) {
|
|
207
|
-
(0,
|
|
208
|
+
(0, import_log.log)(`
|
|
208
209
|
${cliName} Error: ${error.message}`, "error", quiet);
|
|
209
210
|
if (!quiet) {
|
|
210
211
|
console.error(error);
|
|
@@ -221,3 +222,4 @@ ${cliName} Error: ${error.message}`, "error", quiet);
|
|
|
221
222
|
compile,
|
|
222
223
|
hasFileType
|
|
223
224
|
});
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbW1hbmRzL2NvbXBpbGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgZXhlY2EgZnJvbSAnZXhlY2EnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBnbG9iIGZyb20gJ2dsb2InO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7TGV4Q29uZmlnfSBmcm9tICcuLi9MZXhDb25maWcnO1xuaW1wb3J0IHtcbiAgY2hlY2tMaW5rZWRNb2R1bGVzLFxuICBjb3B5RmlsZXMsXG4gIGNyZWF0ZVNwaW5uZXIsXG4gIGdldEZpbGVzQnlFeHQsXG4gIHJlbW92ZUZpbGVzXG59IGZyb20gJy4uL3V0aWxzL2FwcCc7XG5pbXBvcnQge3JlbGF0aXZlRmlsZVBhdGh9IGZyb20gJy4uL3V0aWxzL2ZpbGUnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4uL3V0aWxzL2xvZyc7XG5cbmV4cG9ydCBjb25zdCBoYXNGaWxlVHlwZSA9IChzdGFydFBhdGg6IHN0cmluZywgZXh0OiBzdHJpbmdbXSk6IGJvb2xlYW4gPT4ge1xuICBpZighZnMuZXhpc3RzU3luYyhzdGFydFBhdGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZmlsZXM6IHN0cmluZ1tdID0gZnMucmVhZGRpclN5bmMoc3RhcnRQYXRoKTtcblxuICByZXR1cm4gZmlsZXMuc29tZSgoZmlsZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZmlsZW5hbWU6IHN0cmluZyA9IHBhdGguam9pbihzdGFydFBhdGgsIGZpbGUpO1xuICAgIGNvbnN0IGZpbGVFeHQ6IHN0cmluZyA9IHBhdGguZXh0bmFtZShmaWxlbmFtZSk7XG4gICAgY29uc3Qgc3RhdCA9IGZzLmxzdGF0U3luYyhmaWxlbmFtZSk7XG5cbiAgICBpZihzdGF0LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBzZWFyY2hcbiAgICAgIHJldHVybiBoYXNGaWxlVHlwZShmaWxlbmFtZSwgZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXh0LmluY2x1ZGVzKGZpbGVFeHQpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21waWxlID0gYXN5bmMgKGNtZDogYW55LCBjYWxsYmFjazogYW55ID0gKCkgPT4gKHt9KSk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGNvbnN0IHtjbGlOYW1lID0gJ0xleCcsIGNvbmZpZywgcXVpZXQsIHJlbW92ZSwgd2F0Y2h9ID0gY21kO1xuXG4gIC8vIFNwaW5uZXJcbiAgY29uc3Qgc3Bpbm5lciA9IGNyZWF0ZVNwaW5uZXIocXVpZXQpO1xuXG4gIC8vIERpc3BsYXkgc3RhdHVzXG4gIGxvZyhgJHtjbGlOYW1lfSBjb21waWxpbmcuLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICAvLyBHZXQgY3VzdG9tIGNvbmZpZ3VyYXRpb25cbiAgTGV4Q29uZmlnLnBhcnNlQ29uZmlnKGNtZCk7XG5cbiAgLy8gQ29tcGlsZSB0eXBlXG4gIGNvbnN0IHtvdXRwdXRGdWxsUGF0aCwgc291cmNlRnVsbFBhdGgsIHVzZVR5cGVzY3JpcHR9ID0gTGV4Q29uZmlnLmNvbmZpZztcbiAgY29uc3Qgbm9kZVBhdGg6IHN0cmluZyA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi9ub2RlX21vZHVsZXMnKTtcblxuICAvLyBDaGVjayBmb3IgbGlua2VkIG1vZHVsZXNcbiAgY2hlY2tMaW5rZWRNb2R1bGVzKCk7XG5cbiAgLy8gQ2xlYW4gb3V0cHV0IGRpcmVjdG9yeSBiZWZvcmUgd2Ugc3RhcnQgYWRkaW5nIGluIG5ldyBmaWxlc1xuICBpZihyZW1vdmUpIHtcbiAgICBhd2FpdCByZW1vdmVGaWxlcyhvdXRwdXRGdWxsUGF0aCk7XG4gIH1cblxuICAvLyBBZGQgdHNjb25maWcgZmlsZSBpZiBub25lIGV4aXN0c1xuICBpZih1c2VUeXBlc2NyaXB0KSB7XG4gICAgLy8gTWFrZSBzdXJlIHRzY29uZmlnLmpzb24gZXhpc3RzXG4gICAgTGV4Q29uZmlnLmNoZWNrVHlwZXNjcmlwdENvbmZpZygpO1xuXG4gICAgLy8gQ2hlY2sgc3RhdGljIHR5cGVzIHdpdGggdHlwZXNjcmlwdFxuICAgIGNvbnN0IHR5cGVzY3JpcHRQYXRoOiBzdHJpbmcgPSByZWxhdGl2ZUZpbGVQYXRoKCd0eXBlc2NyaXB0L2Jpbi90c2MnLCBub2RlUGF0aCk7XG4gICAgY29uc3QgdHlwZXNjcmlwdE9wdGlvbnM6IHN0cmluZ1tdID0gY29uZmlnID9cbiAgICAgIFsnLXAnLCBjb25maWddIDpcbiAgICAgIFtcbiAgICAgICAgJy0tYWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0cycsXG4gICAgICAgICctLWJhc2VVcmwnLCBzb3VyY2VGdWxsUGF0aCxcbiAgICAgICAgJy0tZGVjbGFyYXRpb24nLFxuICAgICAgICAnLS1lbWl0RGVjbGFyYXRpb25Pbmx5JyxcbiAgICAgICAgJy0taW5saW5lU291cmNlTWFwJyxcbiAgICAgICAgJy0tanN4JywgJ3JlYWN0LWpzeCcsXG4gICAgICAgICctLWxpYicsIFsnRVM1JywgJ0VTNicsICdFUzIwMTUnLCAnRVM3JywgJ0VTMjAxNicsICdFUzIwMTcnLCAnRVMyMDE4JywgJ0VTTmV4dCcsICdET00nXSxcbiAgICAgICAgJy0tbW9kdWxlJywgJ2NvbW1vbmpzJyxcbiAgICAgICAgJy0tbW9kdWxlUmVzb2x1dGlvbicsICdub2RlJyxcbiAgICAgICAgJy0tbm9JbXBsaWNpdFJldHVybnMnLFxuICAgICAgICAnLS1ub0ltcGxpY2l0VGhpcycsXG4gICAgICAgICctLW5vU3RyaWN0R2VuZXJpY0NoZWNrcycsXG4gICAgICAgICctLW91dERpcicsIG91dHB1dEZ1bGxQYXRoLFxuICAgICAgICAnLS1yZW1vdmVDb21tZW50cycsXG4gICAgICAgICctLXJlc29sdmVKc29uTW9kdWxlJyxcbiAgICAgICAgJy0tcm9vdERpcicsIHNvdXJjZUZ1bGxQYXRoLFxuICAgICAgICAnLS1zb3VyY2VSb290Jywgc291cmNlRnVsbFBhdGgsXG4gICAgICAgICctLXRhcmdldCcsICdFUzUnLFxuICAgICAgICAnLS10eXBlUm9vdHMnLCBbJ25vZGVfbW9kdWxlcy9AdHlwZXMnLCAnbm9kZV9tb2R1bGVzL2pzb24tZC10cyddXG4gICAgICBdO1xuXG4gICAgLy8gU3RhcnQgdHlwZSBjaGVja2luZyBzcGlubmVyXG4gICAgc3Bpbm5lci5zdGFydCgnU3RhdGljIHR5cGUgY2hlY2tpbmcgd2l0aCBUeXBlc2NyaXB0Li4uJyk7XG5cbiAgICAvLyBUeXBlIGNoZWNraW5nXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGV4ZWNhKHR5cGVzY3JpcHRQYXRoLCB0eXBlc2NyaXB0T3B0aW9ucywge2VuY29kaW5nOiAndXRmLTgnfSk7XG5cbiAgICAgIC8vIFN0b3Agc3Bpbm5lclxuICAgICAgc3Bpbm5lci5zdWNjZWVkKCdTdWNjZXNzZnVsbHkgY29tcGxldGVkIHR5cGUgY2hlY2tpbmchJyk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgLy8gRGlzcGxheSBlcnJvciBtZXNzYWdlXG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG5cbiAgICAgIGlmKCFxdWlldCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3RvcCBzcGlubmVyXG4gICAgICBzcGlubmVyLmZhaWwoJ1R5cGUgY2hlY2tpbmcgZmFpbGVkLicpO1xuXG4gICAgICAvLyBLaWxsIFByb2Nlc3NcbiAgICAgIGNhbGxiYWNrKGVycm9yLnN0YXR1cyk7XG4gICAgICByZXR1cm4gZXJyb3Iuc3RhdHVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNvdXJjZSBmaWxlc1xuICBjb25zdCBnbG9iT3B0aW9ucyA9IHtcbiAgICBjd2Q6IHNvdXJjZUZ1bGxQYXRoLFxuICAgIGRvdDogZmFsc2UsXG4gICAgbm9kaXI6IHRydWUsXG4gICAgbm9zb3J0OiB0cnVlXG4gIH07XG4gIGNvbnN0IHRzRmlsZXM6IHN0cmluZ1tdID0gZ2xvYi5zeW5jKGAke3NvdXJjZUZ1bGxQYXRofS8qKi8qKi50cypgLCBnbG9iT3B0aW9ucyk7XG4gIGNvbnN0IGpzRmlsZXM6IHN0cmluZ1tdID0gZ2xvYi5zeW5jKGAke3NvdXJjZUZ1bGxQYXRofS8qKi8qKi5qc2AsIGdsb2JPcHRpb25zKTtcbiAgY29uc3Qgc291cmNlRmlsZXM6IHN0cmluZ1tdID0gWy4uLnRzRmlsZXMsIC4uLmpzRmlsZXNdO1xuXG4gIC8vIEVTQnVpbGQgb3B0aW9uc1xuICBjb25zdCBlc2J1aWxkUGF0aDogc3RyaW5nID0gcmVsYXRpdmVGaWxlUGF0aCgnZXNidWlsZC9iaW4vZXNidWlsZCcsIG5vZGVQYXRoKTtcbiAgY29uc3QgZXNidWlsZE9wdGlvbnM6IHN0cmluZ1tdID0gW1xuICAgIC4uLnNvdXJjZUZpbGVzLFxuICAgICctLWNvbG9yPXRydWUnLFxuICAgICctLWZvcm1hdD1janMnLFxuICAgICctLWxvYWRlcjouanM9anMnLFxuICAgICctLW91dGRpcj1saWInLFxuICAgICctLXBsYXRmb3JtPW5vZGUnLFxuICAgICctLXNvdXJjZW1hcD1pbmxpbmUnLFxuICAgICctLXRhcmdldD1ub2RlMTQnXG4gIF07XG5cbiAgaWYodXNlVHlwZXNjcmlwdCkge1xuICAgIGVzYnVpbGRPcHRpb25zLnB1c2goJy0tbG9hZGVyOi50cz10cycsICctLWxvYWRlcjoudHN4PXRzeCcpO1xuICB9XG5cbiAgaWYod2F0Y2gpIHtcbiAgICBlc2J1aWxkT3B0aW9ucy5wdXNoKCctLXdhdGNoJyk7XG4gIH1cblxuICAvLyBVc2UgUG9zdENTUyBmb3IgQ1NTIGZpbGVzXG4gIGNvbnN0IGNzc0ZpbGVzOiBzdHJpbmdbXSA9IGdldEZpbGVzQnlFeHQoJy5jc3MnLCBMZXhDb25maWcuY29uZmlnKTtcblxuICBpZihjc3NGaWxlcy5sZW5ndGgpIHtcbiAgICBjb25zdCBwb3N0Y3NzUGF0aDogc3RyaW5nID0gcmVsYXRpdmVGaWxlUGF0aCgncG9zdGNzcy1jbGkvaW5kZXguanMnLCBub2RlUGF0aCk7XG4gICAgY29uc3QgcG9zdGNzc09wdGlvbnM6IHN0cmluZ1tdID0gW1xuICAgICAgYCR7c291cmNlRnVsbFBhdGh9LyoqLyoqLmNzc2AsXG4gICAgICAnLS1iYXNlJyxcbiAgICAgIHNvdXJjZUZ1bGxQYXRoLFxuICAgICAgJy0tZGlyJyxcbiAgICAgIG91dHB1dEZ1bGxQYXRoLFxuICAgICAgJy0tY29uZmlnJyxcbiAgICAgIHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi8ucG9zdGNzc3JjLmpzJylcbiAgICBdO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGV4ZWNhKHBvc3Rjc3NQYXRoLCBwb3N0Y3NzT3B0aW9ucywge2VuY29kaW5nOiAndXRmLTgnfSk7XG4gICAgICBzcGlubmVyLnN1Y2NlZWQoYFN1Y2Nlc3NmdWxseSBmb3JtYXR0ZWQgJHtjc3NGaWxlcy5sZW5ndGh9IGNzcyBmaWxlcyFgKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAvLyBEaXNwbGF5IGVycm9yIG1lc3NhZ2VcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcblxuICAgICAgLy8gU3RvcCBzcGlubmVyXG4gICAgICBzcGlubmVyLmZhaWwoJ0ZhaWxlZCBmb3JtYXR0aW5nIGNzcy4nKTtcblxuICAgICAgLy8gS2lsbCBQcm9jZXNzXG4gICAgICBjYWxsYmFjayhlcnJvci5zdGF0dXMpO1xuICAgICAgcmV0dXJuIGVycm9yLnN0YXR1cztcbiAgICB9XG4gIH1cblxuICAvLyBDb3B5IGltYWdlIGZpbGVzXG4gIGNvbnN0IGdpZkZpbGVzOiBzdHJpbmdbXSA9IGdldEZpbGVzQnlFeHQoJy5naWYnLCBMZXhDb25maWcuY29uZmlnKTtcbiAgY29uc3QganBnRmlsZXM6IHN0cmluZ1tdID0gZ2V0RmlsZXNCeUV4dCgnLmpwZycsIExleENvbmZpZy5jb25maWcpO1xuICBjb25zdCBwbmdGaWxlczogc3RyaW5nW10gPSBnZXRGaWxlc0J5RXh0KCcucG5nJywgTGV4Q29uZmlnLmNvbmZpZyk7XG4gIGNvbnN0IHN2Z0ZpbGVzOiBzdHJpbmdbXSA9IGdldEZpbGVzQnlFeHQoJy5zdmcnLCBMZXhDb25maWcuY29uZmlnKTtcbiAgY29uc3QgaW1hZ2VGaWxlczogc3RyaW5nW10gPSBbLi4uZ2lmRmlsZXMsIC4uLmpwZ0ZpbGVzLCAuLi5wbmdGaWxlcywgLi4uc3ZnRmlsZXNdO1xuXG4gIGlmKGltYWdlRmlsZXMubGVuZ3RoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGNvcHlGaWxlcyhpbWFnZUZpbGVzLCAnaW1hZ2UnLCBzcGlubmVyLCBMZXhDb25maWcuY29uZmlnKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAvLyBEaXNwbGF5IGVycm9yIG1lc3NhZ2VcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcblxuICAgICAgLy8gU3RvcCBzcGlubmVyXG4gICAgICBzcGlubmVyLmZhaWwoJ0ZhaWxlZCB0byBtb3ZlIGltYWdlcyB0byBvdXRwdXQgZGlyZWN0b3J5LicpO1xuXG4gICAgICAvLyBLaWxsIFByb2Nlc3NcbiAgICAgIGNhbGxiYWNrKGVycm9yLnN0YXR1cyk7XG4gICAgICByZXR1cm4gZXJyb3Iuc3RhdHVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvcHkgZm9udCBmaWxlc1xuICBjb25zdCB0dGZGaWxlczogc3RyaW5nW10gPSBnZXRGaWxlc0J5RXh0KCcudHRmJywgTGV4Q29uZmlnLmNvbmZpZyk7XG4gIGNvbnN0IG90ZkZpbGVzOiBzdHJpbmdbXSA9IGdldEZpbGVzQnlFeHQoJy5vdGYnLCBMZXhDb25maWcuY29uZmlnKTtcbiAgY29uc3Qgd29mZkZpbGVzOiBzdHJpbmdbXSA9IGdldEZpbGVzQnlFeHQoJy53b2ZmJywgTGV4Q29uZmlnLmNvbmZpZyk7XG4gIGNvbnN0IHdvZmYyRmlsZXM6IHN0cmluZ1tdID0gZ2V0RmlsZXNCeUV4dCgnLndvZmYyJywgTGV4Q29uZmlnLmNvbmZpZyk7XG4gIGNvbnN0IGZvbnRGaWxlczogc3RyaW5nW10gPSBbLi4udHRmRmlsZXMsIC4uLm90ZkZpbGVzLCAuLi53b2ZmRmlsZXMsIC4uLndvZmYyRmlsZXNdO1xuXG4gIGlmKGZvbnRGaWxlcy5sZW5ndGgpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgY29weUZpbGVzKGZvbnRGaWxlcywgJ2ZvbnQnLCBzcGlubmVyLCBMZXhDb25maWcuY29uZmlnKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAvLyBEaXNwbGF5IGVycm9yIG1lc3NhZ2VcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcblxuICAgICAgLy8gU3RvcCBzcGlubmVyXG4gICAgICBzcGlubmVyLmZhaWwoJ0ZhaWxlZCB0byBtb3ZlIGZvbnRzIHRvIG91dHB1dCBkaXJlY3RvcnkuJyk7XG5cbiAgICAgIC8vIEtpbGwgUHJvY2Vzc1xuICAgICAgY2FsbGJhY2soZXJyb3Iuc3RhdHVzKTtcbiAgICAgIHJldHVybiBlcnJvci5zdGF0dXM7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29weSBtYXJrZG93biBmaWxlc1xuICBjb25zdCBtZEZpbGVzOiBzdHJpbmdbXSA9IGdldEZpbGVzQnlFeHQoJy5tZCcsIExleENvbmZpZy5jb25maWcpO1xuXG4gIGlmKG1kRmlsZXMubGVuZ3RoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGNvcHlGaWxlcyhtZEZpbGVzLCAnZG9jdW1lbnRzJywgc3Bpbm5lciwgTGV4Q29uZmlnLmNvbmZpZyk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgLy8gRGlzcGxheSBlcnJvciBtZXNzYWdlXG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG5cbiAgICAgIC8vIFN0b3Agc3Bpbm5lclxuICAgICAgc3Bpbm5lci5mYWlsKCdGYWlsZWQgdG8gbW92ZSBkb2NzIHRvIG91dHB1dCBkaXJlY3RvcnkuJyk7XG5cbiAgICAgIC8vIEtpbGwgUHJvY2Vzc1xuICAgICAgY2FsbGJhY2soZXJyb3Iuc3RhdHVzKTtcbiAgICAgIHJldHVybiBlcnJvci5zdGF0dXM7XG4gICAgfVxuICB9XG5cbiAgLy8gU3RhcnQgY29tcGlsZSBzcGlubmVyXG4gIHNwaW5uZXIuc3RhcnQod2F0Y2ggPyAnV2F0Y2hpbmcgZm9yIGNoYW5nZXMuLi4nIDogJ0NvbXBpbGluZyB3aXRoIEVTQnVpbGQuLi4nKTtcblxuICB0cnkge1xuICAgIGF3YWl0IGV4ZWNhKGVzYnVpbGRQYXRoLCBlc2J1aWxkT3B0aW9ucywge2VuY29kaW5nOiAndXRmLTgnfSk7XG5cbiAgICAvLyBTdG9wIHNwaW5uZXJcbiAgICBzcGlubmVyLnN1Y2NlZWQoJ0NvbXBpbGUgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIC8vIERpc3BsYXkgZXJyb3IgbWVzc2FnZVxuICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcblxuICAgIGlmKCFxdWlldCkge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgfVxuXG4gICAgLy8gU3RvcCBzcGlubmVyXG4gICAgc3Bpbm5lci5mYWlsKCdDb2RlIGNvbXBpbGluZyBmYWlsZWQuJyk7XG5cbiAgICAvLyBLaWxsIFByb2Nlc3NcbiAgICBjYWxsYmFjayhlcnJvci5zdGF0dXMpO1xuICAgIHJldHVybiBlcnJvci5zdGF0dXM7XG4gIH1cblxuICAvLyBTdG9wIHByb2Nlc3NcbiAgY2FsbGJhY2soMCk7XG4gIHJldHVybiAwO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsbUJBQWtCO0FBQ2xCLGdCQUFlO0FBQ2Ysa0JBQWlCO0FBQ2pCLGtCQUFpQjtBQUVqQix1QkFBd0I7QUFDeEIsaUJBTU87QUFDUCxrQkFBK0I7QUFDL0IsaUJBQWtCO0FBRVgsTUFBTSxjQUFjLENBQUMsV0FBbUIsUUFBMkI7QUFDeEUsTUFBRyxDQUFDLGtCQUFHLFdBQVcsU0FBUyxHQUFHO0FBQzVCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxRQUFrQixrQkFBRyxZQUFZLFNBQVM7QUFFaEQsU0FBTyxNQUFNLEtBQUssQ0FBQyxTQUFpQjtBQUNsQyxVQUFNLFdBQW1CLG9CQUFLLEtBQUssV0FBVyxJQUFJO0FBQ2xELFVBQU0sVUFBa0Isb0JBQUssUUFBUSxRQUFRO0FBQzdDLFVBQU0sT0FBTyxrQkFBRyxVQUFVLFFBQVE7QUFFbEMsUUFBRyxLQUFLLFlBQVksR0FBRztBQUVyQixhQUFPLFlBQVksVUFBVSxHQUFHO0FBQUEsSUFDbEM7QUFFQSxXQUFPLElBQUksU0FBUyxPQUFPO0FBQUEsRUFDN0IsQ0FBQztBQUNIO0FBRU8sTUFBTSxVQUFVLE9BQU8sS0FBVSxXQUFnQixNQUFPLEVBQUMsT0FBd0I7QUFDdEYsUUFBTSxFQUFDLFVBQVUsT0FBTyxRQUFRLE9BQU8sUUFBUSxVQUFTO0FBR3hELFFBQU0sVUFBVSw4QkFBYyxLQUFLO0FBR25DLHNCQUFJLEdBQUcsd0JBQXdCLFFBQVEsS0FBSztBQUc1Qyw2QkFBVSxZQUFZLEdBQUc7QUFHekIsUUFBTSxFQUFDLGdCQUFnQixnQkFBZ0Isa0JBQWlCLDJCQUFVO0FBQ2xFLFFBQU0sV0FBbUIsb0JBQUssUUFBUSxXQUFXLG9CQUFvQjtBQUdyRSxxQ0FBbUI7QUFHbkIsTUFBRyxRQUFRO0FB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
|
package/dist/commands/config.js
CHANGED
|
@@ -4,41 +4,41 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
7
|
var __export = (target, all) => {
|
|
9
|
-
__markAsModule(target);
|
|
10
8
|
for (var name in all)
|
|
11
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
10
|
};
|
|
13
|
-
var
|
|
14
|
-
if (
|
|
15
|
-
for (let key of __getOwnPropNames(
|
|
16
|
-
if (!__hasOwnProp.call(
|
|
17
|
-
__defProp(
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
16
|
}
|
|
19
|
-
return
|
|
17
|
+
return to;
|
|
20
18
|
};
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
};
|
|
24
|
-
__export(
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
var config_exports = {};
|
|
22
|
+
__export(config_exports, {
|
|
25
23
|
config: () => config
|
|
26
24
|
});
|
|
27
|
-
|
|
28
|
-
var
|
|
29
|
-
var
|
|
30
|
-
var
|
|
31
|
-
var
|
|
25
|
+
module.exports = __toCommonJS(config_exports);
|
|
26
|
+
var import_fs = __toESM(require("fs"));
|
|
27
|
+
var import_startCase = __toESM(require("lodash/startCase"));
|
|
28
|
+
var path = __toESM(require("path"));
|
|
29
|
+
var import_LexConfig = require("../LexConfig");
|
|
30
|
+
var import_app = require("../utils/app");
|
|
31
|
+
var import_log = require("../utils/log");
|
|
32
32
|
const config = (type, cmd, callback = () => ({})) => {
|
|
33
33
|
const { cliName = "Lex", json, quiet } = cmd;
|
|
34
34
|
const validTypes = ["app", "jest", "webpack"];
|
|
35
35
|
if (!validTypes.includes(type)) {
|
|
36
|
-
(0,
|
|
36
|
+
(0, import_log.log)(`
|
|
37
37
|
${cliName} Error: Option for ${type} not found. Configurations only available for app, jest, and webpack.`, "error", quiet);
|
|
38
38
|
callback(1);
|
|
39
39
|
return Promise.resolve(1);
|
|
40
40
|
}
|
|
41
|
-
(0,
|
|
41
|
+
(0, import_log.log)(`${cliName} generating configuration for ${(0, import_startCase.default)(type)}...`, "info", quiet);
|
|
42
42
|
import_LexConfig.LexConfig.parseConfig(cmd);
|
|
43
43
|
let configOptions;
|
|
44
44
|
switch (type) {
|
|
@@ -56,9 +56,8 @@ ${cliName} Error: Option for ${type} not found. Configurations only available fo
|
|
|
56
56
|
break;
|
|
57
57
|
}
|
|
58
58
|
const jsonOutput = JSON.stringify(configOptions, null, 2);
|
|
59
|
-
console.log(jsonOutput);
|
|
60
59
|
if (json) {
|
|
61
|
-
const spinner = (0,
|
|
60
|
+
const spinner = (0, import_app.createSpinner)(quiet);
|
|
62
61
|
spinner.start("Creating JSON output...");
|
|
63
62
|
import_fs.default.writeFileSync(json, jsonOutput);
|
|
64
63
|
spinner.succeed(`Successfully saved JSON output to ${path.relative(process.cwd(), json)}`);
|
|
@@ -70,3 +69,4 @@ ${cliName} Error: Option for ${type} not found. Configurations only available fo
|
|
|
70
69
|
0 && (module.exports = {
|
|
71
70
|
config
|
|
72
71
|
});
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbW1hbmRzL2NvbmZpZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgc3RhcnRDYXNlIGZyb20gJ2xvZGFzaC9zdGFydENhc2UnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHtMZXhDb25maWd9IGZyb20gJy4uL0xleENvbmZpZyc7XG5pbXBvcnQge2NyZWF0ZVNwaW5uZXJ9IGZyb20gJy4uL3V0aWxzL2FwcCc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi4vdXRpbHMvbG9nJztcblxuZXhwb3J0IGNvbnN0IGNvbmZpZyA9ICh0eXBlOiBzdHJpbmcsIGNtZDogYW55LCBjYWxsYmFjazogYW55ID0gKCkgPT4gKHt9KSk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGNvbnN0IHtjbGlOYW1lID0gJ0xleCcsIGpzb24sIHF1aWV0fSA9IGNtZDtcbiAgY29uc3QgdmFsaWRUeXBlczogc3RyaW5nW10gPSBbJ2FwcCcsICdqZXN0JywgJ3dlYnBhY2snXTtcblxuICBpZighdmFsaWRUeXBlcy5pbmNsdWRlcyh0eXBlKSkge1xuICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogT3B0aW9uIGZvciAke3R5cGV9IG5vdCBmb3VuZC4gQ29uZmlndXJhdGlvbnMgb25seSBhdmFpbGFibGUgZm9yIGFwcCwgamVzdCwgYW5kIHdlYnBhY2suYCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgIGNhbGxiYWNrKDEpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoMSk7XG4gIH1cblxuICAvLyBEaXNwbGF5IHN0YXR1c1xuICBsb2coYCR7Y2xpTmFtZX0gZ2VuZXJhdGluZyBjb25maWd1cmF0aW9uIGZvciAke3N0YXJ0Q2FzZSh0eXBlKX0uLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICAvLyBHZXQgY3VzdG9tIGNvbmZpZ3VyYXRpb25cbiAgTGV4Q29uZmlnLnBhcnNlQ29uZmlnKGNtZCk7XG5cbiAgbGV0IGNvbmZpZ09wdGlvbnM7XG5cbiAgc3dpdGNoKHR5cGUpIHtcbiAgICBjYXNlICdhcHAnOlxuICAgICAgY29uZmlnT3B0aW9ucyA9IExleENvbmZpZy5jb25maWc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdlc2J1aWxkJzpcbiAgICAgIGNvbmZpZ09wdGlvbnMgPSByZXF1aXJlKCcuLi8uLi9lc2J1aWxkT3B0aW9ucycpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnamVzdCc6XG4gICAgICBjb25maWdPcHRpb25zID0gcmVxdWlyZSgnLi4vLi4vamVzdC5jb25maWcubGV4Jyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd3ZWJwYWNrJzpcbiAgICAgIGNvbmZpZ09wdGlvbnMgPSByZXF1aXJlKCcuLi8uLi93ZWJwYWNrLmNvbmZpZycpO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICAvLyBPdXRwdXQgY29uZmlnIHRvIGNvbnNvbGVcbiAgY29uc3QganNvbk91dHB1dDogc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoY29uZmlnT3B0aW9ucywgbnVsbCwgMik7XG5cbiAgaWYoanNvbikge1xuICAgIC8vIFNwaW5uZXJcbiAgICBjb25zdCBzcGlubmVyID0gY3JlYXRlU3Bpbm5lcihxdWlldCk7XG5cbiAgICAvLyBTdGFydCBzcGlubmVyXG4gICAgc3Bpbm5lci5zdGFydCgnQ3JlYXRpbmcgSlNPTiBvdXRwdXQuLi4nKTtcblxuICAgIC8vIFNhdmUganNvbiBsb2NhbGx5XG4gICAgZnMud3JpdGVGaWxlU3luYyhqc29uLCBqc29uT3V0cHV0KTtcblxuICAgIC8vIFN1Y2Nlc3Mgc3Bpbm5lclxuICAgIHNwaW5uZXIuc3VjY2VlZChgU3VjY2Vzc2Z1bGx5IHNhdmVkIEpTT04gb3V0cHV0IHRvICR7cGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBqc29uKX1gKTtcbiAgfVxuXG4gIGNhbGxiYWNrKDApO1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKDApO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBLGdCQUFlO0FBQ2YsdUJBQXNCO0FBQ3RCLFdBQXNCO0FBRXRCLHVCQUF3QjtBQUN4QixpQkFBNEI7QUFDNUIsaUJBQWtCO0FBRVgsTUFBTSxTQUFTLENBQUMsTUFBYyxLQUFVLFdBQWdCLE1BQU8sRUFBQyxPQUF3QjtBQUM3RixRQUFNLEVBQUMsVUFBVSxPQUFPLE1BQU0sVUFBUztBQUN2QyxRQUFNLGFBQXVCLENBQUMsT0FBTyxRQUFRLFNBQVM7QUFFdEQsTUFBRyxDQUFDLFdBQVcsU0FBUyxJQUFJLEdBQUc7QUFDN0Isd0JBQUk7QUFBQSxFQUFLLDZCQUE2Qiw2RUFBNkUsU0FBUyxLQUFLO0FBQ2pJLGFBQVMsQ0FBQztBQUNWLFdBQU8sUUFBUSxRQUFRLENBQUM7QUFBQSxFQUMxQjtBQUdBLHNCQUFJLEdBQUcsd0NBQXdDLDhCQUFVLElBQUksUUFBUSxRQUFRLEtBQUs7QUFHbEYsNkJBQVUsWUFBWSxHQUFHO0FBRXpCLE1BQUk7QUFFSixVQUFPO0FBQUEsU0FDQTtBQUNILHNCQUFnQiwyQkFBVTtBQUMxQjtBQUFBLFNBQ0c7QUFDSCxzQkFBZ0IsUUFBUSxzQkFBc0I7QUFDOUM7QUFBQSxTQUNHO0FBQ0gsc0JBQWdCLFFBQVEsdUJBQXVCO0FBQy9DO0FBQUEsU0FDRztBQUNILHNCQUFnQixRQUFRLHNCQUFzQjtBQUM5QztBQUFBO0FBSUosUUFBTSxhQUFxQixLQUFLLFVBQVUsZUFBZSxNQUFNLENBQUM7QUFFaEUsTUFBRyxNQUFNO0FBRVAsVUFBTSxVQUFVLDhCQUFjLEtBQUs7QUFHbkMsWUFBUSxNQUFNLHlCQUF5QjtBQUd2QyxzQkFBRyxjQUFjLE1BQU0sVUFBVTtBQUdqQyxZQUFRLFFBQVEscUNBQXFDLEtBQUssU0FBUyxRQUFRLElBQUksR0FBRyxJQUFJLEdBQUc7QUFBQSxFQUMzRjtBQUVBLFdBQVMsQ0FBQztBQUNWLFNBQU8sUUFBUSxRQUFRLENBQUM7QUFDMUI7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
package/dist/commands/copy.js
CHANGED
|
@@ -4,51 +4,51 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
7
|
var __export = (target, all) => {
|
|
9
|
-
__markAsModule(target);
|
|
10
8
|
for (var name in all)
|
|
11
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
10
|
};
|
|
13
|
-
var
|
|
14
|
-
if (
|
|
15
|
-
for (let key of __getOwnPropNames(
|
|
16
|
-
if (!__hasOwnProp.call(
|
|
17
|
-
__defProp(
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
16
|
}
|
|
19
|
-
return
|
|
17
|
+
return to;
|
|
20
18
|
};
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
};
|
|
24
|
-
__export(
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
var copy_exports = {};
|
|
22
|
+
__export(copy_exports, {
|
|
25
23
|
copy: () => copy
|
|
26
24
|
});
|
|
27
|
-
|
|
28
|
-
var
|
|
25
|
+
module.exports = __toCommonJS(copy_exports);
|
|
26
|
+
var import_fs = __toESM(require("fs"));
|
|
27
|
+
var import_app = require("../utils/app");
|
|
28
|
+
var import_log = require("../utils/log");
|
|
29
29
|
const copy = (from, to, cmd, callback = () => ({})) => {
|
|
30
30
|
const { cliName = "Lex", quiet } = cmd;
|
|
31
|
-
(0,
|
|
31
|
+
(0, import_log.log)(`${cliName} copying "${to}"...`, "info", quiet);
|
|
32
32
|
if (!import_fs.default.existsSync(from)) {
|
|
33
|
-
(0,
|
|
33
|
+
(0, import_log.log)(`
|
|
34
34
|
${cliName} Error: Path not found, "${from}"...`, "error", quiet);
|
|
35
35
|
callback(1);
|
|
36
36
|
return Promise.resolve(1);
|
|
37
37
|
}
|
|
38
38
|
if (import_fs.default.lstatSync(from).isDirectory()) {
|
|
39
39
|
try {
|
|
40
|
-
(0,
|
|
40
|
+
(0, import_app.copyFolderRecursiveSync)(from, to);
|
|
41
41
|
} catch (error) {
|
|
42
|
-
(0,
|
|
42
|
+
(0, import_log.log)(`
|
|
43
43
|
${cliName} Error: Cannot copy "${from}". ${error.message}`, "error", quiet);
|
|
44
44
|
callback(1);
|
|
45
45
|
return Promise.resolve(1);
|
|
46
46
|
}
|
|
47
47
|
} else {
|
|
48
48
|
try {
|
|
49
|
-
(0,
|
|
49
|
+
(0, import_app.copyFileSync)(from, to);
|
|
50
50
|
} catch (error) {
|
|
51
|
-
(0,
|
|
51
|
+
(0, import_log.log)(`
|
|
52
52
|
${cliName} Error: Cannot copy "${from}" ${error.message}`, "error", quiet);
|
|
53
53
|
callback(1);
|
|
54
54
|
return Promise.resolve(1);
|
|
@@ -61,3 +61,4 @@ ${cliName} Error: Cannot copy "${from}" ${error.message}`, "error", quiet);
|
|
|
61
61
|
0 && (module.exports = {
|
|
62
62
|
copy
|
|
63
63
|
});
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbW1hbmRzL2NvcHkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuXG5pbXBvcnQge2NvcHlGaWxlU3luYywgY29weUZvbGRlclJlY3Vyc2l2ZVN5bmN9IGZyb20gJy4uL3V0aWxzL2FwcCc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi4vdXRpbHMvbG9nJztcblxuZXhwb3J0IGNvbnN0IGNvcHkgPSAoZnJvbTogc3RyaW5nLCB0bzogc3RyaW5nLCBjbWQ6IGFueSwgY2FsbGJhY2s6IGFueSA9ICgpID0+ICh7fSkpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICBjb25zdCB7Y2xpTmFtZSA9ICdMZXgnLCBxdWlldH0gPSBjbWQ7XG5cbiAgLy8gRGlzcGxheSBtZXNzYWdlXG4gIGxvZyhgJHtjbGlOYW1lfSBjb3B5aW5nIFwiJHt0b31cIi4uLmAsICdpbmZvJywgcXVpZXQpO1xuXG4gIGlmKCFmcy5leGlzdHNTeW5jKGZyb20pKSB7XG4gICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBQYXRoIG5vdCBmb3VuZCwgXCIke2Zyb219XCIuLi5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgY2FsbGJhY2soMSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgxKTtcbiAgfVxuXG4gIGlmKGZzLmxzdGF0U3luYyhmcm9tKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIENvcHkgZGlyZWN0b3J5XG4gICAgICBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyhmcm9tLCB0byk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBDYW5ub3QgY29weSBcIiR7ZnJvbX1cIi4gJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcbiAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgxKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIENvcHkgZmlsZVxuICAgICAgY29weUZpbGVTeW5jKGZyb20sIHRvKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IENhbm5vdCBjb3B5IFwiJHtmcm9tfVwiICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICBjYWxsYmFjaygxKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoMSk7XG4gICAgfVxuICB9XG5cbiAgY2FsbGJhY2soMCk7XG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoMCk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsZ0JBQWU7QUFFZixpQkFBb0Q7QUFDcEQsaUJBQWtCO0FBRVgsTUFBTSxPQUFPLENBQUMsTUFBYyxJQUFZLEtBQVUsV0FBZ0IsTUFBTyxFQUFDLE9BQXdCO0FBQ3ZHLFFBQU0sRUFBQyxVQUFVLE9BQU8sVUFBUztBQUdqQyxzQkFBSSxHQUFHLG9CQUFvQixVQUFVLFFBQVEsS0FBSztBQUVsRCxNQUFHLENBQUMsa0JBQUcsV0FBVyxJQUFJLEdBQUc7QUFDdkIsd0JBQUk7QUFBQSxFQUFLLG1DQUFtQyxZQUFZLFNBQVMsS0FBSztBQUN0RSxhQUFTLENBQUM7QUFDVixXQUFPLFFBQVEsUUFBUSxDQUFDO0FBQUEsRUFDMUI7QUFFQSxNQUFHLGtCQUFHLFVBQVUsSUFBSSxFQUFFLFlBQVksR0FBRztBQUNuQyxRQUFJO0FBRUYsOENBQXdCLE1BQU0sRUFBRTtBQUFBLElBQ2xDLFNBQVEsT0FBTjtBQUNBLDBCQUFJO0FBQUEsRUFBSywrQkFBK0IsVUFBVSxNQUFNLFdBQVcsU0FBUyxLQUFLO0FBQ2pGLGVBQVMsQ0FBQztBQUNWLGFBQU8sUUFBUSxRQUFRLENBQUM7QUFBQSxJQUMxQjtBQUFBLEVBQ0YsT0FBTztBQUNMLFFBQUk7QUFFRixtQ0FBYSxNQUFNLEVBQUU7QUFBQSxJQUN2QixTQUFRLE9BQU47QUFDQSwwQkFBSTtBQUFBLEVBQUssK0JBQStCLFNBQVMsTUFBTSxXQUFXLFNBQVMsS0FBSztBQUNoRixlQUFTLENBQUM7QUFDVixhQUFPLFFBQVEsUUFBUSxDQUFDO0FBQUEsSUFDMUI7QUFBQSxFQUNGO0FBRUEsV0FBUyxDQUFDO0FBQ1YsU0FBTyxRQUFRLFFBQVEsQ0FBQztBQUMxQjsiLAogICJuYW1lcyI6IFtdCn0K
|
package/dist/commands/create.js
CHANGED
|
@@ -4,35 +4,35 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
7
|
var __export = (target, all) => {
|
|
9
|
-
__markAsModule(target);
|
|
10
8
|
for (var name in all)
|
|
11
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
10
|
};
|
|
13
|
-
var
|
|
14
|
-
if (
|
|
15
|
-
for (let key of __getOwnPropNames(
|
|
16
|
-
if (!__hasOwnProp.call(
|
|
17
|
-
__defProp(
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
16
|
}
|
|
19
|
-
return
|
|
17
|
+
return to;
|
|
20
18
|
};
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
};
|
|
24
|
-
__export(
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
var create_exports = {};
|
|
22
|
+
__export(create_exports, {
|
|
25
23
|
create: () => create
|
|
26
24
|
});
|
|
27
|
-
|
|
28
|
-
var
|
|
29
|
-
var
|
|
30
|
-
var
|
|
31
|
-
var
|
|
25
|
+
module.exports = __toCommonJS(create_exports);
|
|
26
|
+
var import_fs = __toESM(require("fs"));
|
|
27
|
+
var import_path = __toESM(require("path"));
|
|
28
|
+
var import_changelog = require("../create/changelog");
|
|
29
|
+
var import_LexConfig = require("../LexConfig");
|
|
30
|
+
var import_app = require("../utils/app");
|
|
31
|
+
var import_log = require("../utils/log");
|
|
32
32
|
const create = async (type, cmd, callback = () => ({})) => {
|
|
33
33
|
const { cliName = "Lex", outputFile, outputName, quiet } = cmd;
|
|
34
34
|
const cwd = process.cwd();
|
|
35
|
-
(0,
|
|
35
|
+
(0, import_log.log)(`${cliName} creating ${type}...`, "info", quiet);
|
|
36
36
|
import_LexConfig.LexConfig.parseConfig(cmd, false);
|
|
37
37
|
const { outputPath, sourcePath, useTypescript } = import_LexConfig.LexConfig.config;
|
|
38
38
|
if (useTypescript) {
|
|
@@ -47,7 +47,7 @@ const create = async (type, cmd, callback = () => ({})) => {
|
|
|
47
47
|
}
|
|
48
48
|
case "store": {
|
|
49
49
|
try {
|
|
50
|
-
const { nameCaps, templateExt, templatePath } = (0,
|
|
50
|
+
const { nameCaps, templateExt, templatePath } = (0, import_app.getFilenames)({
|
|
51
51
|
cliName,
|
|
52
52
|
name: outputName,
|
|
53
53
|
quiet,
|
|
@@ -56,22 +56,22 @@ const create = async (type, cmd, callback = () => ({})) => {
|
|
|
56
56
|
});
|
|
57
57
|
const storePath = `${cwd}/${nameCaps}Store`;
|
|
58
58
|
if (!import_fs.default.existsSync(storePath)) {
|
|
59
|
-
(0,
|
|
59
|
+
(0, import_app.copyFolderRecursiveSync)(import_path.default.resolve(__dirname, templatePath, "./.SampleStore"), cwd);
|
|
60
60
|
import_fs.default.renameSync(`${cwd}/.SampleStore`, storePath);
|
|
61
61
|
const storeTestPath = `${storePath}/${nameCaps}Store.test${templateExt}`;
|
|
62
62
|
import_fs.default.renameSync(`${storePath}/SampleStore.test${templateExt}.txt`, storeTestPath);
|
|
63
|
-
(0,
|
|
63
|
+
(0, import_app.updateTemplateName)(storeTestPath, outputName, nameCaps);
|
|
64
64
|
const storeFilePath = `${storePath}/${nameCaps}Store${templateExt}`;
|
|
65
65
|
import_fs.default.renameSync(`${storePath}/SampleStore${templateExt}.txt`, storeFilePath);
|
|
66
|
-
(0,
|
|
66
|
+
(0, import_app.updateTemplateName)(storeFilePath, outputName, nameCaps);
|
|
67
67
|
} else {
|
|
68
|
-
(0,
|
|
68
|
+
(0, import_log.log)(`
|
|
69
69
|
${cliName} Error: Cannot create new ${type}. Directory, ${storePath} already exists.`, "error", quiet);
|
|
70
70
|
callback(1);
|
|
71
71
|
return 1;
|
|
72
72
|
}
|
|
73
73
|
} catch (error) {
|
|
74
|
-
(0,
|
|
74
|
+
(0, import_log.log)(`
|
|
75
75
|
${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
|
|
76
76
|
callback(1);
|
|
77
77
|
return 1;
|
|
@@ -79,7 +79,7 @@ ${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
|
|
|
79
79
|
break;
|
|
80
80
|
}
|
|
81
81
|
case "tsconfig": {
|
|
82
|
-
await (0,
|
|
82
|
+
await (0, import_app.removeFiles)("tsconfig.json", true);
|
|
83
83
|
const templatePath = import_path.default.resolve(__dirname, "../../tsconfig.template.json");
|
|
84
84
|
let data = import_fs.default.readFileSync(templatePath, "utf8");
|
|
85
85
|
data = data.replace(/.\/src/g, sourcePath);
|
|
@@ -89,7 +89,7 @@ ${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
|
|
|
89
89
|
break;
|
|
90
90
|
}
|
|
91
91
|
case "view": {
|
|
92
|
-
const { nameCaps, templatePath, templateReact } = (0,
|
|
92
|
+
const { nameCaps, templatePath, templateReact } = (0, import_app.getFilenames)({
|
|
93
93
|
cliName,
|
|
94
94
|
name: outputName,
|
|
95
95
|
quiet,
|
|
@@ -99,25 +99,25 @@ ${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
|
|
|
99
99
|
const viewPath = `${cwd}/${nameCaps}View`;
|
|
100
100
|
try {
|
|
101
101
|
if (!import_fs.default.existsSync(viewPath)) {
|
|
102
|
-
(0,
|
|
102
|
+
(0, import_app.copyFolderRecursiveSync)(import_path.default.resolve(__dirname, templatePath, "./.SampleView"), cwd);
|
|
103
103
|
import_fs.default.renameSync(`${cwd}/.SampleView`, viewPath);
|
|
104
104
|
const viewStylePath = `${viewPath}/${outputName}View.css`;
|
|
105
105
|
import_fs.default.renameSync(`${viewPath}/sampleView.css`, viewStylePath);
|
|
106
|
-
(0,
|
|
106
|
+
(0, import_app.updateTemplateName)(viewStylePath, outputName, nameCaps);
|
|
107
107
|
const viewTestPath = `${viewPath}/${nameCaps}View.test${templateReact}`;
|
|
108
108
|
import_fs.default.renameSync(`${viewPath}/SampleView.test${templateReact}.txt`, viewTestPath);
|
|
109
|
-
(0,
|
|
109
|
+
(0, import_app.updateTemplateName)(viewTestPath, outputName, nameCaps);
|
|
110
110
|
const viewFilePath = `${viewPath}/${nameCaps}View${templateReact}`;
|
|
111
111
|
import_fs.default.renameSync(`${viewPath}/SampleView${templateReact}.txt`, viewFilePath);
|
|
112
|
-
(0,
|
|
112
|
+
(0, import_app.updateTemplateName)(viewFilePath, outputName, nameCaps);
|
|
113
113
|
} else {
|
|
114
|
-
(0,
|
|
114
|
+
(0, import_log.log)(`
|
|
115
115
|
${cliName} Error: Cannot create new ${type}. Directory, ${viewPath} already exists.`, "error", quiet);
|
|
116
116
|
callback(1);
|
|
117
117
|
return 1;
|
|
118
118
|
}
|
|
119
119
|
} catch (error) {
|
|
120
|
-
(0,
|
|
120
|
+
(0, import_log.log)(`
|
|
121
121
|
${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
|
|
122
122
|
callback(1);
|
|
123
123
|
return 1;
|
|
@@ -125,8 +125,8 @@ ${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
|
|
|
125
125
|
break;
|
|
126
126
|
}
|
|
127
127
|
case "vscode": {
|
|
128
|
-
await (0,
|
|
129
|
-
(0,
|
|
128
|
+
await (0, import_app.removeFiles)(".vscode", true);
|
|
129
|
+
(0, import_app.copyFolderRecursiveSync)(import_path.default.resolve(__dirname, "../../.vscode"), cwd);
|
|
130
130
|
break;
|
|
131
131
|
}
|
|
132
132
|
}
|
|
@@ -137,3 +137,4 @@ ${cliName} Error: Cannot create new ${type}. ${error.message}`, "error", quiet);
|
|
|
137
137
|
0 && (module.exports = {
|
|
138
138
|
create
|
|
139
139
|
});
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbW1hbmRzL2NyZWF0ZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHtjcmVhdGVDaGFuZ2Vsb2d9IGZyb20gJy4uL2NyZWF0ZS9jaGFuZ2Vsb2cnO1xuaW1wb3J0IHtMZXhDb25maWd9IGZyb20gJy4uL0xleENvbmZpZyc7XG5pbXBvcnQge2NvcHlGb2xkZXJSZWN1cnNpdmVTeW5jLCBnZXRGaWxlbmFtZXMsIHJlbW92ZUZpbGVzLCB1cGRhdGVUZW1wbGF0ZU5hbWV9IGZyb20gJy4uL3V0aWxzL2FwcCc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi4vdXRpbHMvbG9nJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZSA9IGFzeW5jICh0eXBlOiBzdHJpbmcsIGNtZDogYW55LCBjYWxsYmFjazogYW55ID0gKCkgPT4gKHt9KSk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGNvbnN0IHtjbGlOYW1lID0gJ0xleCcsIG91dHB1dEZpbGUsIG91dHB1dE5hbWUsIHF1aWV0fSA9IGNtZDtcbiAgY29uc3QgY3dkOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpO1xuICBsb2coYCR7Y2xpTmFtZX0gY3JlYXRpbmcgJHt0eXBlfS4uLmAsICdpbmZvJywgcXVpZXQpO1xuXG4gIC8vIEdldCBjdXN0b20gY29uZmlndXJhdGlvblxuICBMZXhDb25maWcucGFyc2VDb25maWcoY21kLCBmYWxzZSk7XG4gIGNvbnN0IHtvdXRwdXRQYXRoLCBzb3VyY2VQYXRoLCB1c2VUeXBlc2NyaXB0fSA9IExleENvbmZpZy5jb25maWc7XG5cbiAgaWYodXNlVHlwZXNjcmlwdCkge1xuICAgIC8vIE1ha2Ugc3VyZSB0c2NvbmZpZy5qc29uIGV4aXN0c1xuICAgIExleENvbmZpZy5jaGVja1R5cGVzY3JpcHRDb25maWcoKTtcbiAgfVxuXG4gIGNvbnN0IHtjb25maWd9ID0gTGV4Q29uZmlnO1xuXG4gIHN3aXRjaCh0eXBlKSB7XG4gICAgY2FzZSAnY2hhbmdlbG9nJzoge1xuICAgICAgY29uc3Qgc3RhdHVzQ2hhbmdlbG9nOiBudW1iZXIgPSBhd2FpdCBjcmVhdGVDaGFuZ2Vsb2coe2NsaU5hbWUsIGNvbmZpZywgb3V0cHV0RmlsZSwgcXVpZXR9KTtcbiAgICAgIGNhbGxiYWNrKHN0YXR1c0NoYW5nZWxvZyk7XG4gICAgICByZXR1cm4gc3RhdHVzQ2hhbmdlbG9nO1xuICAgIH1cbiAgICBjYXNlICdzdG9yZSc6IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHtuYW1lQ2FwcywgdGVtcGxhdGVFeHQsIHRlbXBsYXRlUGF0aH0gPSBnZXRGaWxlbmFtZXMoe1xuICAgICAgICAgIGNsaU5hbWUsXG4gICAgICAgICAgbmFtZTogb3V0cHV0TmFtZSxcbiAgICAgICAgICBxdWlldCxcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHVzZVR5cGVzY3JpcHRcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHN0b3JlUGF0aDogc3RyaW5nID0gYCR7Y3dkfS8ke25hbWVDYXBzfVN0b3JlYDtcblxuICAgICAgICBpZighZnMuZXhpc3RzU3luYyhzdG9yZVBhdGgpKSB7XG4gICAgICAgICAgLy8gQ29weSBzdG9yZSBmaWxlc1xuICAgICAgICAgIGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIHRlbXBsYXRlUGF0aCwgJy4vLlNhbXBsZVN0b3JlJyksIGN3ZCk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgZGlyZWN0b3J5XG4gICAgICAgICAgZnMucmVuYW1lU3luYyhgJHtjd2R9Ly5TYW1wbGVTdG9yZWAsIHN0b3JlUGF0aCk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgdGVzdFxuICAgICAgICAgIGNvbnN0IHN0b3JlVGVzdFBhdGg6IHN0cmluZyA9IGAke3N0b3JlUGF0aH0vJHtuYW1lQ2Fwc31TdG9yZS50ZXN0JHt0ZW1wbGF0ZUV4dH1gO1xuICAgICAgICAgIGZzLnJlbmFtZVN5bmMoYCR7c3RvcmVQYXRofS9TYW1wbGVTdG9yZS50ZXN0JHt0ZW1wbGF0ZUV4dH0udHh0YCwgc3RvcmVUZXN0UGF0aCk7XG5cbiAgICAgICAgICAvLyBTZWFyY2ggYW5kIHJlcGxhY2Ugc3RvcmUgbmFtZVxuICAgICAgICAgIHVwZGF0ZVRlbXBsYXRlTmFtZShzdG9yZVRlc3RQYXRoLCBvdXRwdXROYW1lLCBuYW1lQ2Fwcyk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgc291cmNlIGZpbGVcbiAgICAgICAgICBjb25zdCBzdG9yZUZpbGVQYXRoOiBzdHJpbmcgPSBgJHtzdG9yZVBhdGh9LyR7bmFtZUNhcHN9U3RvcmUke3RlbXBsYXRlRXh0fWA7XG4gICAgICAgICAgZnMucmVuYW1lU3luYyhgJHtzdG9yZVBhdGh9L1NhbXBsZVN0b3JlJHt0ZW1wbGF0ZUV4dH0udHh0YCwgc3RvcmVGaWxlUGF0aCk7XG5cbiAgICAgICAgICAvLyBTZWFyY2ggYW5kIHJlcGxhY2Ugc3RvcmUgbmFtZVxuICAgICAgICAgIHVwZGF0ZVRlbXBsYXRlTmFtZShzdG9yZUZpbGVQYXRoLCBvdXRwdXROYW1lLCBuYW1lQ2Fwcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBDYW5ub3QgY3JlYXRlIG5ldyAke3R5cGV9LiBEaXJlY3RvcnksICR7c3RvcmVQYXRofSBhbHJlYWR5IGV4aXN0cy5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICAgICAgY2FsbGJhY2soMSk7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBDYW5ub3QgY3JlYXRlIG5ldyAke3R5cGV9LiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgICBjYWxsYmFjaygxKTtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAndHNjb25maWcnOiB7XG4gICAgICAvLyBSZW1vdmUgZXhpc3RpbmcgZmlsZVxuICAgICAgYXdhaXQgcmVtb3ZlRmlsZXMoJ3RzY29uZmlnLmpzb24nLCB0cnVlKTtcblxuICAgICAgLy8gR2V0IHRzY29uZmlnIHRlbXBsYXRlXG4gICAgICBjb25zdCB0ZW1wbGF0ZVBhdGg6IHN0cmluZyA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi90c2NvbmZpZy50ZW1wbGF0ZS5qc29uJyk7XG4gICAgICBsZXQgZGF0YTogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHRlbXBsYXRlUGF0aCwgJ3V0ZjgnKTtcblxuICAgICAgLy8gVXBkYXRlIExleCB0c2NvbmZpZyB0ZW1wbGF0ZSB3aXRoIHNvdXJjZSBhbmQgb3V0cHV0IGRpcmVjdG9yaWVzXG4gICAgICBkYXRhID0gZGF0YS5yZXBsYWNlKC8uXFwvc3JjL2csIHNvdXJjZVBhdGgpO1xuICAgICAgZGF0YSA9IGRhdGEucmVwbGFjZSgvLlxcL2Rpc3QvZywgb3V0cHV0UGF0aCk7XG5cbiAgICAgIC8vIFNhdmUgbmV3IHRzY29uZmlnIHRvIGFwcFxuICAgICAgY29uc3QgZGVzdFBhdGg6IHN0cmluZyA9IHBhdGgucmVzb2x2ZShjd2QsICcuL3RzY29uZmlnLmpzb24nKTtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZGVzdFBhdGgsIGRhdGEsICd1dGY4Jyk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAndmlldyc6IHtcbiAgICAgIGNvbnN0IHtuYW1lQ2FwcywgdGVtcGxhdGVQYXRoLCB0ZW1wbGF0ZVJlYWN0fSA9IGdldEZpbGVuYW1lcyh7XG4gICAgICAgIGNsaU5hbWUsXG4gICAgICAgIG5hbWU6IG91dHB1dE5hbWUsXG4gICAgICAgIHF1aWV0LFxuICAgICAgICB0eXBlLFxuICAgICAgICB1c2VUeXBlc2NyaXB0XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHZpZXdQYXRoOiBzdHJpbmcgPSBgJHtjd2R9LyR7bmFtZUNhcHN9Vmlld2A7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGlmKCFmcy5leGlzdHNTeW5jKHZpZXdQYXRoKSkge1xuICAgICAgICAgIC8vIENvcHkgdmlldyBmaWxlc1xuICAgICAgICAgIGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIHRlbXBsYXRlUGF0aCwgJy4vLlNhbXBsZVZpZXcnKSwgY3dkKTtcblxuICAgICAgICAgIC8vIFJlbmFtZSBkaXJlY3RvcnlcbiAgICAgICAgICBmcy5yZW5hbWVTeW5jKGAke2N3ZH0vLlNhbXBsZVZpZXdgLCB2aWV3UGF0aCk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgQ1NTXG4gICAgICAgICAgY29uc3Qgdmlld1N0eWxlUGF0aDogc3RyaW5nID0gYCR7dmlld1BhdGh9LyR7b3V0cHV0TmFtZX1WaWV3LmNzc2A7XG4gICAgICAgICAgZnMucmVuYW1lU3luYyhgJHt2aWV3UGF0aH0vc2FtcGxlVmlldy5jc3NgLCB2aWV3U3R5bGVQYXRoKTtcblxuICAgICAgICAgIC8vIFNlYXJjaCBhbmQgcmVwbGFjZSB2aWV3IG5hbWVcbiAgICAgICAgICB1cGRhdGVUZW1wbGF0ZU5hbWUodmlld1N0eWxlUGF0aCwgb3V0cHV0TmFtZSwgbmFtZUNhcHMpO1xuXG4gICAgICAgICAgLy8gUmVuYW1lIHRlc3RcbiAgICAgICAgICBjb25zdCB2aWV3VGVzdFBhdGg6IHN0cmluZyA9IGAke3ZpZXdQYXRofS8ke25hbWVDYXBzfVZpZXcudGVzdCR7dGVtcGxhdGVSZWFjdH1gO1xuICAgICAgICAgIGZzLnJlbmFtZVN5bmMoYCR7dmlld1BhdGh9L1NhbXBsZVZpZXcudGVzdCR7dGVtcGxhdGVSZWFjdH0udHh0YCwgdmlld1Rlc3RQYXRoKTtcblxuICAgICAgICAgIC8vIFNlYXJjaCBhbmQgcmVwbGFjZSB2aWV3IG5hbWVcbiAgICAgICAgICB1cGRhdGVUZW1wbGF0ZU5hbWUodmlld1Rlc3RQYXRoLCBvdXRwdXROYW1lLCBuYW1lQ2Fwcyk7XG5cbiAgICAgICAgICAvLyBSZW5hbWUgc291cmNlIGZpbGVcbiAgICAgICAgICBjb25zdCB2aWV3RmlsZVBhdGg6IHN0cmluZyA9IGAke3ZpZXdQYXRofS8ke25hbWVDYXBzfVZpZXcke3RlbXBsYXRlUmVhY3R9YDtcbiAgICAgICAgICBmcy5yZW5hbWVTeW5jKGAke3ZpZXdQYXRofS9TYW1wbGVWaWV3JHt0ZW1wbGF0ZVJlYWN0fS50eHRgLCB2aWV3RmlsZVBhdGgpO1xuXG4gICAgICAgICAgLy8gU2VhcmNoIGFuZCByZXBsYWNlIHZpZXcgbmFtZVxuICAgICAgICAgIHVwZGF0ZVRlbXBsYXRlTmFtZSh2aWV3RmlsZVBhdGgsIG91dHB1dE5hbWUsIG5hbWVDYXBzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IENhbm5vdCBjcmVhdGUgbmV3ICR7dHlwZX0uIERpcmVjdG9yeSwgJHt2aWV3UGF0aH0gYWxyZWFkeSBleGlzdHMuYCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogQ2Fubm90IGNyZWF0ZSBuZXcgJHt0eXBlfS4gJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcbiAgICAgICAgY2FsbGJhY2soMSk7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgJ3ZzY29kZSc6IHtcbiAgICAgIC8vIFJlbW92ZSBleGlzdGluZyBkaXJlY3RvcnlcbiAgICAgIGF3YWl0IHJlbW92ZUZpbGVzKCcudnNjb2RlJywgdHJ1ZSk7XG5cbiAgICAgIC8vIENvcHkgdnNjb2RlIGNvbmZpZ3VyYXRpb25cbiAgICAgIGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi8udnNjb2RlJyksIGN3ZCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBjYWxsYmFjaygwKTtcbiAgcmV0dXJuIDA7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsZ0JBQWU7QUFDZixrQkFBaUI7QUFFakIsdUJBQThCO0FBQzlCLHVCQUF3QjtBQUN4QixpQkFBcUY7QUFDckYsaUJBQWtCO0FBRVgsTUFBTSxTQUFTLE9BQU8sTUFBYyxLQUFVLFdBQWdCLE1BQU8sRUFBQyxPQUF3QjtBQUNuRyxRQUFNLEVBQUMsVUFBVSxPQUFPLFlBQVksWUFBWSxVQUFTO0FBQ3pELFFBQU0sTUFBYyxRQUFRLElBQUk7QUFDaEMsc0JBQUksR0FBRyxvQkFBb0IsV0FBVyxRQUFRLEtBQUs7QUFHbkQsNkJBQVUsWUFBWSxLQUFLLEtBQUs7QUFDaEMsUUFBTSxFQUFDLFlBQVksWUFBWSxrQkFBaUIsMkJBQVU7QUFFMUQsTUFBRyxlQUFlO0FBRWhCLCtCQUFVLHNCQUFzQjtBQUFBLEVBQ2xDO0FBRUEsUUFBTSxFQUFDLFdBQVU7QUFFakIsVUFBTztBQUFBLFNBQ0EsYUFBYTtBQUNoQixZQUFNLGtCQUEwQixNQUFNLHNDQUFnQixFQUFDLFNBQVMsUUFBUSxZQUFZLE1BQUssQ0FBQztBQUMxRixlQUFTLGVBQWU7QUFDeEIsYUFBTztBQUFBLElBQ1Q7QUFBQSxTQUNLLFNBQVM7QUFDWixVQUFJO0FBQ0YsY0FBTSxFQUFDLFVBQVUsYUFBYSxpQkFBZ0IsNkJBQWE7QUFBQSxVQUN6RDtBQUFBLFVB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
|