datagrok-tools 4.12.18 → 4.12.20
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/.eslintrc.json +43 -0
- package/bin/_deprecated/migrate.js +9 -9
- package/bin/_deprecated/upload.js +36 -36
- package/bin/commands/add.js +16 -29
- package/bin/commands/api.js +22 -21
- package/bin/commands/check.js +10 -12
- package/bin/commands/config.js +120 -140
- package/bin/commands/create.js +6 -11
- package/bin/commands/help.js +11 -5
- package/bin/commands/init.js +11 -13
- package/bin/commands/link.js +6 -7
- package/bin/commands/publish.js +220 -226
- package/bin/commands/test.js +184 -185
- package/bin/grok.js +3 -3
- package/bin/utils/color-utils.js +5 -10
- package/bin/utils/ent-helpers.js +2 -3
- package/bin/utils/func-generation.js +19 -20
- package/bin/utils/test-utils.js +140 -150
- package/bin/utils/utils.js +20 -41
- package/bin/validators/config-validator.js +1 -3
- package/package-template/ts.webpack.config.js +3 -3
- package/package-template/webpack.config.js +1 -1
- package/package.json +26 -21
- package/plugins/func-gen-plugin.js +12 -12
- package/script-template/node.js +1 -1
package/bin/commands/config.js
CHANGED
|
@@ -15,8 +15,8 @@ var _path = _interopRequireDefault(require("path"));
|
|
|
15
15
|
var _jsYaml = _interopRequireDefault(require("js-yaml"));
|
|
16
16
|
var _configValidator = require("../validators/config-validator");
|
|
17
17
|
var color = _interopRequireWildcard(require("../utils/color-utils"));
|
|
18
|
-
function _getRequireWildcardCache(
|
|
19
|
-
function _interopRequireWildcard(
|
|
18
|
+
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); }
|
|
19
|
+
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; }
|
|
20
20
|
var confTemplateDir = _path["default"].join(_path["default"].dirname(_path["default"].dirname(__dirname)), 'config-template.yaml');
|
|
21
21
|
var confTemplate = _jsYaml["default"].load(_fs["default"].readFileSync(confTemplateDir, {
|
|
22
22
|
encoding: 'utf-8'
|
|
@@ -24,11 +24,7 @@ var confTemplate = _jsYaml["default"].load(_fs["default"].readFileSync(confTempl
|
|
|
24
24
|
var grokDir = _path["default"].join(_os["default"].homedir(), '.grok');
|
|
25
25
|
var confPath = _path["default"].join(grokDir, 'config.yaml');
|
|
26
26
|
function validateKey(key) {
|
|
27
|
-
if (!key || /^([A-Za-z\d-])+$/.test(key))
|
|
28
|
-
return true;
|
|
29
|
-
} else {
|
|
30
|
-
return 'Developer key may only include letters, numbers, or hyphens';
|
|
31
|
-
}
|
|
27
|
+
if (!key || /^([A-Za-z\d-])+$/.test(key)) return true;else return 'Developer key may only include letters, numbers, or hyphens';
|
|
32
28
|
}
|
|
33
29
|
function generateKeyQ(server, url) {
|
|
34
30
|
var origin = new URL(url).origin;
|
|
@@ -38,9 +34,7 @@ function generateKeyQ(server, url) {
|
|
|
38
34
|
message: "Developer key (get it from ".concat(origin, "/u or press ENTER to skip):"),
|
|
39
35
|
validate: validateKey
|
|
40
36
|
};
|
|
41
|
-
if (server.startsWith('local'))
|
|
42
|
-
question.message = "Developer key for ".concat(origin, " (press ENTER to skip):");
|
|
43
|
-
}
|
|
37
|
+
if (server.startsWith('local')) question.message = "Developer key for ".concat(origin, " (press ENTER to skip):");
|
|
44
38
|
return question;
|
|
45
39
|
}
|
|
46
40
|
function addNewServer(_x) {
|
|
@@ -50,62 +44,60 @@ function _addNewServer() {
|
|
|
50
44
|
_addNewServer = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(config) {
|
|
51
45
|
var addServer, name, url, key;
|
|
52
46
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
53
|
-
while (1) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
_context2.next = 21;
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
_context2.next = 3;
|
|
61
|
-
return _inquirer["default"].prompt({
|
|
62
|
-
name: 'add-server',
|
|
63
|
-
type: 'confirm',
|
|
64
|
-
message: 'Do you want to add a server?',
|
|
65
|
-
"default": false
|
|
66
|
-
});
|
|
67
|
-
case 3:
|
|
68
|
-
addServer = _context2.sent['add-server'];
|
|
69
|
-
if (!addServer) {
|
|
70
|
-
_context2.next = 18;
|
|
71
|
-
break;
|
|
72
|
-
}
|
|
73
|
-
_context2.next = 7;
|
|
74
|
-
return _inquirer["default"].prompt({
|
|
75
|
-
name: 'server-name',
|
|
76
|
-
type: 'input',
|
|
77
|
-
message: 'Enter a name:'
|
|
78
|
-
});
|
|
79
|
-
case 7:
|
|
80
|
-
name = _context2.sent['server-name'];
|
|
81
|
-
_context2.next = 10;
|
|
82
|
-
return _inquirer["default"].prompt({
|
|
83
|
-
name: 'server-url',
|
|
84
|
-
type: 'input',
|
|
85
|
-
message: 'Enter a URL:'
|
|
86
|
-
});
|
|
87
|
-
case 10:
|
|
88
|
-
url = _context2.sent['server-url'];
|
|
89
|
-
_context2.next = 13;
|
|
90
|
-
return _inquirer["default"].prompt(generateKeyQ(name, url));
|
|
91
|
-
case 13:
|
|
92
|
-
_context2.t0 = name;
|
|
93
|
-
key = _context2.sent[_context2.t0];
|
|
94
|
-
config.servers[name] = {
|
|
95
|
-
url: url,
|
|
96
|
-
key: key
|
|
97
|
-
};
|
|
98
|
-
_context2.next = 19;
|
|
47
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
48
|
+
case 0:
|
|
49
|
+
if (!true) {
|
|
50
|
+
_context2.next = 21;
|
|
99
51
|
break;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
52
|
+
}
|
|
53
|
+
_context2.next = 3;
|
|
54
|
+
return _inquirer["default"].prompt({
|
|
55
|
+
name: 'add-server',
|
|
56
|
+
type: 'confirm',
|
|
57
|
+
message: 'Do you want to add a server?',
|
|
58
|
+
"default": false
|
|
59
|
+
});
|
|
60
|
+
case 3:
|
|
61
|
+
addServer = _context2.sent['add-server'];
|
|
62
|
+
if (!addServer) {
|
|
63
|
+
_context2.next = 18;
|
|
104
64
|
break;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
65
|
+
}
|
|
66
|
+
_context2.next = 7;
|
|
67
|
+
return _inquirer["default"].prompt({
|
|
68
|
+
name: 'server-name',
|
|
69
|
+
type: 'input',
|
|
70
|
+
message: 'Enter a name:'
|
|
71
|
+
});
|
|
72
|
+
case 7:
|
|
73
|
+
name = _context2.sent['server-name'];
|
|
74
|
+
_context2.next = 10;
|
|
75
|
+
return _inquirer["default"].prompt({
|
|
76
|
+
name: 'server-url',
|
|
77
|
+
type: 'input',
|
|
78
|
+
message: 'Enter a URL:'
|
|
79
|
+
});
|
|
80
|
+
case 10:
|
|
81
|
+
url = _context2.sent['server-url'];
|
|
82
|
+
_context2.next = 13;
|
|
83
|
+
return _inquirer["default"].prompt(generateKeyQ(name, url));
|
|
84
|
+
case 13:
|
|
85
|
+
_context2.t0 = name;
|
|
86
|
+
key = _context2.sent[_context2.t0];
|
|
87
|
+
config.servers[name] = {
|
|
88
|
+
url: url,
|
|
89
|
+
key: key
|
|
90
|
+
};
|
|
91
|
+
_context2.next = 19;
|
|
92
|
+
break;
|
|
93
|
+
case 18:
|
|
94
|
+
return _context2.abrupt("break", 21);
|
|
95
|
+
case 19:
|
|
96
|
+
_context2.next = 0;
|
|
97
|
+
break;
|
|
98
|
+
case 21:
|
|
99
|
+
case "end":
|
|
100
|
+
return _context2.stop();
|
|
109
101
|
}
|
|
110
102
|
}, _callee2);
|
|
111
103
|
}));
|
|
@@ -116,12 +108,8 @@ function config(args) {
|
|
|
116
108
|
var interactiveMode = args['_'].length === 1 && (nOptions < 1 || nOptions === 1 && args.reset);
|
|
117
109
|
var hasAddServerCommand = args['_'].length === 2 && args['_'][1] === 'add' && args.server && args.key && args.k && args.alias && (nOptions === 4 || nOptions === 5 && args["default"]);
|
|
118
110
|
if (!interactiveMode && !hasAddServerCommand) return false;
|
|
119
|
-
if (!_fs["default"].existsSync(grokDir))
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
if (!_fs["default"].existsSync(confPath) || args.reset) {
|
|
123
|
-
_fs["default"].writeFileSync(confPath, _jsYaml["default"].dump(confTemplate));
|
|
124
|
-
}
|
|
111
|
+
if (!_fs["default"].existsSync(grokDir)) _fs["default"].mkdirSync(grokDir);
|
|
112
|
+
if (!_fs["default"].existsSync(confPath) || args.reset) _fs["default"].writeFileSync(confPath, _jsYaml["default"].dump(confTemplate));
|
|
125
113
|
var config = _jsYaml["default"].load(_fs["default"].readFileSync(confPath, {
|
|
126
114
|
encoding: 'utf-8'
|
|
127
115
|
}));
|
|
@@ -138,9 +126,7 @@ function config(args) {
|
|
|
138
126
|
};
|
|
139
127
|
color.success("Successfully added the server to ".concat(confPath, "."));
|
|
140
128
|
console.log("Use this command to deploy packages: grok publish ".concat(args.alias));
|
|
141
|
-
if (args["default"])
|
|
142
|
-
config["default"] = args.alias;
|
|
143
|
-
}
|
|
129
|
+
if (args["default"]) config["default"] = args.alias;
|
|
144
130
|
_fs["default"].writeFileSync(confPath, _jsYaml["default"].dump(config));
|
|
145
131
|
return true;
|
|
146
132
|
}
|
|
@@ -155,75 +141,69 @@ function config(args) {
|
|
|
155
141
|
(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
156
142
|
var answers, server, url, question, devKey, defaultServer;
|
|
157
143
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
158
|
-
while (1) {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
_context.next = 24;
|
|
173
|
-
break;
|
|
174
|
-
}
|
|
175
|
-
_context.t0 = _regenerator["default"].keys(config.servers);
|
|
176
|
-
case 6:
|
|
177
|
-
if ((_context.t1 = _context.t0()).done) {
|
|
178
|
-
_context.next = 17;
|
|
179
|
-
break;
|
|
180
|
-
}
|
|
181
|
-
server = _context.t1.value;
|
|
182
|
-
url = config['servers'][server]['url'];
|
|
183
|
-
question = generateKeyQ(server, url);
|
|
184
|
-
question["default"] = config['servers'][server]['key'];
|
|
185
|
-
_context.next = 13;
|
|
186
|
-
return _inquirer["default"].prompt(question);
|
|
187
|
-
case 13:
|
|
188
|
-
devKey = _context.sent;
|
|
189
|
-
config['servers'][server]['key'] = devKey[server];
|
|
190
|
-
_context.next = 6;
|
|
144
|
+
while (1) switch (_context.prev = _context.next) {
|
|
145
|
+
case 0:
|
|
146
|
+
_context.prev = 0;
|
|
147
|
+
_context.next = 3;
|
|
148
|
+
return _inquirer["default"].prompt({
|
|
149
|
+
name: 'edit-config',
|
|
150
|
+
type: 'confirm',
|
|
151
|
+
message: 'Do you want to edit it?',
|
|
152
|
+
"default": false
|
|
153
|
+
});
|
|
154
|
+
case 3:
|
|
155
|
+
answers = _context.sent;
|
|
156
|
+
if (!answers['edit-config']) {
|
|
157
|
+
_context.next = 24;
|
|
191
158
|
break;
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
_context.next =
|
|
197
|
-
return _inquirer["default"].prompt({
|
|
198
|
-
name: 'default-server',
|
|
199
|
-
type: 'input',
|
|
200
|
-
message: 'Your default server:',
|
|
201
|
-
validate: function validate(server) {
|
|
202
|
-
if (server in config.servers) {
|
|
203
|
-
return true;
|
|
204
|
-
} else {
|
|
205
|
-
return 'Only one of the specified servers may be chosen as default';
|
|
206
|
-
}
|
|
207
|
-
},
|
|
208
|
-
"default": config["default"]
|
|
209
|
-
});
|
|
210
|
-
case 21:
|
|
211
|
-
defaultServer = _context.sent;
|
|
212
|
-
config["default"] = defaultServer['default-server'];
|
|
213
|
-
_fs["default"].writeFileSync(confPath, _jsYaml["default"].dump(config));
|
|
214
|
-
case 24:
|
|
215
|
-
_context.next = 31;
|
|
159
|
+
}
|
|
160
|
+
_context.t0 = _regenerator["default"].keys(config.servers);
|
|
161
|
+
case 6:
|
|
162
|
+
if ((_context.t1 = _context.t0()).done) {
|
|
163
|
+
_context.next = 17;
|
|
216
164
|
break;
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
165
|
+
}
|
|
166
|
+
server = _context.t1.value;
|
|
167
|
+
url = config['servers'][server]['url'];
|
|
168
|
+
question = generateKeyQ(server, url);
|
|
169
|
+
question["default"] = config['servers'][server]['key'];
|
|
170
|
+
_context.next = 13;
|
|
171
|
+
return _inquirer["default"].prompt(question);
|
|
172
|
+
case 13:
|
|
173
|
+
devKey = _context.sent;
|
|
174
|
+
config['servers'][server]['key'] = devKey[server];
|
|
175
|
+
_context.next = 6;
|
|
176
|
+
break;
|
|
177
|
+
case 17:
|
|
178
|
+
_context.next = 19;
|
|
179
|
+
return addNewServer(config);
|
|
180
|
+
case 19:
|
|
181
|
+
_context.next = 21;
|
|
182
|
+
return _inquirer["default"].prompt({
|
|
183
|
+
name: 'default-server',
|
|
184
|
+
type: 'input',
|
|
185
|
+
message: 'Your default server:',
|
|
186
|
+
validate: function validate(server) {
|
|
187
|
+
if (server in config.servers) return true;else return 'Only one of the specified servers may be chosen as default';
|
|
188
|
+
},
|
|
189
|
+
"default": config["default"]
|
|
190
|
+
});
|
|
191
|
+
case 21:
|
|
192
|
+
defaultServer = _context.sent;
|
|
193
|
+
config["default"] = defaultServer['default-server'];
|
|
194
|
+
_fs["default"].writeFileSync(confPath, _jsYaml["default"].dump(config));
|
|
195
|
+
case 24:
|
|
196
|
+
_context.next = 31;
|
|
197
|
+
break;
|
|
198
|
+
case 26:
|
|
199
|
+
_context.prev = 26;
|
|
200
|
+
_context.t2 = _context["catch"](0);
|
|
201
|
+
color.error('The file is corrupted. Please run `grok config --reset` to restore the default template');
|
|
202
|
+
console.error(_context.t2);
|
|
203
|
+
return _context.abrupt("return", false);
|
|
204
|
+
case 31:
|
|
205
|
+
case "end":
|
|
206
|
+
return _context.stop();
|
|
227
207
|
}
|
|
228
208
|
}, _callee, null, [[0, 26]]);
|
|
229
209
|
}))();
|
package/bin/commands/create.js
CHANGED
|
@@ -16,8 +16,8 @@ var _entHelpers = require("../utils/ent-helpers");
|
|
|
16
16
|
var utils = _interopRequireWildcard(require("../utils/utils"));
|
|
17
17
|
var color = _interopRequireWildcard(require("../utils/color-utils"));
|
|
18
18
|
var _configValidator = require("../validators/config-validator");
|
|
19
|
-
function _getRequireWildcardCache(
|
|
20
|
-
function _interopRequireWildcard(
|
|
19
|
+
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); }
|
|
20
|
+
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; }
|
|
21
21
|
var platform = _os["default"].platform();
|
|
22
22
|
var curDir = process.cwd();
|
|
23
23
|
var curFolder = _path["default"].basename(curDir);
|
|
@@ -49,6 +49,7 @@ function createDirectoryContents(name, config, templateDir, packageDir) {
|
|
|
49
49
|
contents = contents.replace(/#{PACKAGE_DETECTORS_NAME}/g, utils.kebabToCamelCase(name));
|
|
50
50
|
contents = contents.replace(/#{PACKAGE_NAME_LOWERCASE}/g, name.toLowerCase());
|
|
51
51
|
contents = contents.replace(/#{PACKAGE_NAME_LOWERCASE_WORD}/g, name.replace(/-/g, '').toLowerCase());
|
|
52
|
+
// eslint-disable-next-line new-cap
|
|
52
53
|
contents = utils.replacers['PACKAGE_NAMESPACE'](contents, name);
|
|
53
54
|
contents = contents.replace(/#{GROK_HOST_ALIAS}/g, config["default"]);
|
|
54
55
|
contents = contents.replace(/#{GROK_HOST}/g, /localhost|127\.0\.0\.1/.test(config['servers'][config["default"]]['url']) ? 'http://localhost:63343/login.html' : new URL(config['servers'][config["default"]]['url']).origin);
|
|
@@ -113,9 +114,7 @@ function createDirectoryContents(name, config, templateDir, packageDir) {
|
|
|
113
114
|
copyFilePath = _path["default"].join(packageDir, '.gitignore');
|
|
114
115
|
if (ts) contents += '\n# Emitted *.js files\nsrc/**/*.js\n';
|
|
115
116
|
}
|
|
116
|
-
if (file === 'npmignore')
|
|
117
|
-
copyFilePath = _path["default"].join(packageDir, '.npmignore');
|
|
118
|
-
}
|
|
117
|
+
if (file === 'npmignore') copyFilePath = _path["default"].join(packageDir, '.npmignore');
|
|
119
118
|
_fs["default"].writeFileSync(copyFilePath, contents, 'utf8');
|
|
120
119
|
} else if (stats.isDirectory()) {
|
|
121
120
|
if (file === '.vscode' && !(ide == 'vscode' && platform == 'win32')) return;
|
|
@@ -154,9 +153,7 @@ function create(args) {
|
|
|
154
153
|
var repositoryInfo = null;
|
|
155
154
|
if (curFolder !== name) {
|
|
156
155
|
packageDir = _path["default"].join(packageDir, name);
|
|
157
|
-
if (!_fs["default"].existsSync(packageDir))
|
|
158
|
-
_fs["default"].mkdirSync(packageDir);
|
|
159
|
-
}
|
|
156
|
+
if (!_fs["default"].existsSync(packageDir)) _fs["default"].mkdirSync(packageDir);
|
|
160
157
|
}
|
|
161
158
|
if (!utils.isEmpty(packageDir)) {
|
|
162
159
|
console.log();
|
|
@@ -204,8 +201,6 @@ function create(args) {
|
|
|
204
201
|
}, function (err, stdout, stderr) {
|
|
205
202
|
if (err) throw err;else console.log(stderr, stdout);
|
|
206
203
|
});
|
|
207
|
-
} else
|
|
208
|
-
color.error('Package name may only include letters, numbers, underscores, or hyphens');
|
|
209
|
-
}
|
|
204
|
+
} else color.error('Package name may only include letters, numbers, underscores, or hyphens');
|
|
210
205
|
return true;
|
|
211
206
|
}
|
package/bin/commands/help.js
CHANGED
|
@@ -12,10 +12,17 @@ var HELP_CONFIG = "\nUsage: grok config\n\nCreate or update a configuration file
|
|
|
12
12
|
var HELP_CREATE = "\nUsage: grok create [name]\n\nCreate a package:\n\ngrok create Create a package in the current working directory\ngrok create <name> Create a package in a folder with the specified name\n\nPlease note that the package name may only include letters, numbers, underscores, or hyphens\n\nOptions:\n[--eslint] [--ide] [--js | --ts] [--test]\n\n--eslint Add a configuration for eslint\n--ide Add an IDE-specific configuration for debugging (vscode)\n--js Create a JavaScript package\n--ts Create a TypeScript package (default)\n--test Add tests support (TypeScript packages only)\n";
|
|
13
13
|
var HELP_PUBLISH = "\nUsage: grok publish [host]\n\nUpload a package\n\nOptions:\n[--build|--rebuild] [--debug|--release] [-k | --key] [--suffix]\n\nRunning `grok publish` is the same as running `grok publish defaultHost --build --debug`\n";
|
|
14
14
|
var HELP_CHECK = "\nUsage: grok check\n\nOptions:\n[-r | --recursive]\n\n--recursive Check all packages in the current directory\n\nCheck package content (function signatures, import statements of external modules, etc.)\n";
|
|
15
|
-
var HELP_TEST = "\nUsage: grok test\n\nOptions:\n[--category] [--host] [--csv] [--gui] [--skip-build] [--skip-publish] [--catchUnhandled] [--report]\n\n--category Specify a category name to run tests for\n--host Host alias as in the config file\n--csv Save the test report in a CSV file\n--gui Launch graphical interface (non-headless mode)\n--catchUnhandled Catch unhandled exceptions during test execution (default=true)\n--report Report failed tests to audit, notifies package author (default=false)\n--skip-build Skip the package build step\n--skip-publish Skip the package publication step\n\nRun package tests\n\nSee instructions:\nhttps://datagrok.ai/help/develop/how-to/test-packages#local-testing\n";
|
|
15
|
+
var HELP_TEST = "\nUsage: grok test\n\nOptions:\n[--category] [--host] [--csv] [--gui] [--skip-build] [--skip-publish] [--catchUnhandled] [--report] [--record] [--verbose] [--platform]\n\n--category Specify a category name to run tests for\n--host Host alias as in the config file\n--csv Save the test report in a CSV file\n--gui Launch graphical interface (non-headless mode)\n--catchUnhandled Catch unhandled exceptions during test execution (default=true)\n--report Report failed tests to audit, notifies package author (default=false)\n--skip-build Skip the package build step\n--skip-publish Skip the package publication step\n--record Records the test execution process in mp4 format\n--verbose Prints detailed information about passed and skipped tests in the console\n--platform Runs only platform tests (applicable only for ApiTests package)\n\nRun package tests\n\nSee instructions:\nhttps://datagrok.ai/help/develop/how-to/test-packages#local-testing\n";
|
|
16
16
|
var HELP_LINK = "\nUsage: grok link\n\nLink `datagrok-api` and libraries for local development\n\nOptions:\n[--local | --npm]\n\n--local Default. Links libraries and updates package scripts (\"link-all\", \"build-all\")\n--npm Unlinks local packages and runs `npm i`\n";
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
|
|
18
|
+
// const HELP_MIGRATE = `
|
|
19
|
+
// Usage: grok migrate
|
|
20
|
+
|
|
21
|
+
// Switch to \`grok\` tools by copying your keys to the config
|
|
22
|
+
// file and converting your scripts in the \`package.json\` file
|
|
23
|
+
// `;
|
|
24
|
+
|
|
25
|
+
var help = exports.help = {
|
|
19
26
|
add: HELP_ADD,
|
|
20
27
|
api: HELP_API,
|
|
21
28
|
check: HELP_CHECK,
|
|
@@ -26,5 +33,4 @@ var help = {
|
|
|
26
33
|
publish: HELP_PUBLISH,
|
|
27
34
|
test: HELP_TEST,
|
|
28
35
|
help: HELP
|
|
29
|
-
};
|
|
30
|
-
exports.help = help;
|
|
36
|
+
};
|
package/bin/commands/init.js
CHANGED
|
@@ -14,11 +14,11 @@ var _child_process = require("child_process");
|
|
|
14
14
|
var utils = _interopRequireWildcard(require("../utils/utils"));
|
|
15
15
|
var color = _interopRequireWildcard(require("../utils/color-utils"));
|
|
16
16
|
var _configValidator = require("../validators/config-validator");
|
|
17
|
-
function _getRequireWildcardCache(
|
|
18
|
-
function _interopRequireWildcard(
|
|
17
|
+
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); }
|
|
18
|
+
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; }
|
|
19
19
|
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; } } }; }
|
|
20
20
|
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); }
|
|
21
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++)
|
|
21
|
+
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; }
|
|
22
22
|
var curDir = process.cwd();
|
|
23
23
|
var platform = _os["default"].platform();
|
|
24
24
|
var grokDir = _path["default"].join(_os["default"].homedir(), '.grok');
|
|
@@ -91,10 +91,12 @@ function init(args) {
|
|
|
91
91
|
'ts-loader': 'latest',
|
|
92
92
|
'typescript': 'latest'
|
|
93
93
|
});
|
|
94
|
-
if ('eslint' in packageData.devDependencies)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
94
|
+
if ('eslint' in packageData.devDependencies) {
|
|
95
|
+
Object.assign(packageData.devDependencies, {
|
|
96
|
+
'@typescript-eslint/eslint-plugin': 'latest',
|
|
97
|
+
'@typescript-eslint/parser': 'latest'
|
|
98
|
+
});
|
|
99
|
+
}
|
|
98
100
|
_fs["default"].writeFileSync(packageJsonPath, JSON.stringify(packageData, null, 2), 'utf-8');
|
|
99
101
|
color.success('TypeScript support has been added.');
|
|
100
102
|
}
|
|
@@ -163,16 +165,12 @@ function init(args) {
|
|
|
163
165
|
}
|
|
164
166
|
if (args.test) {
|
|
165
167
|
var tsPath = _path["default"].join(curDir, 'src', 'package.ts');
|
|
166
|
-
if (!_fs["default"].existsSync(tsPath)) {
|
|
167
|
-
color.warn('Tests can only be added to TypeScript packages. Skipping `test`...');
|
|
168
|
-
} else if (!_fs["default"].existsSync(webpackConfigPath)) {
|
|
169
|
-
color.warn('Webpack configuration not found. Skipping `test`...');
|
|
170
|
-
} else {
|
|
168
|
+
if (!_fs["default"].existsSync(tsPath)) color.warn('Tests can only be added to TypeScript packages. Skipping `test`...');else if (!_fs["default"].existsSync(webpackConfigPath)) color.warn('Webpack configuration not found. Skipping `test`...');else {
|
|
171
169
|
var _config = _fs["default"].readFileSync(webpackConfigPath, 'utf-8');
|
|
172
170
|
if (!/(?<=entry:\s*{\s*(\r\n|\r|\n))[^}]*test:/.test(_config)) {
|
|
173
171
|
var entryIdx = _config.search(/(?<=entry:\s*{\s*(\r\n|\r|\n)).*/);
|
|
174
172
|
if (entryIdx === -1) color.error('Entry point not found during webpack config parsing');else {
|
|
175
|
-
var testEntry =
|
|
173
|
+
var testEntry = ' test: {filename: \'package-test.js\', library: ' + '{type: \'var\', name:`${packageName}_test`}, import: \'./src/package-test.ts\'},';
|
|
176
174
|
_fs["default"].writeFileSync(webpackConfigPath, _config.slice(0, entryIdx) + testEntry + _config.slice(entryIdx), 'utf-8');
|
|
177
175
|
}
|
|
178
176
|
}
|
package/bin/commands/link.js
CHANGED
|
@@ -12,17 +12,16 @@ var _path = _interopRequireDefault(require("path"));
|
|
|
12
12
|
var _child_process = require("child_process");
|
|
13
13
|
var utils = _interopRequireWildcard(require("../utils/utils"));
|
|
14
14
|
var color = _interopRequireWildcard(require("../utils/color-utils"));
|
|
15
|
-
var
|
|
16
|
-
function
|
|
17
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
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; }
|
|
18
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; } } }; }
|
|
19
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); }
|
|
20
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++)
|
|
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 */
|
|
21
20
|
var curDir = process.cwd();
|
|
22
21
|
var repositoryDir = _path["default"].dirname(_path["default"].dirname(curDir));
|
|
23
22
|
var apiPackageName = 'datagrok-api';
|
|
24
23
|
var libScope = '@datagrok-libraries';
|
|
25
|
-
var paths = (
|
|
24
|
+
var paths = (0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, apiPackageName, _path["default"].join(repositoryDir, 'js-api')), libScope, _path["default"].join(repositoryDir, 'libraries'));
|
|
26
25
|
var packageDependencies = {};
|
|
27
26
|
|
|
28
27
|
/** Links local packages. */
|
|
@@ -135,7 +134,7 @@ function runScript(packageDir, script, dependencies) {
|
|
|
135
134
|
if (options.callback) options.callback(packageDir);
|
|
136
135
|
if (err) throw err;else {
|
|
137
136
|
console.log(stderr, stdout);
|
|
138
|
-
var _loop = function _loop(
|
|
137
|
+
var _loop = function _loop() {
|
|
139
138
|
var depPath = getPackagePath(dep);
|
|
140
139
|
(0, _child_process.exec)(script, {
|
|
141
140
|
cwd: depPath
|
|
@@ -146,7 +145,7 @@ function runScript(packageDir, script, dependencies) {
|
|
|
146
145
|
});
|
|
147
146
|
};
|
|
148
147
|
for (var dep in dependencies) {
|
|
149
|
-
_loop(
|
|
148
|
+
_loop();
|
|
150
149
|
}
|
|
151
150
|
// if (options.successMessage)
|
|
152
151
|
// setTimeout(() => color.success(options.successMessage!), 5000);
|