@makano/rew 1.1.81 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. package/lib/coffeescript/browser.js +144 -139
  2. package/lib/coffeescript/cake.js +132 -133
  3. package/lib/coffeescript/coffeescript.js +437 -381
  4. package/lib/coffeescript/command.js +806 -724
  5. package/lib/coffeescript/grammar.js +1908 -2474
  6. package/lib/coffeescript/helpers.js +509 -473
  7. package/lib/coffeescript/index.js +228 -215
  8. package/lib/coffeescript/lexer.js +2282 -1909
  9. package/lib/coffeescript/nodes.js +9782 -9202
  10. package/lib/coffeescript/optparse.js +255 -227
  11. package/lib/coffeescript/parser.js +20305 -1265
  12. package/lib/coffeescript/register.js +107 -87
  13. package/lib/coffeescript/repl.js +307 -284
  14. package/lib/coffeescript/rewriter.js +1389 -1079
  15. package/lib/coffeescript/scope.js +176 -172
  16. package/lib/coffeescript/sourcemap.js +242 -227
  17. package/lib/rew/cli/cli.js +312 -239
  18. package/lib/rew/cli/log.js +27 -27
  19. package/lib/rew/cli/run.js +8 -8
  20. package/lib/rew/cli/utils.js +368 -199
  21. package/lib/rew/const/config_path.js +2 -2
  22. package/lib/rew/const/default.js +38 -53
  23. package/lib/rew/const/files.js +11 -14
  24. package/lib/rew/const/opt.js +6 -6
  25. package/lib/rew/css/theme.css +1 -1
  26. package/lib/rew/functions/core.js +55 -55
  27. package/lib/rew/functions/curl.js +23 -0
  28. package/lib/rew/functions/emitter.js +52 -55
  29. package/lib/rew/functions/exec.js +25 -25
  30. package/lib/rew/functions/export.js +17 -17
  31. package/lib/rew/functions/fs.js +57 -59
  32. package/lib/rew/functions/future.js +29 -21
  33. package/lib/rew/functions/id.js +8 -9
  34. package/lib/rew/functions/import.js +106 -122
  35. package/lib/rew/functions/map.js +10 -10
  36. package/lib/rew/functions/match.js +35 -42
  37. package/lib/rew/functions/path.js +8 -8
  38. package/lib/rew/functions/require.js +32 -36
  39. package/lib/rew/functions/sleep.js +2 -2
  40. package/lib/rew/functions/stdout.js +18 -18
  41. package/lib/rew/functions/types.js +82 -106
  42. package/lib/rew/html/ui.html +12 -12
  43. package/lib/rew/html/ui.js +196 -201
  44. package/lib/rew/main.js +14 -14
  45. package/lib/rew/misc/bin.js +37 -0
  46. package/lib/rew/misc/findAppInfo.js +13 -13
  47. package/lib/rew/misc/findAppPath.js +15 -15
  48. package/lib/rew/misc/req.js +7 -0
  49. package/lib/rew/misc/seededid.js +8 -8
  50. package/lib/rew/models/enum.js +12 -12
  51. package/lib/rew/models/struct.js +30 -32
  52. package/lib/rew/modules/compiler.js +237 -209
  53. package/lib/rew/modules/fs.js +10 -10
  54. package/lib/rew/modules/runtime.js +17 -21
  55. package/lib/rew/modules/yaml.js +27 -30
  56. package/lib/rew/pkgs/conf.js +82 -92
  57. package/lib/rew/pkgs/data.js +10 -10
  58. package/lib/rew/pkgs/date.js +27 -27
  59. package/lib/rew/pkgs/env.js +5 -5
  60. package/lib/rew/pkgs/modules/data/bintree.js +51 -51
  61. package/lib/rew/pkgs/modules/data/doublylinked.js +84 -84
  62. package/lib/rew/pkgs/modules/data/linkedList.js +72 -72
  63. package/lib/rew/pkgs/modules/data/queue.js +18 -18
  64. package/lib/rew/pkgs/modules/data/stack.js +18 -18
  65. package/lib/rew/pkgs/modules/threads/worker.js +36 -36
  66. package/lib/rew/pkgs/modules/ui/classes.js +181 -184
  67. package/lib/rew/pkgs/pkgs.js +9 -9
  68. package/lib/rew/pkgs/rune.js +373 -410
  69. package/lib/rew/pkgs/threads.js +62 -66
  70. package/lib/rew/pkgs/ui.js +148 -160
  71. package/lib/rew/qrew/compile.js +12 -0
  72. package/package.json +4 -3
@@ -1,250 +1,323 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const yargs = require("yargs/yargs");
4
- const path = require("path");
5
- const { hideBin } = require("yargs/helpers");
6
- const { fork, exec, execSync } = require("child_process");
7
- const { watch } = require("chokidar");
8
- const utils = require("./utils");
9
- const { existsSync, readFileSync, writeFileSync, mkdirSync } = require("fs");
10
- const { log } = require("./log");
11
- const { compile } = require("../modules/compiler");
12
- const crypto = require("crypto");
3
+ const yargs = require('yargs/yargs');
4
+ const path = require('path');
5
+ const { hideBin } = require('yargs/helpers');
6
+ const { fork, exec, execSync } = require('child_process');
7
+ const { watch } = require('chokidar');
8
+ const utils = require('./utils');
9
+ const { existsSync, readFileSync, writeFileSync, mkdirSync } = require('fs');
10
+ const { log } = require('./log');
11
+ const os = require('os');
12
+ const crypto = require('crypto');
13
+ const { CONFIG_PATH } = require('../const/config_path');
14
+ const rune = require('../pkgs/rune');
15
+ const { to_qrew, from_qrew } = require('../qrew/compile');
16
+ const { findAppInfo } = require('../misc/findAppInfo');
17
+ const { print, input } = require('../functions/stdout');
18
+ const colors = require('colors');
19
+
20
+ if (!existsSync(CONFIG_PATH)) {
21
+ mkdirSync(CONFIG_PATH, { recursive: true });
22
+ utils.initFirst();
23
+ }
13
24
 
14
25
  yargs(hideBin(process.argv))
15
- .command(
16
- "$0 <file>",
17
- "Run the specified file",
18
- (yargs) => {
19
- yargs
20
- .positional("file", {
21
- describe: "File to run",
22
- type: "string",
23
- })
24
- .option("watch", {
25
- alias: "w",
26
- describe: "Watch the file for changes",
27
- type: "boolean",
28
- });
29
- },
30
- (argv) => {
31
- const filePath = path.resolve(process.cwd(), argv.file);
32
- if (!existsSync(filePath)) {
33
- log("File not found:", argv.file, ":end");
34
- return;
35
- }
36
- const watching = [];
37
- const watchIt = (file) => {
38
- if (watching.includes(file)) return;
39
- watch(file).on("change", () => runIt());
40
- watching.push(file);
41
- };
42
- let prevFork;
43
- const runIt = () => {
44
- if (argv.watch) console.clear();
45
- if (prevFork && !prevFork.killed) prevFork.kill?.();
46
- prevFork = fork(path.resolve(__dirname, "./run.js"))
47
- .on("message", (data) => {
48
- if (argv.watch) {
49
- data.forEach((file) => {
50
- watchIt(file);
51
- });
52
- }
53
- })
54
- .send({ filePath, watch: argv.watch });
55
- if (argv.watch) watchIt(filePath);
56
- };
57
- runIt();
58
- },
59
- )
60
- .command(
61
- "conf <command> [path] [key] [value]",
62
- "Configuration management",
63
- (yargs) => {
64
- yargs
65
- .positional("command", {
66
- describe: "Configuration command (get, set, remove)",
67
- type: "string",
68
- choices: ["get", "set", "remove"],
69
- })
70
- .positional("path", {
71
- describe: "Configuration path",
72
- type: "string",
73
- default: "",
74
- })
75
- .positional("key", {
76
- describe: "Key to get/set/remove",
77
- type: "string",
78
- default: "",
79
- })
80
- .positional("value", {
81
- describe: 'Value to set (only used with "set" command)',
82
- type: "string",
83
- default: "",
84
- });
85
- },
86
- (argv) => {
87
- const { command, path, key, value } = argv;
88
- const result = utils.conf(command, path, key, value);
89
- if (result) console.log(result);
90
- },
91
- )
92
- .command(
93
- "create <path>",
94
- "Create a new project",
95
- (yargs) => {
96
- yargs.positional("path", {
97
- describe: "Path of the project to create",
98
- type: "string",
99
- });
100
- },
101
- (argv) => {
102
- utils.createProject(argv.path);
103
- },
104
- )
105
- .command(
106
- "rune-keygen <secret>",
107
- "Generate a rune encryption key",
108
- (yargs) => {
109
- yargs.option("secret", {
110
- describe: "Secret used to generate encryption key",
111
- type: "string",
112
- });
113
- },
114
- (argv) => {
115
- const generateEncryptionKey = (secret) => {
116
- if (secret) {
117
- return crypto.createHash("sha256").update(secret).digest("hex");
118
- } else {
119
- return crypto.randomBytes(32).toString("hex");
120
- }
121
- };
26
+ .command(
27
+ '$0 <file>',
28
+ 'Run the specified file',
29
+ (yargs) => {
30
+ yargs
31
+ .positional('file', {
32
+ describe: 'File to run',
33
+ type: 'string',
34
+ })
35
+ .option('watch', {
36
+ alias: 'w',
37
+ describe: 'Watch the file for changes',
38
+ type: 'boolean',
39
+ });
40
+ },
41
+ (argv) => {
42
+ const filePath = path.resolve(process.cwd(), argv.file);
43
+ if (!existsSync(filePath)) {
44
+ log('File not found:', argv.file, ':end');
45
+ return;
46
+ }
47
+ const watching = [];
48
+ const watchIt = (file) => {
49
+ if (watching.includes(file)) return;
50
+ watch(file).on('change', () => runIt());
51
+ watching.push(file);
52
+ };
53
+ let prevFork;
54
+ const runIt = () => {
55
+ if (argv.watch) console.clear();
56
+ if (prevFork && !prevFork.killed) prevFork.kill?.();
57
+ prevFork = fork(path.resolve(__dirname, './run.js'))
58
+ .on('message', (data) => {
59
+ if (argv.watch) {
60
+ data.forEach((file) => {
61
+ watchIt(file);
62
+ });
63
+ }
64
+ })
65
+ .send({ filePath, watch: argv.watch });
66
+ if (argv.watch) watchIt(filePath);
67
+ };
68
+ runIt();
69
+ },
70
+ )
71
+ .command(
72
+ 'conf <command> [path] [key] [value]',
73
+ 'Configuration management',
74
+ (yargs) => {
75
+ yargs
76
+ .positional('command', {
77
+ describe: 'Configuration command (get, set, remove)',
78
+ type: 'string',
79
+ choices: ['get', 'set', 'remove'],
80
+ })
81
+ .positional('path', {
82
+ describe: 'Configuration path',
83
+ type: 'string',
84
+ default: '',
85
+ })
86
+ .positional('key', {
87
+ describe: 'Key to get/set/remove',
88
+ type: 'string',
89
+ default: '',
90
+ })
91
+ .positional('value', {
92
+ describe: 'Value to set (only used with "set" command)',
93
+ type: 'string',
94
+ default: '',
95
+ });
96
+ },
97
+ (argv) => {
98
+ const { command, path, key, value } = argv;
99
+ const result = utils.conf(command, path, key, value);
100
+ if (result) console.log(result);
101
+ },
102
+ )
103
+ .command(
104
+ 'create <path>',
105
+ 'Create a new project',
106
+ (yargs) => {
107
+ yargs.positional('path', {
108
+ describe: 'Path of the project to create',
109
+ type: 'string',
110
+ });
111
+ },
112
+ (argv) => {
113
+ utils.createProject(argv.path);
114
+ },
115
+ )
116
+ .command(
117
+ 'rune-keygen',
118
+ 'Generate a rune encryption key',
119
+ (yargs) => {
120
+ },
121
+ (argv) => {
122
+ console.log('Encryption Key:', rune({}).genKey(input('Secret Value: ') || null));
123
+ },
124
+ )
125
+ .command(
126
+ 'ui-bin <path>',
127
+ 'Build the UI bin for your own app',
128
+ (yargs) => {
129
+ yargs.positional('path', {
130
+ describe: 'Path of the output bin',
131
+ type: 'string',
132
+ });
133
+ },
134
+ (argv) => {
135
+ execSync('sh ' + path.resolve(__dirname, '../../../build.sh') + ' ' + argv.path);
136
+ },
137
+ )
138
+ .command(
139
+ 'run <path | package>',
140
+ 'Run an app',
141
+ (yargs) => {
142
+ yargs.positional('path', {
143
+ describe: 'Path of the app to run',
144
+ type: 'string',
145
+ })
146
+ .option('dev', {
147
+ describe: 'If your entry file is a .qrew, then just use the .coffee instead',
148
+ type: 'boolean',
149
+ })
150
+ .option('build', {
151
+ alias: 'b',
152
+ describe: 'Builds to a .qrew before running',
153
+ type: 'boolean',
154
+ })
155
+ .option('translate', {
156
+ alias: 't',
157
+ describe: 'Builds to a .js before running, only used when --build is passed',
158
+ type: 'boolean',
159
+ });
160
+ },
161
+ (argv) => {
162
+ utils.runApp(argv.path, argv);
163
+ },
164
+ )
165
+ .command(
166
+ 'secret <command> [key]',
167
+ 'Add secrets to the current path',
168
+ (yargs) => {
169
+ yargs.positional('command', {
170
+ describe: 'Path of the app to run',
171
+ type: 'string',
172
+ });
173
+ },
174
+ (argv) => {
175
+ const appPath = findAppInfo(path.join(process.cwd(), 'app.yaml'));
176
+
177
+ if (!appPath) return log(''.red.bold, 'Secrets only available in apps'.red.bold, ':end');
178
+
179
+ const qrewPath = path.join(appPath.path, 'secrets.qrew');
180
+
181
+ const getHost = () => `${process.env.USER}@${os.platform()}.${os.hostname()}`;
182
+
183
+ const verifyUser = (content) => {
184
+ const owner = content.match(/^owner = "(.*)" # end$/m)?.[1];
185
+ if (owner == getHost()) return true;
186
+ return false;
187
+ };
122
188
 
123
- const encryptionKey = generateEncryptionKey(argv.secret);
124
- console.log("Encryption Key:", encryptionKey);
125
- },
126
- )
127
- .command(
128
- "ui-bin <path>",
129
- "Build the UI bin for your own app",
130
- (yargs) => {
131
- yargs.positional("path", {
132
- describe: "Path of the output bin",
133
- type: "string",
134
- });
135
- },
136
- (argv) => {
137
- execSync(
138
- "sh " + path.resolve(__dirname, "../../../build.sh") + " " + argv.path,
139
- );
140
- },
141
- )
142
- .command(
143
- "run <path | package>",
144
- "Run an app",
145
- (yargs) => {
146
- yargs.positional("path", {
147
- describe: "Path of the app to run",
148
- type: "string",
149
- });
150
- },
151
- (argv) => {
152
- utils.runApp(argv.path);
153
- },
154
- )
155
- .command(
156
- "install <path>",
157
- "Install an app",
158
- (yargs) => {
159
- yargs.positional("path", {
160
- describe: "Path of the app to install",
161
- type: "string",
162
- });
163
- },
164
- async (argv) => {
165
- if (argv.path.startsWith("github:"))
166
- utils.installApp(await utils.cloneGit(argv.path), true, true);
167
- else utils.installApp(argv.path);
168
- },
169
- )
170
- .command(
171
- "build <file>",
172
- "Build the specified file",
173
- (yargs) => {
174
- yargs
175
- .positional("file", {
176
- describe: "File to build",
177
- type: "string",
178
- })
179
- .option("output", {
180
- alias: "o",
181
- describe: "Output directory",
182
- type: "string",
183
- });
184
- },
185
- (argv) => {
186
- function readFile(filePath) {
187
- return readFileSync(filePath, { encoding: "utf-8" });
188
- }
189
+ if (argv.command == 'init') {
190
+ writeFileSync(qrewPath, to_qrew(`secrets = {} # end\n\nowner = "${getHost()}" # end\n \nexports { ...secrets }`, appPath.config.package))
191
+ } else {
192
+ const currentFileContent = from_qrew(readFileSync(qrewPath), appPath.config.package).toString();
193
+ if (!verifyUser(currentFileContent)) return log(''.red.bold, 'You are not allowed to change this data'.red.bold, ':end');
189
194
 
190
- function extractImports(content) {
191
- const importRegex = /(\w+)\s*=\s*imp\s*['"](.+?)['"]/g;
192
- const imports = [];
193
- let match;
194
- while ((match = importRegex.exec(content)) !== null) {
195
- imports.push({ variable: match[1], url: match[2] });
196
- }
197
- return imports;
198
- }
195
+ const secrets = currentFileContent.match(/^secrets = (.*) # end$/m)?.[1];
199
196
 
200
- function writeCompiledFile(filePath, compiledCode) {
201
- const dirName = outputDir ? outputDir : path.dirname(filePath);
202
- if (!existsSync(dirName)) mkdirSync(dirName, { recursive: true });
203
- const baseName = path.basename(filePath, path.extname(filePath));
204
- const newFilePath = path.join(dirName, `${baseName}.js`);
205
- writeFileSync(newFilePath, compiledCode, { encoding: "utf-8" });
206
- log(`Compiled: ${newFilePath}`);
207
- }
197
+ let secretsJson = JSON.parse(secrets);
208
198
 
209
- function processFile(filePath, importsArray) {
210
- const content = readFile(filePath);
211
- const imports = extractImports(content);
199
+ if (argv.command == 'set' || argv.command == 'remove') {
200
+ if (argv.command == 'set') {
201
+ let val = input('Secret Value: ');
212
202
 
213
- imports.forEach((importStatement) => {
214
- const importedFilePath = path.resolve(
215
- path.dirname(filePath),
216
- importStatement.url,
217
- );
218
- if (
219
- !importsArray.some(
220
- (importObj) => importObj.url === importStatement.url,
221
- )
222
- ) {
223
- if (existsSync(importedFilePath)) {
224
- importsArray.push(importStatement);
225
- processFile(importedFilePath, importsArray);
226
- } else if (existsSync(importedFilePath + ".coffee")) {
227
- importsArray.push(importStatement);
228
- processFile(importedFilePath + ".coffee", importsArray);
229
- } else if (existsSync(importedFilePath + ".js")) {
230
- importsArray.push(importStatement);
231
- processFile(importedFilePath + ".js", importsArray);
232
- }
233
- }
234
- });
203
+ secretsJson[argv.key] = val;
204
+ } else {
205
+ delete secretsJson[argv.key];
206
+ }
235
207
 
236
- const compiled = compile({ content }, {});
237
- writeCompiledFile(filePath, compiled);
238
- }
208
+ const newSecrets = `secrets = ${JSON.stringify(secretsJson)} # end`;
209
+ const newFileContent = currentFileContent.replace(/^secrets = .* # end$/m, newSecrets);
239
210
 
240
- const filePath = path.resolve(process.cwd(), argv.file);
241
- const importsArray = [];
242
- const outputDir = argv.output
243
- ? path.resolve(process.cwd(), argv.output)
244
- : null;
245
- log("Start compile at", outputDir || "default path");
246
- processFile(filePath, importsArray);
247
- log("Compiled", importsArray.length + 1, "files.", ":end");
248
- },
249
- )
250
- .help().argv;
211
+ writeFileSync(qrewPath, to_qrew(newFileContent, appPath.config.package))
212
+ } else if (argv.command == 'get') {
213
+ if (argv.key) {
214
+ console.log(argv.key.yellow, '=', secretsJson[argv.key].green);
215
+ }
216
+ else {
217
+ for (let key in secretsJson) {
218
+ console.log(key.yellow, '=', secretsJson[key].green);
219
+ }
220
+ }
221
+ }
222
+ }
223
+ },
224
+ )
225
+ .command(
226
+ 'install <path>',
227
+ 'Install an app',
228
+ (yargs) => {
229
+ yargs.positional('path', {
230
+ describe: 'Path or github or repo id of the app to install',
231
+ type: 'string',
232
+ });
233
+ },
234
+ async (argv) => {
235
+ utils.installAppFrom(argv.path);
236
+ },
237
+ )
238
+ .command(
239
+ 'uninstall <package>',
240
+ 'Unnstall an app',
241
+ (yargs) => {
242
+ yargs.positional('package', {
243
+ describe: 'Package of the app to uninstall',
244
+ type: 'string',
245
+ }).option('all', {
246
+ describe: 'Remove the configs as well',
247
+ type: 'boolean',
248
+ });
249
+ },
250
+ async (argv) => {
251
+ utils.uninstall(argv.package, argv.all);
252
+ },
253
+ )
254
+ .command(
255
+ 'version',
256
+ 'Rew Version',
257
+ (yargs) => {
258
+ },
259
+ async (argv) => {
260
+ const pkg = JSON.parse(readFileSync(path.resolve(__dirname, '../../../package.json'), { encoding: 'utf-8' }));
261
+ const getLatest = async () => {
262
+ try{
263
+ return (await (await fetch(`https://registry.npmjs.org/${pkg.name}`)).json()).dist_tags.latest.yellow.bold
264
+ } catch(e) {
265
+ return `(${'!err'.blue.bgRed}, see ${`https://npmjs.com/package/${pkg.name}`.blue.underline})`;
266
+ }
267
+ }
268
+ log(`${'Rew'.red.bold} ${'RUNTIME'.yellow}`);
269
+ log(`Version: ${pkg.name.green}@${pkg.version.yellow.bold}`);
270
+ log(`Latest: ${pkg.name}@${await getLatest()}`, ':end');
271
+ },
272
+ )
273
+ .command(
274
+ 'repo <command> [name] [url]',
275
+ 'Manage install repositories',
276
+ (yargs) => {
277
+ yargs.positional('command', {
278
+ describe: 'Command to add/remove/set/get/view',
279
+ type: 'string',
280
+ });
281
+ yargs.positional('name', {
282
+ describe: 'name of the repo',
283
+ type: 'string',
284
+ });
285
+ yargs.positional('url', {
286
+ describe: 'url of the repo',
287
+ type: 'string',
288
+ });
289
+ },
290
+ async (argv) => {
291
+ utils.repo(argv.command, argv.name, argv.url);
292
+ },
293
+ )
294
+ .command(
295
+ 'build <file>',
296
+ 'Build the specified file',
297
+ (yargs) => {
298
+ yargs
299
+ .positional('file', {
300
+ describe: 'File to build',
301
+ type: 'string',
302
+ })
303
+ .option('output', {
304
+ alias: 'o',
305
+ describe: 'Output directory',
306
+ type: 'string',
307
+ })
308
+ .option('translate', {
309
+ alias: 't',
310
+ describe: 'Translate to js',
311
+ type: 'boolean',
312
+ })
313
+ .option('remove', {
314
+ alias: 'r',
315
+ describe: 'Remove all coffee',
316
+ type: 'boolean',
317
+ });
318
+ },
319
+ (argv) => {
320
+ utils.build(argv);
321
+ },
322
+ )
323
+ .help().argv;
@@ -1,36 +1,36 @@
1
1
  let start = true;
2
- const startPrefix = "";
3
- const middlePrefix = "";
4
- const separator = "";
5
- const endPrefix = "";
2
+ const startPrefix = '';
3
+ const middlePrefix = '';
4
+ const separator = '';
5
+ const endPrefix = '';
6
6
 
7
7
  const log = (module.exports.log = function (...toPrint) {
8
- let prefix = start ? startPrefix : middlePrefix;
9
- let returns = false;
10
- if (toPrint[toPrint.length - 1] == ":end") {
11
- prefix = endPrefix;
12
- toPrint.pop();
13
- }
14
- if (toPrint[toPrint.length - 1] == ":returns") {
15
- returns = true;
16
- toPrint.pop();
17
- }
18
- if (prefix == endPrefix && start) prefix = separator;
19
- if (!start) console.log(separator);
20
- if (start) start = false;
21
- if (returns) return [prefix, ...toPrint].join(" ");
22
- else console.log(prefix, ...toPrint);
8
+ let prefix = start ? startPrefix : middlePrefix;
9
+ let returns = false;
10
+ if (toPrint[toPrint.length - 1] == ':end') {
11
+ prefix = endPrefix;
12
+ toPrint.pop();
13
+ }
14
+ if (toPrint[toPrint.length - 1] == ':returns') {
15
+ returns = true;
16
+ toPrint.pop();
17
+ }
18
+ if (prefix == endPrefix && start) prefix = separator;
19
+ if (!start) console.log(separator);
20
+ if (start) start = false;
21
+ if (returns) return [prefix, ...toPrint].join(' ');
22
+ else console.log(prefix, ...toPrint);
23
23
  });
24
24
 
25
25
  module.exports.logget = function (...toPrint) {
26
- let args = [...toPrint];
27
- if (toPrint[toPrint.length - 1] == ":end") {
28
- let l = args.pop();
29
- args.push(":returns", l);
30
- } else {
31
- args.push(":returns");
32
- }
33
- return log(...args);
26
+ let args = [...toPrint];
27
+ if (toPrint[toPrint.length - 1] == ':end') {
28
+ let l = args.pop();
29
+ args.push(':returns', l);
30
+ } else {
31
+ args.push(':returns');
32
+ }
33
+ return log(...args);
34
34
  };
35
35
 
36
36
  log.startPrefix = startPrefix;
@@ -1,15 +1,15 @@
1
- const { run } = require("../main");
1
+ const { run } = require('../main');
2
2
 
3
3
  function exec(filePath) {
4
- return run(filePath).context.module.imports;
4
+ return run(filePath).context.module.imports;
5
5
  }
6
6
 
7
7
  const onmsg = ({ filePath, watch }) => {
8
- const imports = exec(filePath);
9
- if (watch) {
10
- process.send(imports);
11
- }
12
- process.off("message", onmsg);
8
+ const imports = exec(filePath);
9
+ if (watch) {
10
+ process.send(imports);
11
+ }
12
+ process.off('message', onmsg);
13
13
  };
14
14
 
15
- process.on("message", onmsg);
15
+ process.on('message', onmsg);