datagrok-tools 4.13.13 → 4.13.15
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/CHANGELOG.md +19 -1
- package/bin/commands/link.js +195 -166
- package/bin/commands/test.js +1 -1
- package/bin/grok.js +3 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
# Datagrok-tools changelog
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
## 4.13.
|
|
4
|
+
## 4.13.16 (2024-08-23)
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* Grok link fixes
|
|
9
|
+
|
|
10
|
+
## 4.13.15 (2024-08-21)
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
* Grok link updated to link all dependent libs
|
|
15
|
+
|
|
16
|
+
## 4.13.14 (2024-08-09)
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* Timeout update for test runs up to 1 hour
|
|
21
|
+
|
|
22
|
+
## 4.13.13 (2024-08-09)
|
|
5
23
|
|
|
6
24
|
### Features
|
|
7
25
|
|
package/bin/commands/link.js
CHANGED
|
@@ -1,191 +1,220 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.link = link;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
11
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
13
|
var _fs = _interopRequireDefault(require("fs"));
|
|
11
14
|
var _path = _interopRequireDefault(require("path"));
|
|
12
15
|
var _child_process = require("child_process");
|
|
13
|
-
var
|
|
14
|
-
var color = _interopRequireWildcard(require("../utils/color-utils"));
|
|
15
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
16
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
16
|
+
var _util = require("util");
|
|
17
17
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
18
18
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
19
19
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } /* eslint-disable valid-jsdoc */
|
|
20
|
+
var execAsync = (0, _util.promisify)(_child_process.exec);
|
|
21
|
+
var repositoryDirNameRegex = new RegExp('\\public$');
|
|
20
22
|
var curDir = process.cwd();
|
|
21
|
-
var
|
|
23
|
+
var devMode = false;
|
|
24
|
+
var repositoryDir = curDir;
|
|
25
|
+
var localPackageDependencies;
|
|
26
|
+
var packagesToLink;
|
|
27
|
+
while (repositoryDir.length > 0) {
|
|
28
|
+
if (repositoryDirNameRegex.test(repositoryDir)) break;
|
|
29
|
+
repositoryDir = _path["default"].dirname(repositoryDir);
|
|
30
|
+
}
|
|
31
|
+
var apiDir = _path["default"].join(repositoryDir, 'js-api');
|
|
32
|
+
var libDir = _path["default"].join(repositoryDir, 'libraries');
|
|
33
|
+
var packageDir = _path["default"].join(repositoryDir, 'packages');
|
|
22
34
|
var apiPackageName = 'datagrok-api';
|
|
23
|
-
var
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
function
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
var json = JSON.parse(_fs["default"].readFileSync(packageJsonPath, 'utf-8'));
|
|
49
|
-
json.scripts['link-all'] = generateLinkScript(packagePath, packageHierarchy);
|
|
50
|
-
json.scripts['build-all'] = generateBuildScript(packagePath, packageHierarchy);
|
|
51
|
-
_fs["default"].writeFileSync(packageJsonPath, JSON.stringify(json, null, 2), 'utf-8');
|
|
52
|
-
(0, _child_process.exec)('npm install && npm link && npm run link-all', {
|
|
53
|
-
cwd: packagePath
|
|
54
|
-
}, function (err, stdout, stderr) {
|
|
55
|
-
if (err) throw err;else console.log(stderr, stdout);
|
|
56
|
-
});
|
|
57
|
-
};
|
|
58
|
-
var packageHierarchy = getHierarchy(curDir);
|
|
59
|
-
packageHierarchy.forEach(function (packageName) {
|
|
60
|
-
return _link(getPackagePath(packageName));
|
|
61
|
-
});
|
|
62
|
-
_link(curDir);
|
|
63
|
-
} else {
|
|
64
|
-
runScript(curDir, 'npm install', dependencies, {
|
|
65
|
-
dirMessage: 'Unlinking local packages in ',
|
|
66
|
-
successMessage: 'Local packages have been successfully unlinked.'
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
return true;
|
|
35
|
+
var libName = '@datagrok-libraries/';
|
|
36
|
+
var packageName = '@datagrok/';
|
|
37
|
+
function link(_x) {
|
|
38
|
+
return _link.apply(this, arguments);
|
|
39
|
+
}
|
|
40
|
+
function _link() {
|
|
41
|
+
_link = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(args) {
|
|
42
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
43
|
+
while (1) switch (_context.prev = _context.next) {
|
|
44
|
+
case 0:
|
|
45
|
+
localPackageDependencies = [];
|
|
46
|
+
packagesToLink = new Set();
|
|
47
|
+
if (args.dev !== undefined) devMode = args.dev;
|
|
48
|
+
collectPackagesData(curDir);
|
|
49
|
+
_context.next = 6;
|
|
50
|
+
return linkPackages();
|
|
51
|
+
case 6:
|
|
52
|
+
return _context.abrupt("return", true);
|
|
53
|
+
case 7:
|
|
54
|
+
case "end":
|
|
55
|
+
return _context.stop();
|
|
56
|
+
}
|
|
57
|
+
}, _callee);
|
|
58
|
+
}));
|
|
59
|
+
return _link.apply(this, arguments);
|
|
70
60
|
}
|
|
71
|
-
function
|
|
72
|
-
|
|
73
|
-
var
|
|
74
|
-
var json = JSON.parse(
|
|
75
|
-
var
|
|
76
|
-
|
|
77
|
-
|
|
61
|
+
function collectPackagesData() {
|
|
62
|
+
var packagePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : curDir;
|
|
63
|
+
var packageJsonPath = _path["default"].join(packagePath, 'package.json');
|
|
64
|
+
var json = JSON.parse(_fs["default"].readFileSync(packageJsonPath, 'utf-8'));
|
|
65
|
+
var result = [];
|
|
66
|
+
result = result.concat(collectPacakgeDataFromJsonObject(json.dependencies));
|
|
67
|
+
if (devMode) result = result.concat(collectPacakgeDataFromJsonObject(json.devDependencies));
|
|
68
|
+
console.log(JSON.stringify(result).toString());
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
function collectPacakgeDataFromJsonObject(object) {
|
|
72
|
+
var result = [];
|
|
73
|
+
for (var _i = 0, _Object$keys = Object.keys(object); _i < _Object$keys.length; _i++) {
|
|
74
|
+
var dependencyName = _Object$keys[_i];
|
|
75
|
+
var nameSplitted = dependencyName.split('/');
|
|
76
|
+
if (dependencyName === apiPackageName) result = result.concat(parsePackageDependencies(dependencyName, apiDir));else if (dependencyName.includes(libName)) result = result.concat(parsePackageDependencies(dependencyName, _path["default"].join(libDir, nameSplitted[nameSplitted.length - 1])));else if (dependencyName.includes(packageName)) result = result.concat(parsePackageDependencies(dependencyName, _path["default"].join(packageDir, toCamelCase(nameSplitted[nameSplitted.length - 1]))));
|
|
78
77
|
}
|
|
79
|
-
|
|
80
|
-
return libs;
|
|
78
|
+
return result;
|
|
81
79
|
}
|
|
82
|
-
function
|
|
83
|
-
return
|
|
80
|
+
function toCamelCase(input) {
|
|
81
|
+
return input.split('-').map(function (word) {
|
|
82
|
+
return word.charAt(0).toUpperCase() + word.slice(1);
|
|
83
|
+
}).join('');
|
|
84
84
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
var cachedHierarchy = {};
|
|
91
|
-
for (var _i2 = 0, _dependencies = dependencies; _i2 < _dependencies.length; _i2++) {
|
|
92
|
-
var _cachedHierarchy$depP;
|
|
93
|
-
var dep = _dependencies[_i2];
|
|
94
|
-
var idx = hierarchy.indexOf(dep);
|
|
95
|
-
if (idx === -1) idx = hierarchy.push(dep) - 1;
|
|
96
|
-
var depPath = getPackagePath(dep);
|
|
97
|
-
var internalHierarchy = (_cachedHierarchy$depP = cachedHierarchy[depPath]) !== null && _cachedHierarchy$depP !== void 0 ? _cachedHierarchy$depP : getHierarchy(depPath);
|
|
98
|
-
if (!(depPath in cachedHierarchy)) cachedHierarchy[depPath] = internalHierarchy;
|
|
99
|
-
var _iterator = _createForOfIteratorHelper(internalHierarchy),
|
|
100
|
-
_step;
|
|
101
|
-
try {
|
|
102
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
103
|
-
var internalDep = _step.value;
|
|
104
|
-
var depIdx = hierarchy.indexOf(internalDep);
|
|
105
|
-
if (depIdx === -1) {
|
|
106
|
-
// Insert the internal dependency before the main package
|
|
107
|
-
hierarchy.splice(idx, 0, internalDep);
|
|
108
|
-
idx++;
|
|
109
|
-
} else if (depIdx > idx) {
|
|
110
|
-
// Remove the internal dependency from the list and place it before the main package
|
|
111
|
-
// (doesn't affect the order of same-level libraries, their order is arbitrary)
|
|
112
|
-
hierarchy.splice(depIdx, 1);
|
|
113
|
-
idx = hierarchy.indexOf(dep);
|
|
114
|
-
hierarchy.splice(idx, 0, internalDep);
|
|
115
|
-
idx++;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
} catch (err) {
|
|
119
|
-
_iterator.e(err);
|
|
120
|
-
} finally {
|
|
121
|
-
_iterator.f();
|
|
122
|
-
}
|
|
85
|
+
function parsePackageDependencies(dependencyName, pathToLink) {
|
|
86
|
+
var result = [];
|
|
87
|
+
if (!packagesToLink.has(dependencyName)) {
|
|
88
|
+
packagesToLink.add(dependencyName);
|
|
89
|
+
localPackageDependencies.push(new PackageData(dependencyName, pathToLink));
|
|
123
90
|
}
|
|
124
|
-
|
|
91
|
+
result.push(dependencyName);
|
|
92
|
+
return result;
|
|
125
93
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
(0,
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
94
|
+
function linkPackages() {
|
|
95
|
+
return _linkPackages.apply(this, arguments);
|
|
96
|
+
}
|
|
97
|
+
function _linkPackages() {
|
|
98
|
+
_linkPackages = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
99
|
+
var anyChanges, mapElements, _iterator, _step, element, names;
|
|
100
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
101
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
102
|
+
case 0:
|
|
103
|
+
anyChanges = true;
|
|
104
|
+
case 1:
|
|
105
|
+
if (!(anyChanges && packagesToLink.size > 0)) {
|
|
106
|
+
_context2.next = 31;
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
anyChanges = false;
|
|
110
|
+
mapElements = localPackageDependencies.filter(function (x) {
|
|
111
|
+
return x.dependencies.every(function (i) {
|
|
112
|
+
return !packagesToLink.has(i);
|
|
113
|
+
}) && packagesToLink.has(x.name);
|
|
114
|
+
});
|
|
115
|
+
_iterator = _createForOfIteratorHelper(mapElements);
|
|
116
|
+
_context2.prev = 5;
|
|
117
|
+
_iterator.s();
|
|
118
|
+
case 7:
|
|
119
|
+
if ((_step = _iterator.n()).done) {
|
|
120
|
+
_context2.next = 19;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
element = _step.value;
|
|
124
|
+
_context2.next = 11;
|
|
125
|
+
return runScript("npm install", element.packagePath);
|
|
126
|
+
case 11:
|
|
127
|
+
_context2.next = 13;
|
|
128
|
+
return runScript("npm link ".concat(element.dependencies.join(' ')), element.packagePath);
|
|
129
|
+
case 13:
|
|
130
|
+
_context2.next = 15;
|
|
131
|
+
return runScript("npm link", element.packagePath);
|
|
132
|
+
case 15:
|
|
133
|
+
packagesToLink["delete"](element.name);
|
|
134
|
+
anyChanges = true;
|
|
135
|
+
case 17:
|
|
136
|
+
_context2.next = 7;
|
|
137
|
+
break;
|
|
138
|
+
case 19:
|
|
139
|
+
_context2.next = 24;
|
|
140
|
+
break;
|
|
141
|
+
case 21:
|
|
142
|
+
_context2.prev = 21;
|
|
143
|
+
_context2.t0 = _context2["catch"](5);
|
|
144
|
+
_iterator.e(_context2.t0);
|
|
145
|
+
case 24:
|
|
146
|
+
_context2.prev = 24;
|
|
147
|
+
_iterator.f();
|
|
148
|
+
return _context2.finish(24);
|
|
149
|
+
case 27:
|
|
150
|
+
if (!(anyChanges === false)) {
|
|
151
|
+
_context2.next = 29;
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
throw new Error("There is loop with next packages: ".concat(JSON.stringify(Array.from(packagesToLink)).toString()));
|
|
155
|
+
case 29:
|
|
156
|
+
_context2.next = 1;
|
|
157
|
+
break;
|
|
158
|
+
case 31:
|
|
159
|
+
names = localPackageDependencies.map(function (x) {
|
|
160
|
+
return x.name;
|
|
161
|
+
});
|
|
162
|
+
_context2.next = 34;
|
|
163
|
+
return runScript("npm install", curDir);
|
|
164
|
+
case 34:
|
|
165
|
+
_context2.next = 36;
|
|
166
|
+
return runScript("npm link ".concat(names.join(' ')), curDir);
|
|
167
|
+
case 36:
|
|
168
|
+
case "end":
|
|
169
|
+
return _context2.stop();
|
|
149
170
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
});
|
|
171
|
+
}, _callee2, null, [[5, 21, 24, 27]]);
|
|
172
|
+
}));
|
|
173
|
+
return _linkPackages.apply(this, arguments);
|
|
154
174
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
function generateBuildScript(packagePath, hierarchy) {
|
|
158
|
-
var dependencies = Object.keys(readDependencies(packagePath));
|
|
159
|
-
var packageNames = hierarchy.filter(function (p) {
|
|
160
|
-
return dependencies.includes(p);
|
|
161
|
-
});
|
|
162
|
-
var prefix = "./".concat(_path["default"].relative(packagePath, repositoryDir).split(_path["default"].sep).join('/'), "/");
|
|
163
|
-
var script = '';
|
|
164
|
-
var _iterator2 = _createForOfIteratorHelper(packageNames),
|
|
165
|
-
_step2;
|
|
166
|
-
try {
|
|
167
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
168
|
-
var packageName = _step2.value;
|
|
169
|
-
script += "npm --prefix ".concat(prefix).concat(packageName === apiPackageName ? 'js-api' : "libraries/".concat(packageName.split('/')[1]), " run build && ");
|
|
170
|
-
}
|
|
171
|
-
} catch (err) {
|
|
172
|
-
_iterator2.e(err);
|
|
173
|
-
} finally {
|
|
174
|
-
_iterator2.f();
|
|
175
|
-
}
|
|
176
|
-
return "".concat(script ? script : '', "npm run build");
|
|
175
|
+
function runScript(_x2, _x3) {
|
|
176
|
+
return _runScript.apply(this, arguments);
|
|
177
177
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
178
|
+
function _runScript() {
|
|
179
|
+
_runScript = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(script, path) {
|
|
180
|
+
var _yield$execAsync, stdout, stderr;
|
|
181
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
182
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
183
|
+
case 0:
|
|
184
|
+
_context3.prev = 0;
|
|
185
|
+
_context3.next = 3;
|
|
186
|
+
return execAsync(script, {
|
|
187
|
+
cwd: path
|
|
188
|
+
});
|
|
189
|
+
case 3:
|
|
190
|
+
_yield$execAsync = _context3.sent;
|
|
191
|
+
stdout = _yield$execAsync.stdout;
|
|
192
|
+
stderr = _yield$execAsync.stderr;
|
|
193
|
+
if (stderr) {
|
|
194
|
+
console.error("Error: ".concat(stderr));
|
|
195
|
+
} else {
|
|
196
|
+
// console.log(`Output: ${stdout}`);
|
|
197
|
+
}
|
|
198
|
+
_context3.next = 12;
|
|
199
|
+
break;
|
|
200
|
+
case 9:
|
|
201
|
+
_context3.prev = 9;
|
|
202
|
+
_context3.t0 = _context3["catch"](0);
|
|
203
|
+
console.error("Execution failed: ".concat(_context3.t0.message));
|
|
204
|
+
case 12:
|
|
205
|
+
case "end":
|
|
206
|
+
return _context3.stop();
|
|
207
|
+
}
|
|
208
|
+
}, _callee3, null, [[0, 9]]);
|
|
209
|
+
}));
|
|
210
|
+
return _runScript.apply(this, arguments);
|
|
211
|
+
}
|
|
212
|
+
var PackageData = /*#__PURE__*/(0, _createClass2["default"])(function PackageData(name, packagePath) {
|
|
213
|
+
(0, _classCallCheck2["default"])(this, PackageData);
|
|
214
|
+
(0, _defineProperty2["default"])(this, "name", void 0);
|
|
215
|
+
(0, _defineProperty2["default"])(this, "packagePath", void 0);
|
|
216
|
+
(0, _defineProperty2["default"])(this, "dependencies", []);
|
|
217
|
+
this.name = name;
|
|
218
|
+
this.packagePath = packagePath;
|
|
219
|
+
this.dependencies = collectPackagesData(packagePath);
|
|
220
|
+
});
|
package/bin/commands/test.js
CHANGED
package/bin/grok.js
CHANGED
|
@@ -18,12 +18,12 @@ const commands = {
|
|
|
18
18
|
|
|
19
19
|
const command = argv['_'][0];
|
|
20
20
|
if (command in commands) {
|
|
21
|
-
try {
|
|
22
|
-
if (!commands[command](argv)) {
|
|
21
|
+
try {
|
|
22
|
+
if (!commands[command](argv)) {
|
|
23
23
|
console.log(help[command]);
|
|
24
24
|
exitWithCode(1);
|
|
25
25
|
}
|
|
26
|
-
} catch (err) {
|
|
26
|
+
} catch (err) {
|
|
27
27
|
console.error(err);
|
|
28
28
|
console.log(help[command]);
|
|
29
29
|
exitWithCode(1);
|
package/package.json
CHANGED