1 | "use strict";
|
2 |
|
3 | exports.__esModule = true;
|
4 | exports.default = void 0;
|
5 |
|
6 | var _path = _interopRequireDefault(require("path"));
|
7 |
|
8 | var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
9 |
|
10 | var _chalk = _interopRequireDefault(require("chalk"));
|
11 |
|
12 | var _pkgDir = _interopRequireDefault(require("pkg-dir"));
|
13 |
|
14 | var _lodash = _interopRequireDefault(require("lodash.camelcase"));
|
15 |
|
16 | var _lodash2 = _interopRequireDefault(require("lodash.startcase"));
|
17 |
|
18 | var _ramda = require("ramda");
|
19 |
|
20 | var _cleanDirectories = _interopRequireDefault(require("./cleanDirectories"));
|
21 |
|
22 | var _copyUpdateFiles = _interopRequireDefault(require("./copyUpdateFiles"));
|
23 |
|
24 | var _readDirR = _interopRequireDefault(require("./readDirR"));
|
25 |
|
26 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
27 |
|
28 | const normalize = (0, _ramda.compose)((0, _ramda.replace)(/\s/g, ""), _lodash2.default, _lodash.default);
|
29 |
|
30 | const createWidget = async ({
|
31 | argv
|
32 | }) => {
|
33 | let pkg = null;
|
34 |
|
35 | try {
|
36 | pkg = JSON.parse((await _fsExtra.default.readFile(_path.default.resolve(process.cwd(), "package.json"))));
|
37 |
|
38 | if (!pkg || pkg && pkg.arcgis.type !== "jsapi") {
|
39 | console.info(_chalk.default.red.bold("The `widget` command can only be used in a `jsapi` type app scaffolded with 'arcgis-js-cli'\n"));
|
40 | return Promise.reject(new Error("The `widget` command can only be used in a `jsapi` type app scaffolded with 'arcgis-js-cli'"));
|
41 | }
|
42 | } catch (err) {}
|
43 |
|
44 | const target = _path.default.resolve(process.cwd(), "tmp");
|
45 |
|
46 | const dest = _path.default.resolve(process.cwd(), "src");
|
47 |
|
48 | const tests = _path.default.resolve(process.cwd(), "tests");
|
49 |
|
50 | const name = normalize(argv.name);
|
51 |
|
52 | try {
|
53 | const rootDir = await (0, _pkgDir.default)(__dirname);
|
54 | await _fsExtra.default.copy(`${rootDir}/templates/basic/widget`, target, {
|
55 | filter: (s, d) => !s.includes("DS_Store")
|
56 | });
|
57 | await (0, _copyUpdateFiles.default)((0, _readDirR.default)(target), name);
|
58 | await (0, _cleanDirectories.default)(target, dest, tests);
|
59 | } catch (error) {
|
60 | console.info(_chalk.default.red.bold(`Widget creation failed: ${error.message}\n`));
|
61 | return Promise.reject(new Error(`Widget creation failed: ${error.message}`));
|
62 | }
|
63 | };
|
64 |
|
65 | var _default = createWidget;
|
66 | exports.default = _default; |
\ | No newline at end of file |