@makano/rew 1.1.81 → 1.2.0

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 +296 -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 +353 -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,23 +1,31 @@
1
- const emitter = require("./emitter");
1
+ const emitter = require('./emitter');
2
2
 
3
- module.exports = function future(callback, timeout = 0, defData = null) {
4
- const listener = emitter();
5
- const promise = new Promise((resolve, reject) => {
6
- listener.on("resolve", (data) => {
7
- resolve(data);
8
- });
9
- listener.on("reject", (data) => {
10
- reject(data);
11
- });
12
- callback(resolve, reject);
13
- if (timeout) setTimeout(() => resolve(defData), timeout);
14
- });
15
- return {
16
- pipe: (callback) => promise.then(callback),
17
- last: (callback) => promise.finally(callback),
18
- catch: (callback) => promise.catch(callback),
19
- resolve: (data) => listener.emit("resolve", data),
20
- reject: (data) => listener.emit("reject", data),
21
- wait: async () => await promise,
22
- };
3
+ function future(callback, timeout = 0, defData = null) {
4
+ const listener = emitter();
5
+ const promise = new Promise((resolve, reject) => {
6
+ listener.on('resolve', (data) => {
7
+ resolve(data);
8
+ });
9
+ listener.on('reject', (data) => {
10
+ reject(data);
11
+ });
12
+ callback(resolve, reject);
13
+ if (timeout) setTimeout(() => resolve(defData), timeout);
14
+ });
15
+ return {
16
+ pipe: (callback) => promise.then(callback),
17
+ last: (callback) => promise.finally(callback),
18
+ catch: (callback) => promise.catch(callback),
19
+ resolve: (data) => listener.emit('resolve', data),
20
+ reject: (data) => listener.emit('reject', data),
21
+ wait: async () => await promise,
22
+ };
23
23
  };
24
+
25
+ future.promise = (promse, timeout = 0, defData = null) => {
26
+ return future((resolve, reject) => {
27
+ promse.then(resolve).catch(reject);
28
+ }, timeout, defData);
29
+ }
30
+
31
+ module.exports = future;
@@ -1,13 +1,12 @@
1
1
  module.exports.generateRandomID = function generateRandomID(length = 12) {
2
- const characters =
3
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
4
- const charactersLength = characters.length;
5
- let randomID = "";
2
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
3
+ const charactersLength = characters.length;
4
+ let randomID = '';
6
5
 
7
- for (let i = 0; i < length; i++) {
8
- const randomIndex = Math.floor(Math.random() * charactersLength);
9
- randomID += characters.charAt(randomIndex);
10
- }
6
+ for (let i = 0; i < length; i++) {
7
+ const randomIndex = Math.floor(Math.random() * charactersLength);
8
+ randomID += characters.charAt(randomIndex);
9
+ }
11
10
 
12
- return randomID;
11
+ return randomID;
13
12
  };
@@ -1,142 +1,126 @@
1
- const path = require("path");
2
- const { getFile, file } = require("../modules/fs");
3
- const { importYaml } = require("../modules/yaml");
4
- const { findPackage, getPackage } = require("../pkgs/pkgs");
5
- const { existsSync, readFileSync } = require("fs");
6
- const conf = require("../pkgs/conf");
7
- const jsYaml = require("js-yaml");
8
- const { execOptions } = require("../const/opt");
1
+ const path = require('path');
2
+ const { getFile, file } = require('../modules/fs');
3
+ const { importYaml } = require('../modules/yaml');
4
+ const { findPackage, getPackage } = require('../pkgs/pkgs');
5
+ const { existsSync, readFileSync } = require('fs');
6
+ const conf = require('../pkgs/conf');
7
+ const jsYaml = require('js-yaml');
8
+ const { execOptions } = require('../const/opt');
9
9
 
10
10
  const cachedFiles = [];
11
11
 
12
12
  const lookUpInOtherApps = (fullPath) => {
13
- const con = conf({});
14
- const name = fullPath.indexOf("/") ? fullPath.split("/")[0] : fullPath;
15
- let dpath = fullPath.indexOf("/") ? fullPath.split("/")[1] : "";
16
- let ppath = path.join(con.CONFIG_PATH, name, "app");
17
- if (!existsSync(ppath)) return null;
18
- if (!dpath) {
19
- dpath = jsYaml.load(
20
- readFileSync(path.join(ppath, "app.yaml"), "utf-8"),
21
- ).entry;
22
- }
23
- ppath = path.join(ppath, dpath);
24
- if (existsSync(ppath)) return ppath;
25
- else return null;
13
+ const con = conf({});
14
+ const name = fullPath.indexOf('/') ? fullPath.split('/')[0] : fullPath;
15
+ let dpath = fullPath.indexOf('/') ? fullPath.split('/')[1] : '';
16
+ let ppath = path.join(con.CONFIG_PATH, name, 'app');
17
+ const config = jsYaml.load(readFileSync(path.join(ppath, 'app.yaml'), 'utf-8'));
18
+ if (!existsSync(ppath)) return null;
19
+ if (!dpath) {
20
+ dpath = config.entry;
21
+ }
22
+ if(config.private == true) return null;
23
+ const pepath = path.join(ppath, dpath);
24
+ if(Array.isArray(config.private)){
25
+ if(config.private.find(f => pepath == path.join(ppath, f))) return null;
26
+ }
27
+ if (existsSync(pepath)) return pepath;
28
+ else return null;
26
29
  };
27
30
 
28
31
  module.exports.imp = function (runPath, context) {
29
- return function (filename, options = {}) {
30
- if (!options) options = {};
31
- let type = options.type || "coffee";
32
- let exports,
33
- ispkg = findPackage(filename);
32
+ return function (filename, options = {}) {
33
+ if (!options) options = {};
34
+ let type = options.type || 'coffee';
35
+ let exports,
36
+ ispkg = findPackage(filename);
34
37
 
35
- if (filename.startsWith("@") && context.app) {
36
- filename = filename.replace("@", context.app.path);
37
- }
38
+ if (filename.startsWith('@') && context.app) {
39
+ filename = filename.replace('@', context.app.path);
40
+ }
38
41
 
39
- let filepath = path.resolve(
40
- path.dirname(context.module.filepath),
41
- filename,
42
- );
42
+ let filepath = path.resolve(path.dirname(context.module.filepath), filename);
43
+ if(path.extname(filepath) == '.qrew') options.qrew = true;
43
44
 
44
- // console.log(typeof runPath);
45
+ // console.log(typeof runPath);
45
46
 
46
- const lookUp = () => {
47
- const otherPath = lookUpInOtherApps(filename);
48
- if (!otherPath) throw new Error('Module "' + filename + '" not found');
49
- else filepath = otherPath;
50
- };
47
+ const lookUp = () => {
48
+ const otherPath = lookUpInOtherApps(filename);
49
+ if (!otherPath) throw new Error('Module "' + filename + '" not found');
50
+ else filepath = otherPath;
51
+ };
51
52
 
52
- const foundCache = cachedFiles.find((f) => f.filepath == filepath);
53
+ const foundCache = cachedFiles.find((f) => f.filepath == filepath);
53
54
 
54
- if (!ispkg && foundCache) {
55
- exports = foundCache.exports;
56
- }
55
+ if (!ispkg && foundCache) {
56
+ exports = foundCache.exports;
57
+ }
57
58
 
58
- if (!ispkg && !existsSync(filepath)) {
59
- if (
60
- Array.isArray(execOptions.resolveExtensions) &&
61
- execOptions.resolveExtensions.length
62
- ) {
63
- const resolve = execOptions.resolveExtensions.find((ext) =>
64
- typeof ext == "string"
65
- ? existsSync(filepath + ext)
66
- : existsSync(filepath + (ext.ext || "")),
67
- );
68
- if (resolve) {
69
- filepath += typeof resolve == "string" ? resolve : resolve.ext;
70
- if (typeof resolve == "object" && resolve.options) {
71
- if (resolve.options.type) type = resolve.options.type;
72
- for (let i in resolve.options) options[i] = resolve.options[i];
73
- }
74
- } else lookUp();
75
- } else lookUp();
76
- }
59
+ if (!ispkg && !existsSync(filepath)) {
60
+ if (Array.isArray(execOptions.resolveExtensions) && execOptions.resolveExtensions.length) {
61
+ const resolve = execOptions.resolveExtensions.find((ext) =>
62
+ typeof ext == 'string' ? existsSync(filepath + ext) : existsSync(filepath + (ext.ext || '')),
63
+ );
64
+ if (resolve) {
65
+ filepath += typeof resolve == 'string' ? resolve : resolve.ext;
66
+ if (typeof resolve == 'object' && resolve.options) {
67
+ if (resolve.options.type) type = resolve.options.type;
68
+ for (let i in resolve.options) options[i] = resolve.options[i];
69
+ }
70
+ } else lookUp();
71
+ } else lookUp();
72
+ }
77
73
 
78
- const exec = (coptions = {}) =>
79
- runPath(
80
- filepath,
81
- {
82
- import: options,
83
- main: false,
84
- useContext:
85
- execOptions.sharedContext == false
86
- ? false
87
- : !(options.context && options.context == "new"),
88
- ...coptions,
89
- as:
90
- options.as == "main"
91
- ? context.module.main
92
- ? "main"
93
- : "parent"
94
- : options.as == "parent"
95
- ? "parent"
96
- : "child",
97
- fromMain: context.module.main,
98
- },
99
- execOptions.sharedContext == false
100
- ? {}
101
- : options.context && options.context == "new"
102
- ? {}
103
- : context,
104
- ).context.module.exports;
74
+ const exec = (coptions = {}) =>
75
+ runPath(
76
+ filepath,
77
+ {
78
+ import: options,
79
+ main: false,
80
+ useContext: execOptions.sharedContext == false ? false : !(options.context && options.context == 'new'),
81
+ ...coptions,
82
+ as: options.as == 'main' ? (context.module.main ? 'main' : 'parent') : options.as == 'parent' ? 'parent' : 'child',
83
+ fromMain: context.module.main,
84
+ qrew: options.qrew,
85
+ package: context.app ? context.app.config.package : path.basename(filepath)
86
+ },
87
+ execOptions.sharedContext == false ? {} : options.context && options.context == 'new' ? {} : context,
88
+ ).context.module.exports;
105
89
 
106
- if (ispkg) {
107
- const pkg = getPackage(filename)(context);
108
- exports = pkg._onImport ? pkg._onImport() : pkg;
109
- } else if (foundCache) {
110
- } else if (type == "coffee") {
111
- exports = exec({});
112
- } else if (type == "js") {
113
- exports = exec({ compile: false });
114
- } else if (type == "yaml" || type == "json" || type == "text") {
115
- const f = getFile(filepath);
116
- if (type == "yaml") {
117
- exports = importYaml(f.path, f);
118
- } else if (type == "json") {
119
- try {
120
- exports = JSON.parse(f.content);
121
- } catch (e) {
122
- exports = {};
123
- }
124
- } else {
125
- exports = f.content;
126
- }
127
- }
90
+ if (ispkg) {
91
+ const pkg = getPackage(filename)(context);
92
+ exports = pkg._onImport ? pkg._onImport() : pkg;
93
+ } else if (foundCache) {
94
+ } else if (type == 'coffee') {
95
+ exports = exec({});
96
+ } else if (type == 'js') {
97
+ exports = exec({ compile: false });
98
+ } else if (type == 'yaml' || type == 'json' || type == 'text') {
99
+ const f = getFile(filepath);
100
+ if (type == 'yaml') {
101
+ exports = importYaml(f.path, f);
102
+ } else if (type == 'json') {
103
+ try {
104
+ exports = JSON.parse(f.content);
105
+ } catch (e) {
106
+ exports = {};
107
+ }
108
+ } else {
109
+ exports = f.content;
110
+ }
111
+ }
128
112
 
129
- if (options.save && (type == "js" || type == "coffee")) {
130
- if (typeof options.save == "string") context[options.save] = exports[i];
131
- else
132
- for (let i in exports) {
133
- context[i] = exports[i];
134
- }
135
- }
113
+ if (options.save && (type == 'js' || type == 'coffee')) {
114
+ if (typeof options.save == 'string') context[options.save] = exports[i];
115
+ else
116
+ for (let i in exports) {
117
+ context[i] = exports[i];
118
+ }
119
+ }
136
120
 
137
- if (!ispkg) context.module.imports.push(filepath);
138
- if (!ispkg) cachedFiles.push({ filepath, exports });
121
+ if (!ispkg) context.module.imports.push(filepath);
122
+ if (!ispkg) cachedFiles.push({ filepath, exports });
139
123
 
140
- return exports;
141
- };
124
+ return exports;
125
+ };
142
126
  };
@@ -1,14 +1,14 @@
1
1
  module.exports.map = function map(...args) {
2
- if (args.length % 2 !== 0) {
3
- throw new Error("Arguments must be in key-value pairs");
4
- }
2
+ if (args.length % 2 !== 0) {
3
+ throw new Error('Arguments must be in key-value pairs');
4
+ }
5
5
 
6
- const result = new Map();
7
- for (let i = 0; i < args.length; i += 2) {
8
- const key = args[i];
9
- const value = args[i + 1];
10
- result.set(key, value);
11
- }
6
+ const result = new Map();
7
+ for (let i = 0; i < args.length; i += 2) {
8
+ const key = args[i];
9
+ const value = args[i + 1];
10
+ result.set(key, value);
11
+ }
12
12
 
13
- return result;
13
+ return result;
14
14
  };
@@ -1,50 +1,43 @@
1
- const SerializableData = ["string", "number", "boolean"];
1
+ const SerializableData = ['string', 'number', 'boolean'];
2
2
 
3
- const isRegExp = (obj) =>
4
- Object.prototype.toString.call(obj) === "[object RegExp]";
3
+ const isRegExp = (obj) => Object.prototype.toString.call(obj) === '[object RegExp]';
5
4
 
6
5
  module.exports.match = function match(value, templates, props) {
7
- const matchProps = (pattern, value) => {
8
- if (!props) return false;
9
- if (typeof props === "object") {
10
- let t = true;
11
- for (let i in props) {
12
- t = t && pattern[i] == value[i];
13
- if (!t) break;
14
- }
15
- return t;
16
- } else if (typeof props === "function") {
17
- return props(pattern, value);
18
- } else {
19
- return false;
20
- }
21
- };
6
+ const matchProps = (pattern, value) => {
7
+ if (!props) return false;
8
+ if (typeof props === 'object') {
9
+ let t = true;
10
+ for (let i in props) {
11
+ t = t && pattern[i] == value[i];
12
+ if (!t) break;
13
+ }
14
+ return t;
15
+ } else if (typeof props === 'function') {
16
+ return props(pattern, value);
17
+ } else {
18
+ return false;
19
+ }
20
+ };
22
21
 
23
- const matchRegex = (pattern, value) => pattern.test(value);
22
+ const matchRegex = (pattern, value) => pattern.test(value);
24
23
 
25
- const entries =
26
- templates instanceof Map
27
- ? templates.entries()
28
- : Array.isArray(templates)
29
- ? templates
30
- : Object.entries(templates);
24
+ const entries = templates instanceof Map ? templates.entries() : Array.isArray(templates) ? templates : Object.entries(templates);
31
25
 
32
- for (const [pattern, callback] of entries) {
33
- if (
34
- isRegExp(pattern)
35
- ? matchRegex(pattern, value)
36
- : SerializableData.includes(typeof value)
37
- ? pattern == value
38
- : isRegExp(pattern)
39
- ? matchRegex(pattern, value)
40
- : typeof pattern === "function"
41
- ? value instanceof pattern ||
42
- value?.__proto__?.["@instance"] === pattern
43
- : matchProps(pattern, value)
44
- ) {
45
- return callback(...(isRegExp(pattern) ? pattern.exec(value) : [value]));
46
- }
47
- }
26
+ for (const [pattern, callback] of entries) {
27
+ if (
28
+ isRegExp(pattern)
29
+ ? matchRegex(pattern, value)
30
+ : SerializableData.includes(typeof value)
31
+ ? pattern == value
32
+ : isRegExp(pattern)
33
+ ? matchRegex(pattern, value)
34
+ : typeof pattern === 'function'
35
+ ? value instanceof pattern || value?.__proto__?.['@instance'] === pattern
36
+ : matchProps(pattern, value)
37
+ ) {
38
+ return callback(...(isRegExp(pattern) ? pattern.exec(value) : [value]));
39
+ }
40
+ }
48
41
 
49
- return null;
42
+ return null;
50
43
  };
@@ -1,13 +1,13 @@
1
- const path = require("path");
1
+ const path = require('path');
2
2
 
3
3
  module.exports = (currentFile) => {
4
- const e = {};
5
- e.basename = (pathname, suffix) => path.basename(pathname, suffix);
6
- e.dirname = (pathname) => path.dirname(pathname);
7
- e.extname = (pathname) => path.extname(pathname);
4
+ const e = {};
5
+ e.basename = (pathname, suffix) => path.basename(pathname, suffix);
6
+ e.dirname = (pathname) => path.dirname(pathname);
7
+ e.extname = (pathname) => path.extname(pathname);
8
8
 
9
- e.pjoin = (...paths) => path.join(...paths);
10
- e.presolve = (...paths) => path.resolve(...paths);
9
+ e.pjoin = (...paths) => path.join(...paths);
10
+ e.presolve = (...paths) => path.resolve(...paths);
11
11
 
12
- return e;
12
+ return e;
13
13
  };
@@ -1,44 +1,40 @@
1
- const fs = require("fs");
2
- const path = require("path");
1
+ const fs = require('fs');
2
+ const path = require('path');
3
3
 
4
4
  module.exports.customRequire = function customRequire(modulePath, filePath) {
5
- const resolvedPath = resolveModulePath(modulePath, filePath);
6
- return require(resolvedPath);
5
+ const resolvedPath = resolveModulePath(modulePath, filePath);
6
+ return require(resolvedPath);
7
7
  };
8
8
 
9
9
  function resolveModulePath(modulePath, filePath) {
10
- if (
11
- modulePath.startsWith("./") ||
12
- modulePath.startsWith("../") ||
13
- path.isAbsolute(modulePath)
14
- ) {
15
- return path.resolve(modulePath);
16
- }
10
+ if (modulePath.startsWith('./') || modulePath.startsWith('../') || path.isAbsolute(modulePath)) {
11
+ return path.resolve(modulePath);
12
+ }
17
13
 
18
- const paths = module.constructor._nodeModulePaths(path.dirname(filePath));
19
- for (const basePath of paths) {
20
- const fullPath = path.join(basePath, modulePath);
21
- if (fs.existsSync(fullPath + ".js")) {
22
- return fullPath + ".js";
23
- }
24
- if (fs.existsSync(fullPath + ".json")) {
25
- return fullPath + ".json";
26
- }
27
- if (fs.existsSync(fullPath) && fs.statSync(fullPath).isDirectory()) {
28
- const packageJsonPath = path.join(fullPath, "package.json");
29
- if (fs.existsSync(packageJsonPath)) {
30
- const main = require(packageJsonPath).main || "index.js";
31
- const mainPath = path.join(fullPath, main);
32
- if (fs.existsSync(mainPath)) {
33
- return mainPath;
34
- }
35
- }
36
- const indexPath = path.join(fullPath, "index.js");
37
- if (fs.existsSync(indexPath)) {
38
- return indexPath;
39
- }
40
- }
41
- }
14
+ const paths = module.constructor._nodeModulePaths(path.dirname(filePath));
15
+ for (const basePath of paths) {
16
+ const fullPath = path.join(basePath, modulePath);
17
+ if (fs.existsSync(fullPath + '.js')) {
18
+ return fullPath + '.js';
19
+ }
20
+ if (fs.existsSync(fullPath + '.json')) {
21
+ return fullPath + '.json';
22
+ }
23
+ if (fs.existsSync(fullPath) && fs.statSync(fullPath).isDirectory()) {
24
+ const packageJsonPath = path.join(fullPath, 'package.json');
25
+ if (fs.existsSync(packageJsonPath)) {
26
+ const main = require(packageJsonPath).main || 'index.js';
27
+ const mainPath = path.join(fullPath, main);
28
+ if (fs.existsSync(mainPath)) {
29
+ return mainPath;
30
+ }
31
+ }
32
+ const indexPath = path.join(fullPath, 'index.js');
33
+ if (fs.existsSync(indexPath)) {
34
+ return indexPath;
35
+ }
36
+ }
37
+ }
42
38
 
43
- throw new Error(`Cannot find module '${modulePath}'`);
39
+ throw new Error(`Cannot find module '${modulePath}'`);
44
40
  }
@@ -1,5 +1,5 @@
1
- const future = require("./future");
1
+ const future = require('./future');
2
2
 
3
3
  module.exports = async function sleep(time) {
4
- return new Promise((r) => setTimeout(r, time));
4
+ return new Promise((r) => setTimeout(r, time));
5
5
  };
@@ -1,30 +1,30 @@
1
- const { execSync, spawnSync } = require("child_process");
2
- const fs = require("fs");
1
+ const { execSync, spawnSync } = require('child_process');
2
+ const fs = require('fs');
3
3
 
4
4
  const print = (module.exports.print = function print(...arguments) {
5
- return console.log(...arguments);
5
+ return console.log(...arguments);
6
6
  });
7
7
 
8
8
  print.stdout = process.stdout;
9
9
  print.stdin = process.stdin;
10
10
 
11
11
  module.exports.input = function input(prompt) {
12
- process.stdout.write(prompt);
12
+ process.stdout.write(prompt);
13
13
 
14
- let cmd;
15
- let args;
16
- if ("null" == "win32") {
17
- cmd = "cmd";
18
- args = ["/V:ON", "/C", "set /p response= && echo !response!"];
19
- } else {
20
- cmd = "bash";
21
- args = ["-c", 'read response; echo "$response"'];
22
- }
14
+ let cmd;
15
+ let args;
16
+ if ('null' == 'win32') {
17
+ cmd = 'cmd';
18
+ args = ['/V:ON', '/C', 'set /p response= && echo !response!'];
19
+ } else {
20
+ cmd = 'bash';
21
+ args = ['-c', 'read response; echo "$response"'];
22
+ }
23
23
 
24
- let opts = {
25
- stdio: ["inherit", "pipe"],
26
- shell: false,
27
- };
24
+ let opts = {
25
+ stdio: ['inherit', 'pipe'],
26
+ shell: false,
27
+ };
28
28
 
29
- return spawnSync(cmd, args, opts).stdout.toString().trim();
29
+ return spawnSync(cmd, args, opts).stdout.toString().trim();
30
30
  };