datagrok-tools 4.8.4 → 4.10.0
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/README.md +1 -1
- package/bin/commands/add.js +48 -140
- package/bin/commands/api.js +5 -61
- package/bin/commands/check.js +43 -154
- package/bin/commands/config.js +0 -60
- package/bin/commands/create.js +11 -71
- package/bin/commands/help.js +2 -4
- package/bin/commands/init.js +2 -81
- package/bin/commands/link.js +127 -172
- package/bin/commands/publish.js +14 -87
- package/bin/commands/test.js +2 -57
- package/bin/grok.js +0 -1
- package/bin/utils/color-utils.js +0 -6
- package/bin/utils/ent-helpers.js +2 -13
- package/bin/utils/func-generation.js +189 -0
- package/bin/utils/test-utils.js +7 -61
- package/bin/utils/utils.js +1 -48
- package/bin/validators/config-validator.js +2 -15
- package/package-template/.eslintrc.json +1 -1
- package/package-template/ts.webpack.config.js +4 -0
- package/package-template/tsconfig.json +3 -3
- package/package.json +6 -3
- package/plugins/func-gen-plugin.js +144 -0
- package/tsconfig.json +2 -2
- package/bin/validators/interfaces.js +0 -1
package/bin/commands/config.js
CHANGED
|
@@ -1,46 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.config = config;
|
|
11
|
-
|
|
12
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
13
|
-
|
|
14
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
-
|
|
16
11
|
var _fs = _interopRequireDefault(require("fs"));
|
|
17
|
-
|
|
18
12
|
var _inquirer = _interopRequireDefault(require("inquirer"));
|
|
19
|
-
|
|
20
13
|
var _os = _interopRequireDefault(require("os"));
|
|
21
|
-
|
|
22
14
|
var _path = _interopRequireDefault(require("path"));
|
|
23
|
-
|
|
24
15
|
var _jsYaml = _interopRequireDefault(require("js-yaml"));
|
|
25
|
-
|
|
26
16
|
var _configValidator = require("../validators/config-validator");
|
|
27
|
-
|
|
28
17
|
var color = _interopRequireWildcard(require("../utils/color-utils"));
|
|
29
|
-
|
|
30
18
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
|
-
|
|
32
19
|
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; }
|
|
33
|
-
|
|
34
20
|
var confTemplateDir = _path["default"].join(_path["default"].dirname(_path["default"].dirname(__dirname)), 'config-template.yaml');
|
|
35
|
-
|
|
36
21
|
var confTemplate = _jsYaml["default"].load(_fs["default"].readFileSync(confTemplateDir, {
|
|
37
22
|
encoding: 'utf-8'
|
|
38
23
|
}));
|
|
39
|
-
|
|
40
24
|
var grokDir = _path["default"].join(_os["default"].homedir(), '.grok');
|
|
41
|
-
|
|
42
25
|
var confPath = _path["default"].join(grokDir, 'config.yaml');
|
|
43
|
-
|
|
44
26
|
function validateKey(key) {
|
|
45
27
|
if (!key || /^([A-Za-z\d-])+$/.test(key)) {
|
|
46
28
|
return true;
|
|
@@ -48,7 +30,6 @@ function validateKey(key) {
|
|
|
48
30
|
return 'Developer key may only include letters, numbers, or hyphens';
|
|
49
31
|
}
|
|
50
32
|
}
|
|
51
|
-
|
|
52
33
|
function generateKeyQ(server, url) {
|
|
53
34
|
var origin = new URL(url).origin;
|
|
54
35
|
var question = {
|
|
@@ -57,18 +38,14 @@ function generateKeyQ(server, url) {
|
|
|
57
38
|
message: "Developer key (get it from ".concat(origin, "/u or press ENTER to skip):"),
|
|
58
39
|
validate: validateKey
|
|
59
40
|
};
|
|
60
|
-
|
|
61
41
|
if (server.startsWith('local')) {
|
|
62
42
|
question.message = "Developer key for ".concat(origin, " (press ENTER to skip):");
|
|
63
43
|
}
|
|
64
|
-
|
|
65
44
|
return question;
|
|
66
45
|
}
|
|
67
|
-
|
|
68
46
|
function addNewServer(_x) {
|
|
69
47
|
return _addNewServer.apply(this, arguments);
|
|
70
48
|
}
|
|
71
|
-
|
|
72
49
|
function _addNewServer() {
|
|
73
50
|
_addNewServer = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(config) {
|
|
74
51
|
var addServer, name, url, key;
|
|
@@ -80,7 +57,6 @@ function _addNewServer() {
|
|
|
80
57
|
_context2.next = 21;
|
|
81
58
|
break;
|
|
82
59
|
}
|
|
83
|
-
|
|
84
60
|
_context2.next = 3;
|
|
85
61
|
return _inquirer["default"].prompt({
|
|
86
62
|
name: 'add-server',
|
|
@@ -88,22 +64,18 @@ function _addNewServer() {
|
|
|
88
64
|
message: 'Do you want to add a server?',
|
|
89
65
|
"default": false
|
|
90
66
|
});
|
|
91
|
-
|
|
92
67
|
case 3:
|
|
93
68
|
addServer = _context2.sent['add-server'];
|
|
94
|
-
|
|
95
69
|
if (!addServer) {
|
|
96
70
|
_context2.next = 18;
|
|
97
71
|
break;
|
|
98
72
|
}
|
|
99
|
-
|
|
100
73
|
_context2.next = 7;
|
|
101
74
|
return _inquirer["default"].prompt({
|
|
102
75
|
name: 'server-name',
|
|
103
76
|
type: 'input',
|
|
104
77
|
message: 'Enter a name:'
|
|
105
78
|
});
|
|
106
|
-
|
|
107
79
|
case 7:
|
|
108
80
|
name = _context2.sent['server-name'];
|
|
109
81
|
_context2.next = 10;
|
|
@@ -112,12 +84,10 @@ function _addNewServer() {
|
|
|
112
84
|
type: 'input',
|
|
113
85
|
message: 'Enter a URL:'
|
|
114
86
|
});
|
|
115
|
-
|
|
116
87
|
case 10:
|
|
117
88
|
url = _context2.sent['server-url'];
|
|
118
89
|
_context2.next = 13;
|
|
119
90
|
return _inquirer["default"].prompt(generateKeyQ(name, url));
|
|
120
|
-
|
|
121
91
|
case 13:
|
|
122
92
|
_context2.t0 = name;
|
|
123
93
|
key = _context2.sent[_context2.t0];
|
|
@@ -127,14 +97,11 @@ function _addNewServer() {
|
|
|
127
97
|
};
|
|
128
98
|
_context2.next = 19;
|
|
129
99
|
break;
|
|
130
|
-
|
|
131
100
|
case 18:
|
|
132
101
|
return _context2.abrupt("break", 21);
|
|
133
|
-
|
|
134
102
|
case 19:
|
|
135
103
|
_context2.next = 0;
|
|
136
104
|
break;
|
|
137
|
-
|
|
138
105
|
case 21:
|
|
139
106
|
case "end":
|
|
140
107
|
return _context2.stop();
|
|
@@ -144,25 +111,20 @@ function _addNewServer() {
|
|
|
144
111
|
}));
|
|
145
112
|
return _addNewServer.apply(this, arguments);
|
|
146
113
|
}
|
|
147
|
-
|
|
148
114
|
function config(args) {
|
|
149
115
|
var nOptions = Object.keys(args).length - 1;
|
|
150
116
|
var interactiveMode = args['_'].length === 1 && (nOptions < 1 || nOptions === 1 && args.reset);
|
|
151
117
|
var hasAddServerCommand = args['_'].length === 2 && args['_'][1] === 'add' && args.server && args.key && args.k && args.alias && (nOptions === 4 || nOptions === 5 && args["default"]);
|
|
152
118
|
if (!interactiveMode && !hasAddServerCommand) return false;
|
|
153
|
-
|
|
154
119
|
if (!_fs["default"].existsSync(grokDir)) {
|
|
155
120
|
_fs["default"].mkdirSync(grokDir);
|
|
156
121
|
}
|
|
157
|
-
|
|
158
122
|
if (!_fs["default"].existsSync(confPath) || args.reset) {
|
|
159
123
|
_fs["default"].writeFileSync(confPath, _jsYaml["default"].dump(confTemplate));
|
|
160
124
|
}
|
|
161
|
-
|
|
162
125
|
var config = _jsYaml["default"].load(_fs["default"].readFileSync(confPath, {
|
|
163
126
|
encoding: 'utf-8'
|
|
164
127
|
}));
|
|
165
|
-
|
|
166
128
|
if (hasAddServerCommand) {
|
|
167
129
|
try {
|
|
168
130
|
new URL(args.server);
|
|
@@ -170,32 +132,25 @@ function config(args) {
|
|
|
170
132
|
color.error('URL parsing error. Please, provide a valid server URL.');
|
|
171
133
|
return false;
|
|
172
134
|
}
|
|
173
|
-
|
|
174
135
|
config.servers[args.alias] = {
|
|
175
136
|
url: args.server,
|
|
176
137
|
key: args.key
|
|
177
138
|
};
|
|
178
139
|
color.success("Successfully added the server to ".concat(confPath, "."));
|
|
179
140
|
console.log("Use this command to deploy packages: grok publish ".concat(args.alias));
|
|
180
|
-
|
|
181
141
|
if (args["default"]) {
|
|
182
142
|
config["default"] = args.alias;
|
|
183
143
|
}
|
|
184
|
-
|
|
185
144
|
_fs["default"].writeFileSync(confPath, _jsYaml["default"].dump(config));
|
|
186
|
-
|
|
187
145
|
return true;
|
|
188
146
|
}
|
|
189
|
-
|
|
190
147
|
console.log("Your config file (".concat(confPath, "):"));
|
|
191
148
|
console.log(config);
|
|
192
149
|
var valRes = (0, _configValidator.validateConf)(config);
|
|
193
|
-
|
|
194
150
|
if (!config || !valRes.value) {
|
|
195
151
|
color.error(valRes.message);
|
|
196
152
|
return false;
|
|
197
153
|
}
|
|
198
|
-
|
|
199
154
|
if (valRes.warnings.length) color.warn(valRes.warnings.join('\n'));
|
|
200
155
|
(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
201
156
|
var answers, server, url, question, devKey, defaultServer;
|
|
@@ -211,40 +166,32 @@ function config(args) {
|
|
|
211
166
|
message: 'Do you want to edit it?',
|
|
212
167
|
"default": false
|
|
213
168
|
});
|
|
214
|
-
|
|
215
169
|
case 3:
|
|
216
170
|
answers = _context.sent;
|
|
217
|
-
|
|
218
171
|
if (!answers['edit-config']) {
|
|
219
172
|
_context.next = 24;
|
|
220
173
|
break;
|
|
221
174
|
}
|
|
222
|
-
|
|
223
175
|
_context.t0 = _regenerator["default"].keys(config.servers);
|
|
224
|
-
|
|
225
176
|
case 6:
|
|
226
177
|
if ((_context.t1 = _context.t0()).done) {
|
|
227
178
|
_context.next = 17;
|
|
228
179
|
break;
|
|
229
180
|
}
|
|
230
|
-
|
|
231
181
|
server = _context.t1.value;
|
|
232
182
|
url = config['servers'][server]['url'];
|
|
233
183
|
question = generateKeyQ(server, url);
|
|
234
184
|
question["default"] = config['servers'][server]['key'];
|
|
235
185
|
_context.next = 13;
|
|
236
186
|
return _inquirer["default"].prompt(question);
|
|
237
|
-
|
|
238
187
|
case 13:
|
|
239
188
|
devKey = _context.sent;
|
|
240
189
|
config['servers'][server]['key'] = devKey[server];
|
|
241
190
|
_context.next = 6;
|
|
242
191
|
break;
|
|
243
|
-
|
|
244
192
|
case 17:
|
|
245
193
|
_context.next = 19;
|
|
246
194
|
return addNewServer(config);
|
|
247
|
-
|
|
248
195
|
case 19:
|
|
249
196
|
_context.next = 21;
|
|
250
197
|
return _inquirer["default"].prompt({
|
|
@@ -260,24 +207,19 @@ function config(args) {
|
|
|
260
207
|
},
|
|
261
208
|
"default": config["default"]
|
|
262
209
|
});
|
|
263
|
-
|
|
264
210
|
case 21:
|
|
265
211
|
defaultServer = _context.sent;
|
|
266
212
|
config["default"] = defaultServer['default-server'];
|
|
267
|
-
|
|
268
213
|
_fs["default"].writeFileSync(confPath, _jsYaml["default"].dump(config));
|
|
269
|
-
|
|
270
214
|
case 24:
|
|
271
215
|
_context.next = 31;
|
|
272
216
|
break;
|
|
273
|
-
|
|
274
217
|
case 26:
|
|
275
218
|
_context.prev = 26;
|
|
276
219
|
_context.t2 = _context["catch"](0);
|
|
277
220
|
color.error('The file is corrupted. Please run `grok config --reset` to restore the default template');
|
|
278
221
|
console.error(_context.t2);
|
|
279
222
|
return _context.abrupt("return", false);
|
|
280
|
-
|
|
281
223
|
case 31:
|
|
282
224
|
case "end":
|
|
283
225
|
return _context.stop();
|
|
@@ -285,8 +227,6 @@ function config(args) {
|
|
|
285
227
|
}
|
|
286
228
|
}, _callee, null, [[0, 26]]);
|
|
287
229
|
}))();
|
|
288
|
-
|
|
289
230
|
_fs["default"].writeFileSync(confPath, _jsYaml["default"].dump(config));
|
|
290
|
-
|
|
291
231
|
return true;
|
|
292
232
|
}
|
package/bin/commands/create.js
CHANGED
|
@@ -1,82 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.create = create;
|
|
11
|
-
|
|
12
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
-
|
|
14
10
|
var _fs = _interopRequireDefault(require("fs"));
|
|
15
|
-
|
|
16
11
|
var _path = _interopRequireDefault(require("path"));
|
|
17
|
-
|
|
18
12
|
var _os = _interopRequireDefault(require("os"));
|
|
19
|
-
|
|
20
13
|
var _jsYaml = _interopRequireDefault(require("js-yaml"));
|
|
21
|
-
|
|
22
14
|
var _child_process = require("child_process");
|
|
23
|
-
|
|
24
15
|
var _entHelpers = require("../utils/ent-helpers");
|
|
25
|
-
|
|
26
16
|
var utils = _interopRequireWildcard(require("../utils/utils"));
|
|
27
|
-
|
|
28
17
|
var color = _interopRequireWildcard(require("../utils/color-utils"));
|
|
29
|
-
|
|
30
18
|
var _configValidator = require("../validators/config-validator");
|
|
31
|
-
|
|
32
19
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
|
-
|
|
34
20
|
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; }
|
|
35
|
-
|
|
36
21
|
var platform = _os["default"].platform();
|
|
37
|
-
|
|
38
22
|
var curDir = process.cwd();
|
|
39
|
-
|
|
40
23
|
var curFolder = _path["default"].basename(curDir);
|
|
41
|
-
|
|
42
24
|
var grokDir = _path["default"].join(_os["default"].homedir(), '.grok');
|
|
43
|
-
|
|
44
25
|
var confPath = _path["default"].join(grokDir, 'config.yaml');
|
|
45
|
-
|
|
46
26
|
var templateDir = _path["default"].join(_path["default"].dirname(_path["default"].dirname(__dirname)), 'package-template');
|
|
47
|
-
|
|
48
27
|
var confTemplateDir = _path["default"].join(_path["default"].dirname(_path["default"].dirname(__dirname)), 'config-template.yaml');
|
|
49
|
-
|
|
50
28
|
var confTemplate = _jsYaml["default"].load(_fs["default"].readFileSync(confTemplateDir, {
|
|
51
29
|
encoding: 'utf-8'
|
|
52
30
|
}));
|
|
53
|
-
|
|
54
31
|
var dependencies = [];
|
|
55
|
-
|
|
56
32
|
function createDirectoryContents(name, config, templateDir, packageDir) {
|
|
57
33
|
var ide = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '';
|
|
58
34
|
var ts = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
|
|
59
35
|
var eslint = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
|
|
60
36
|
var test = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;
|
|
61
|
-
|
|
62
37
|
var filesToCreate = _fs["default"].readdirSync(templateDir);
|
|
63
|
-
|
|
64
38
|
filesToCreate.forEach(function (file) {
|
|
65
39
|
var origFilePath = _path["default"].join(templateDir, file);
|
|
66
|
-
|
|
67
40
|
var copyFilePath = _path["default"].join(packageDir, file);
|
|
68
|
-
|
|
69
41
|
var stats = _fs["default"].statSync(origFilePath);
|
|
70
|
-
|
|
71
42
|
if (stats.isFile()) {
|
|
72
43
|
if (file === 'package.png') {
|
|
73
44
|
_fs["default"].writeFileSync(copyFilePath, _fs["default"].readFileSync(origFilePath, 'base64'), 'base64');
|
|
74
|
-
|
|
75
45
|
return false;
|
|
76
46
|
}
|
|
77
|
-
|
|
78
47
|
var contents = _fs["default"].readFileSync(file === 'webpack.config.js' && ts ? _path["default"].join(templateDir, 'ts.webpack.config.js') : origFilePath, 'utf8');
|
|
79
|
-
|
|
80
48
|
contents = contents.replace(/#{PACKAGE_NAME}/g, name);
|
|
81
49
|
contents = contents.replace(/#{PACKAGE_DETECTORS_NAME}/g, utils.kebabToCamelCase(name));
|
|
82
50
|
contents = contents.replace(/#{PACKAGE_NAME_LOWERCASE}/g, name.toLowerCase());
|
|
@@ -84,22 +52,18 @@ function createDirectoryContents(name, config, templateDir, packageDir) {
|
|
|
84
52
|
contents = utils.replacers['PACKAGE_NAMESPACE'](contents, name);
|
|
85
53
|
contents = contents.replace(/#{GROK_HOST_ALIAS}/g, config["default"]);
|
|
86
54
|
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);
|
|
87
|
-
|
|
88
55
|
if (file === 'package.json') {
|
|
89
56
|
// Generate scripts for non-default servers from `config.yaml`
|
|
90
57
|
var _package = JSON.parse(contents);
|
|
91
|
-
|
|
92
58
|
for (var server in config.servers) {
|
|
93
59
|
if (server === config["default"]) continue;
|
|
94
60
|
_package['scripts']["debug-".concat(name.toLowerCase(), "-").concat(server)] = "webpack && grok publish ".concat(server);
|
|
95
61
|
_package['scripts']["release-".concat(name.toLowerCase(), "-").concat(server)] = "webpack && grok publish ".concat(server, " --release");
|
|
96
62
|
}
|
|
97
|
-
|
|
98
63
|
if (ts) Object.assign(_package.devDependencies, {
|
|
99
64
|
'ts-loader': 'latest',
|
|
100
65
|
'typescript': 'latest'
|
|
101
66
|
});
|
|
102
|
-
|
|
103
67
|
if (eslint) {
|
|
104
68
|
Object.assign(_package.devDependencies, {
|
|
105
69
|
'eslint': 'latest',
|
|
@@ -113,7 +77,6 @@ function createDirectoryContents(name, config, templateDir, packageDir) {
|
|
|
113
77
|
'lint-fix': "eslint src".concat(ts ? ' --ext .ts' : '', " --fix")
|
|
114
78
|
});
|
|
115
79
|
}
|
|
116
|
-
|
|
117
80
|
if (test) {
|
|
118
81
|
Object.assign(_package.dependencies, {
|
|
119
82
|
'@datagrok-libraries/utils': 'latest'
|
|
@@ -121,58 +84,47 @@ function createDirectoryContents(name, config, templateDir, packageDir) {
|
|
|
121
84
|
Object.assign(_package.scripts, {
|
|
122
85
|
'test': 'grok test'
|
|
123
86
|
});
|
|
124
|
-
}
|
|
125
|
-
|
|
87
|
+
}
|
|
126
88
|
|
|
89
|
+
// Save module names for installation prompt
|
|
127
90
|
for (var _i = 0, _Object$entries = Object.entries(Object.assign({}, _package.dependencies, _package.devDependencies)); _i < _Object$entries.length; _i++) {
|
|
128
91
|
var _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2),
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
92
|
+
module = _Object$entries$_i[0],
|
|
93
|
+
tag = _Object$entries$_i[1];
|
|
132
94
|
dependencies.push("".concat(module, "@").concat(tag));
|
|
133
95
|
}
|
|
134
|
-
|
|
135
|
-
contents = JSON.stringify(_package, null, '\t');
|
|
96
|
+
contents = JSON.stringify(_package, null, 2);
|
|
136
97
|
}
|
|
137
|
-
|
|
138
98
|
if (file === 'package.js' && ts) copyFilePath = _path["default"].join(packageDir, 'package.ts');
|
|
139
99
|
if (file === 'package-test.js' && ts) return false;
|
|
140
100
|
if (file === 'package-test.ts' && !ts) return false;
|
|
141
101
|
if (file === 'tsconfig.json' && !ts) return false;
|
|
142
102
|
if (file === 'ts.webpack.config.js') return false;
|
|
143
|
-
|
|
144
103
|
if (file === '.eslintrc.json') {
|
|
145
104
|
if (!eslint) return false;
|
|
146
|
-
|
|
147
105
|
if (ts) {
|
|
148
106
|
var eslintConf = JSON.parse(contents);
|
|
149
107
|
eslintConf.parser = '@typescript-eslint/parser';
|
|
150
108
|
eslintConf.plugins = ['@typescript-eslint'];
|
|
151
|
-
contents = JSON.stringify(eslintConf, null,
|
|
109
|
+
contents = JSON.stringify(eslintConf, null, 2);
|
|
152
110
|
}
|
|
153
111
|
}
|
|
154
|
-
|
|
155
112
|
if (file === 'gitignore') {
|
|
156
113
|
copyFilePath = _path["default"].join(packageDir, '.gitignore');
|
|
157
114
|
if (ts) contents += '\n# Emitted *.js files\nsrc/**/*.js\n';
|
|
158
115
|
}
|
|
159
|
-
|
|
160
116
|
if (file === 'npmignore') {
|
|
161
117
|
copyFilePath = _path["default"].join(packageDir, '.npmignore');
|
|
162
118
|
}
|
|
163
|
-
|
|
164
119
|
_fs["default"].writeFileSync(copyFilePath, contents, 'utf8');
|
|
165
120
|
} else if (stats.isDirectory()) {
|
|
166
121
|
if (file === '.vscode' && !(ide == 'vscode' && platform == 'win32')) return;
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
122
|
+
_fs["default"].mkdirSync(copyFilePath);
|
|
123
|
+
// recursive call
|
|
171
124
|
createDirectoryContents(name, config, origFilePath, copyFilePath, ide, ts, eslint, test);
|
|
172
125
|
}
|
|
173
126
|
});
|
|
174
127
|
}
|
|
175
|
-
|
|
176
128
|
function create(args) {
|
|
177
129
|
var options = ['ide', 'js', 'ts', 'eslint', 'test'];
|
|
178
130
|
var nOptions = Object.keys(args).length - 1;
|
|
@@ -182,43 +134,35 @@ function create(args) {
|
|
|
182
134
|
return options.includes(op);
|
|
183
135
|
})) return false;
|
|
184
136
|
if (args.js && args.ts) return color.error('Incompatible options: --js and --ts');
|
|
185
|
-
var ts = !args.js && args.ts !== false;
|
|
137
|
+
var ts = !args.js && args.ts !== false;
|
|
186
138
|
|
|
139
|
+
// Create `config.yaml` if it doesn't exist yet
|
|
187
140
|
if (!_fs["default"].existsSync(grokDir)) _fs["default"].mkdirSync(grokDir);
|
|
188
141
|
if (!_fs["default"].existsSync(confPath)) _fs["default"].writeFileSync(confPath, _jsYaml["default"].dump(confTemplate));
|
|
189
|
-
|
|
190
142
|
var config = _jsYaml["default"].load(_fs["default"].readFileSync(confPath, {
|
|
191
143
|
encoding: 'utf-8'
|
|
192
144
|
}));
|
|
193
|
-
|
|
194
145
|
var confTest = (0, _configValidator.validateConf)(config);
|
|
195
|
-
|
|
196
146
|
if (!confTest.value) {
|
|
197
147
|
color.error(confTest.message);
|
|
198
148
|
return false;
|
|
199
149
|
}
|
|
200
|
-
|
|
201
150
|
var name = nArgs === 2 ? args['_'][1] : curFolder;
|
|
202
151
|
var validName = /^([A-Za-z\-_\d])+$/.test(name);
|
|
203
|
-
|
|
204
152
|
if (validName) {
|
|
205
153
|
var packageDir = curDir;
|
|
206
154
|
var repositoryInfo = null;
|
|
207
|
-
|
|
208
155
|
if (curFolder !== name) {
|
|
209
156
|
packageDir = _path["default"].join(packageDir, name);
|
|
210
|
-
|
|
211
157
|
if (!_fs["default"].existsSync(packageDir)) {
|
|
212
158
|
_fs["default"].mkdirSync(packageDir);
|
|
213
159
|
}
|
|
214
160
|
}
|
|
215
|
-
|
|
216
161
|
if (!utils.isEmpty(packageDir)) {
|
|
217
162
|
console.log();
|
|
218
163
|
color.error('The package directory should be empty');
|
|
219
164
|
return false;
|
|
220
165
|
}
|
|
221
|
-
|
|
222
166
|
(0, _child_process.exec)('git rev-parse --is-inside-work-tree', {
|
|
223
167
|
cwd: packageDir
|
|
224
168
|
}, function (err) {
|
|
@@ -244,13 +188,10 @@ function create(args) {
|
|
|
244
188
|
process.on('beforeExit', function () {
|
|
245
189
|
if (repositoryInfo) {
|
|
246
190
|
var packagePath = _path["default"].join(packageDir, 'package.json');
|
|
247
|
-
|
|
248
191
|
var p = JSON.parse(_fs["default"].readFileSync(packagePath, 'utf-8'));
|
|
249
192
|
p.repository = repositoryInfo;
|
|
250
|
-
|
|
251
|
-
_fs["default"].writeFileSync(packagePath, JSON.stringify(p, null, '\t'), 'utf-8');
|
|
193
|
+
_fs["default"].writeFileSync(packagePath, JSON.stringify(p, null, 2), 'utf-8');
|
|
252
194
|
}
|
|
253
|
-
|
|
254
195
|
process.exit();
|
|
255
196
|
});
|
|
256
197
|
createDirectoryContents(name, config, templateDir, packageDir, args.ide, ts, !!args.eslint, !!args.test);
|
|
@@ -266,6 +207,5 @@ function create(args) {
|
|
|
266
207
|
} else {
|
|
267
208
|
color.error('Package name may only include letters, numbers, underscores, or hyphens');
|
|
268
209
|
}
|
|
269
|
-
|
|
270
210
|
return true;
|
|
271
211
|
}
|
package/bin/commands/help.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.help = void 0;
|
|
7
|
-
var HELP = "\nUsage: grok <command>\n\nDatagrok's package management tool\n\nCommands:\n add Add an object template\n api Create wrapper functions\n check Check package content (function signatures, etc.)\n config Create and manage config files\n create Create a package\n init Modify a package template\n link Link `datagrok-api` and libraries for local development\n
|
|
7
|
+
var HELP = "\nUsage: grok <command>\n\nDatagrok's package management tool\n\nCommands:\n add Add an object template\n api Create wrapper functions\n check Check package content (function signatures, etc.)\n config Create and manage config files\n create Create a package\n init Modify a package template\n link Link `datagrok-api` and libraries for local development\n publish Upload a package\n test Run package tests\n\nTo get help on a particular command, use:\n grok <command> --help\n\nRead more about the package development workflow:\nhttps://datagrok.ai/help/develop/develop\n";
|
|
8
8
|
var HELP_ADD = "\nUsage: grok add <entity> <name>\n\nAdd an object template to your package:\n\ngrok add app <name>\ngrok add connection <name>\ngrok add detector <semantic-type-name>\ngrok add function [tag] <name>\ngrok add query <name>\ngrok add script [tag] <language> <name>\ngrok add view <name>\ngrok add viewer <name>\ngrok add tests\n\nPlease note that entity names may only include letters and numbers\n\nSupported languages for scripts:\njavascript, julia, node, octave, python, r\n\nAvailable tags:\npanel, init\n";
|
|
9
9
|
var HELP_INIT = "\nUsage: grok init\n\nModify a package template by adding config files for linters, IDE, etc.\n\nOptions:\n[--eslint] [--ide] [--test] [--ts]\n\n--eslint Add a configuration for eslint\n--ide Add an IDE-specific configuration for debugging (vscode)\n--test Add tests support (TypeScript packages only)\n--ts Convert a JavaScript package to TypeScript\n";
|
|
10
10
|
var HELP_API = "\nUsage: grok api\n\nCreate wrapper functions for package scripts and queries\n";
|
|
@@ -13,8 +13,7 @@ var HELP_CREATE = "\nUsage: grok create [name]\n\nCreate a package:\n\ngrok crea
|
|
|
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
15
|
var HELP_TEST = "\nUsage: grok test\n\nOptions:\n[--host] [--csv]\n\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--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";
|
|
16
|
-
var HELP_LINK = "\nUsage: grok link\n\nLink `datagrok-api` and libraries for local development\n";
|
|
17
|
-
var HELP_UNLINK = "\nUsage: grok unlink\n\nRevert `grok link`\n";
|
|
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";
|
|
18
17
|
var HELP_MIGRATE = "\nUsage: grok migrate\n\nSwitch to `grok` tools by copying your keys to the config\nfile and converting your scripts in the `package.json` file\n";
|
|
19
18
|
var help = {
|
|
20
19
|
add: HELP_ADD,
|
|
@@ -24,7 +23,6 @@ var help = {
|
|
|
24
23
|
create: HELP_CREATE,
|
|
25
24
|
init: HELP_INIT,
|
|
26
25
|
link: HELP_LINK,
|
|
27
|
-
unlink: HELP_UNLINK,
|
|
28
26
|
publish: HELP_PUBLISH,
|
|
29
27
|
test: HELP_TEST,
|
|
30
28
|
help: HELP
|