UNPKG

2.26 kBJavaScriptView Raw
1"use strict";
2
3exports.__esModule = true;
4exports.default = void 0;
5
6var _path = _interopRequireDefault(require("path"));
7
8var _fsExtra = _interopRequireDefault(require("fs-extra"));
9
10var _chalk = _interopRequireDefault(require("chalk"));
11
12var _pkgDir = _interopRequireDefault(require("pkg-dir"));
13
14var _lodash = _interopRequireDefault(require("lodash.camelcase"));
15
16var _lodash2 = _interopRequireDefault(require("lodash.startcase"));
17
18var _ramda = require("ramda");
19
20var _cleanDirectories = _interopRequireDefault(require("./cleanDirectories"));
21
22var _copyUpdateFiles = _interopRequireDefault(require("./copyUpdateFiles"));
23
24var _readDirR = _interopRequireDefault(require("./readDirR"));
25
26function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
28const normalize = (0, _ramda.compose)((0, _ramda.replace)(/\s/g, ""), _lodash2.default, _lodash.default);
29
30const 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
65var _default = createWidget;
66exports.default = _default;
\No newline at end of file