datagrok-tools 4.13.74 → 4.13.76
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/bin/commands/add.js +96 -106
- package/bin/commands/api.js +65 -107
- package/bin/commands/check.js +264 -396
- package/bin/commands/config.js +82 -158
- package/bin/commands/create.js +65 -80
- package/bin/commands/help.js +194 -12
- package/bin/commands/init.js +73 -95
- package/bin/commands/link.js +70 -176
- package/bin/commands/publish.js +283 -484
- package/bin/commands/test-all.js +77 -291
- package/bin/commands/test.js +169 -391
- package/bin/utils/color-utils.js +8 -11
- package/bin/utils/ent-helpers.js +52 -42
- package/bin/utils/func-generation.js +25 -57
- package/bin/utils/interfaces.js +5 -1
- package/bin/utils/order-functions.js +47 -118
- package/bin/utils/test-utils.js +322 -750
- package/bin/utils/utils.js +123 -235
- package/bin/validators/config-validator.js +12 -14
- package/package.json +13 -4
package/bin/commands/link.js
CHANGED
|
@@ -5,88 +5,61 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
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"));
|
|
11
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
8
|
var _fs = _interopRequireDefault(require("fs"));
|
|
14
9
|
var _path = _interopRequireDefault(require("path"));
|
|
15
10
|
var _utils = require("../utils/utils");
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
while (_path["default"].dirname(repositoryDir) !== repositoryDir) {
|
|
11
|
+
/* eslint-disable valid-jsdoc */
|
|
12
|
+
|
|
13
|
+
const repositoryDirNameRegex = new RegExp(_path.default.join('1', '2')[1] + 'public$');
|
|
14
|
+
const excludedPackages = ['@datagrok/diff-grok'];
|
|
15
|
+
const curDir = process.cwd();
|
|
16
|
+
let devMode = false;
|
|
17
|
+
let repositoryDir = curDir;
|
|
18
|
+
let localPackageDependencies;
|
|
19
|
+
let packagesToLink;
|
|
20
|
+
while (_path.default.dirname(repositoryDir) !== repositoryDir) {
|
|
27
21
|
if (repositoryDirNameRegex.test(repositoryDir)) break;
|
|
28
|
-
repositoryDir = _path
|
|
29
|
-
}
|
|
30
|
-
var verbose = false;
|
|
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');
|
|
34
|
-
var apiPackageName = 'datagrok-api';
|
|
35
|
-
var libName = '@datagrok-libraries/';
|
|
36
|
-
var packageName = '@datagrok/';
|
|
37
|
-
function link(_x) {
|
|
38
|
-
return _link.apply(this, arguments);
|
|
22
|
+
repositoryDir = _path.default.dirname(repositoryDir);
|
|
39
23
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
case 9:
|
|
57
|
-
case "end":
|
|
58
|
-
return _context.stop();
|
|
59
|
-
}
|
|
60
|
-
}, _callee);
|
|
61
|
-
}));
|
|
62
|
-
return _link.apply(this, arguments);
|
|
24
|
+
let verbose = false;
|
|
25
|
+
const apiDir = _path.default.join(repositoryDir, 'js-api');
|
|
26
|
+
const libDir = _path.default.join(repositoryDir, 'libraries');
|
|
27
|
+
const packageDir = _path.default.join(repositoryDir, 'packages');
|
|
28
|
+
const apiPackageName = 'datagrok-api';
|
|
29
|
+
const libName = '@datagrok-libraries/';
|
|
30
|
+
const packageName = '@datagrok/';
|
|
31
|
+
async function link(args) {
|
|
32
|
+
verbose = args.verbose ?? false;
|
|
33
|
+
localPackageDependencies = [];
|
|
34
|
+
packagesToLink = new Set();
|
|
35
|
+
if (args.dev !== undefined) devMode = args.dev;
|
|
36
|
+
collectPackagesData(curDir);
|
|
37
|
+
await linkPackages();
|
|
38
|
+
console.log('Package linked');
|
|
39
|
+
return true;
|
|
63
40
|
}
|
|
64
|
-
function collectPackagesData() {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
var result = [];
|
|
41
|
+
function collectPackagesData(packagePath = curDir) {
|
|
42
|
+
const packageJsonPath = _path.default.join(packagePath, 'package.json');
|
|
43
|
+
if (!_fs.default.existsSync(packageJsonPath)) return [];
|
|
44
|
+
const json = JSON.parse(_fs.default.readFileSync(packageJsonPath, 'utf-8'));
|
|
45
|
+
let result = [];
|
|
70
46
|
result = result.concat(collectPacakgeDataFromJsonObject(json.dependencies));
|
|
71
47
|
if (devMode) result = result.concat(collectPacakgeDataFromJsonObject(json.devDependencies));
|
|
72
48
|
return result;
|
|
73
49
|
}
|
|
74
50
|
function collectPacakgeDataFromJsonObject(object) {
|
|
75
|
-
|
|
76
|
-
for (
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
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]))));
|
|
51
|
+
let result = [];
|
|
52
|
+
for (let dependencyName of Object.keys(object)) {
|
|
53
|
+
let nameSplitted = dependencyName.split('/');
|
|
54
|
+
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]))));
|
|
80
55
|
}
|
|
81
56
|
return result;
|
|
82
57
|
}
|
|
83
58
|
function toCamelCase(input) {
|
|
84
|
-
return input.split('-').map(
|
|
85
|
-
return word.charAt(0).toUpperCase() + word.slice(1);
|
|
86
|
-
}).join('');
|
|
59
|
+
return input.split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join('');
|
|
87
60
|
}
|
|
88
61
|
function parsePackageDependencies(dependencyName, pathToLink) {
|
|
89
|
-
|
|
62
|
+
let result = [];
|
|
90
63
|
if (!packagesToLink.has(dependencyName)) {
|
|
91
64
|
packagesToLink.add(dependencyName);
|
|
92
65
|
localPackageDependencies.push(new PackageData(dependencyName, pathToLink));
|
|
@@ -94,115 +67,36 @@ function parsePackageDependencies(dependencyName, pathToLink) {
|
|
|
94
67
|
result.push(dependencyName);
|
|
95
68
|
return result;
|
|
96
69
|
}
|
|
97
|
-
function linkPackages() {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
case 4:
|
|
123
|
-
if (!(anyChanges && packagesToLink.size > 0)) {
|
|
124
|
-
_context2.next = 37;
|
|
125
|
-
break;
|
|
126
|
-
}
|
|
127
|
-
anyChanges = false;
|
|
128
|
-
mapElements = localPackageDependencies.filter(function (x) {
|
|
129
|
-
return x.dependencies.every(function (i) {
|
|
130
|
-
return !packagesToLink.has(i);
|
|
131
|
-
}) && packagesToLink.has(x.name) && !excludedPackages.includes(x.name);
|
|
132
|
-
});
|
|
133
|
-
if (!(mapElements.length === 0)) {
|
|
134
|
-
_context2.next = 9;
|
|
135
|
-
break;
|
|
136
|
-
}
|
|
137
|
-
return _context2.abrupt("break", 37);
|
|
138
|
-
case 9:
|
|
139
|
-
_iterator2 = _createForOfIteratorHelper(mapElements);
|
|
140
|
-
_context2.prev = 10;
|
|
141
|
-
_iterator2.s();
|
|
142
|
-
case 12:
|
|
143
|
-
if ((_step2 = _iterator2.n()).done) {
|
|
144
|
-
_context2.next = 25;
|
|
145
|
-
break;
|
|
146
|
-
}
|
|
147
|
-
element = _step2.value;
|
|
148
|
-
if (verbose) console.log("Package ".concat(element.name, " linked"));
|
|
149
|
-
_context2.next = 17;
|
|
150
|
-
return (0, _utils.runScript)("npm install", element.packagePath);
|
|
151
|
-
case 17:
|
|
152
|
-
_context2.next = 19;
|
|
153
|
-
return (0, _utils.runScript)("npm link ".concat(element.dependencies.join(' ')), element.packagePath);
|
|
154
|
-
case 19:
|
|
155
|
-
_context2.next = 21;
|
|
156
|
-
return (0, _utils.runScript)("npm link", element.packagePath);
|
|
157
|
-
case 21:
|
|
158
|
-
packagesToLink["delete"](element.name);
|
|
159
|
-
anyChanges = true;
|
|
160
|
-
case 23:
|
|
161
|
-
_context2.next = 12;
|
|
162
|
-
break;
|
|
163
|
-
case 25:
|
|
164
|
-
_context2.next = 30;
|
|
165
|
-
break;
|
|
166
|
-
case 27:
|
|
167
|
-
_context2.prev = 27;
|
|
168
|
-
_context2.t0 = _context2["catch"](10);
|
|
169
|
-
_iterator2.e(_context2.t0);
|
|
170
|
-
case 30:
|
|
171
|
-
_context2.prev = 30;
|
|
172
|
-
_iterator2.f();
|
|
173
|
-
return _context2.finish(30);
|
|
174
|
-
case 33:
|
|
175
|
-
if (!(anyChanges === false)) {
|
|
176
|
-
_context2.next = 35;
|
|
177
|
-
break;
|
|
178
|
-
}
|
|
179
|
-
throw new Error("There is loop with next packages: ".concat(JSON.stringify(Array.from(packagesToLink)).toString()));
|
|
180
|
-
case 35:
|
|
181
|
-
_context2.next = 4;
|
|
182
|
-
break;
|
|
183
|
-
case 37:
|
|
184
|
-
names = localPackageDependencies.map(function (x) {
|
|
185
|
-
return x.name;
|
|
186
|
-
});
|
|
187
|
-
_context2.next = 40;
|
|
188
|
-
return (0, _utils.runScript)("npm install", curDir);
|
|
189
|
-
case 40:
|
|
190
|
-
_context2.next = 42;
|
|
191
|
-
return (0, _utils.runScript)("npm link ".concat(names.join(' ')), curDir);
|
|
192
|
-
case 42:
|
|
193
|
-
case "end":
|
|
194
|
-
return _context2.stop();
|
|
195
|
-
}
|
|
196
|
-
}, _callee2, null, [[10, 27, 30, 33]]);
|
|
197
|
-
}));
|
|
198
|
-
return _linkPackages.apply(this, arguments);
|
|
70
|
+
async function linkPackages() {
|
|
71
|
+
let anyChanges = true;
|
|
72
|
+
for (let element of excludedPackages) packagesToLink.delete(element);
|
|
73
|
+
if (verbose) {
|
|
74
|
+
console.log('Packages to link:');
|
|
75
|
+
console.log(localPackageDependencies);
|
|
76
|
+
}
|
|
77
|
+
while (anyChanges && packagesToLink.size > 0) {
|
|
78
|
+
anyChanges = false;
|
|
79
|
+
let mapElements = localPackageDependencies.filter(x => x.dependencies.every(i => !packagesToLink.has(i)) && packagesToLink.has(x.name) && !excludedPackages.includes(x.name));
|
|
80
|
+
if (mapElements.length === 0) break;
|
|
81
|
+
for (let element of mapElements) {
|
|
82
|
+
if (verbose) console.log(`Package ${element.name} linked`);
|
|
83
|
+
await (0, _utils.runScript)(`npm install`, element.packagePath);
|
|
84
|
+
await (0, _utils.runScript)(`npm link ${element.dependencies.join(' ')}`, element.packagePath);
|
|
85
|
+
await (0, _utils.runScript)(`npm link`, element.packagePath);
|
|
86
|
+
packagesToLink.delete(element.name);
|
|
87
|
+
anyChanges = true;
|
|
88
|
+
}
|
|
89
|
+
if (anyChanges === false) throw new Error(`There is loop with next packages: ${JSON.stringify(Array.from(packagesToLink)).toString()}`);
|
|
90
|
+
}
|
|
91
|
+
let names = localPackageDependencies.map(x => x.name);
|
|
92
|
+
await (0, _utils.runScript)(`npm install`, curDir);
|
|
93
|
+
await (0, _utils.runScript)(`npm link ${names.join(' ')}`, curDir);
|
|
199
94
|
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
(
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
});
|
|
95
|
+
class PackageData {
|
|
96
|
+
dependencies = [];
|
|
97
|
+
constructor(name, packagePath) {
|
|
98
|
+
this.name = name;
|
|
99
|
+
this.packagePath = packagePath;
|
|
100
|
+
this.dependencies = collectPackagesData(packagePath);
|
|
101
|
+
}
|
|
102
|
+
}
|