@makano/rew 1.1.73 → 1.1.81

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.
Files changed (48) hide show
  1. package/lib/rew/cli/cli.js +189 -144
  2. package/lib/rew/cli/log.js +18 -19
  3. package/lib/rew/cli/run.js +7 -9
  4. package/lib/rew/cli/utils.js +109 -95
  5. package/lib/rew/const/config_path.js +4 -0
  6. package/lib/rew/const/default.js +21 -3
  7. package/lib/rew/const/files.js +11 -8
  8. package/lib/rew/const/opt.js +6 -6
  9. package/lib/rew/css/theme.css +1 -1
  10. package/lib/rew/functions/core.js +7 -9
  11. package/lib/rew/functions/emitter.js +2 -2
  12. package/lib/rew/functions/exec.js +19 -15
  13. package/lib/rew/functions/export.js +4 -6
  14. package/lib/rew/functions/fs.js +21 -18
  15. package/lib/rew/functions/future.js +1 -1
  16. package/lib/rew/functions/import.js +55 -25
  17. package/lib/rew/functions/map.js +2 -5
  18. package/lib/rew/functions/match.js +21 -5
  19. package/lib/rew/functions/path.js +2 -2
  20. package/lib/rew/functions/require.js +16 -13
  21. package/lib/rew/functions/stdout.js +11 -11
  22. package/lib/rew/functions/types.js +67 -42
  23. package/lib/rew/html/ui.html +5 -6
  24. package/lib/rew/html/ui.js +100 -58
  25. package/lib/rew/main.js +3 -3
  26. package/lib/rew/misc/findAppInfo.js +16 -0
  27. package/lib/rew/misc/findAppPath.js +21 -0
  28. package/lib/rew/misc/seededid.js +13 -0
  29. package/lib/rew/models/struct.js +1 -1
  30. package/lib/rew/modules/compiler.js +90 -58
  31. package/lib/rew/modules/context.js +35 -22
  32. package/lib/rew/modules/runtime.js +1 -1
  33. package/lib/rew/pkgs/conf.js +50 -33
  34. package/lib/rew/pkgs/data.js +7 -2
  35. package/lib/rew/pkgs/date.js +8 -9
  36. package/lib/rew/pkgs/env.js +3 -5
  37. package/lib/rew/pkgs/modules/data/bintree.js +1 -1
  38. package/lib/rew/pkgs/modules/data/doublylinked.js +1 -1
  39. package/lib/rew/pkgs/modules/data/linkedList.js +1 -1
  40. package/lib/rew/pkgs/modules/data/queue.js +1 -2
  41. package/lib/rew/pkgs/modules/data/stack.js +1 -1
  42. package/lib/rew/pkgs/modules/threads/worker.js +31 -21
  43. package/lib/rew/pkgs/modules/ui/classes.js +68 -61
  44. package/lib/rew/pkgs/pkgs.js +5 -6
  45. package/lib/rew/pkgs/rune.js +437 -0
  46. package/lib/rew/pkgs/threads.js +30 -22
  47. package/lib/rew/pkgs/ui.js +68 -44
  48. package/package.json +8 -2
@@ -1,76 +1,82 @@
1
- const path = require('path');
2
- const fs = require('fs');
3
- const conf = require('../pkgs/conf');
4
- const jsYaml = require('js-yaml');
5
- const readline = require('readline');
6
- const { log, logget } = require('./log');
7
- const { execSync, exec } = require('child_process');
8
- const { run } = require('../main');
9
- const { generateRandomID } = require('../functions/id');
1
+ const path = require("path");
2
+ const fs = require("fs");
3
+ const conf = require("../pkgs/conf");
4
+ const jsYaml = require("js-yaml");
5
+ const readline = require("readline");
6
+ const { log, logget } = require("./log");
7
+ const { execSync, exec } = require("child_process");
8
+ const { run } = require("../main");
9
+ const { generateRandomID } = require("../functions/id");
10
10
 
11
- const npm_package_name = '@makano/rew';
11
+ const npm_package_name = "@makano/rew";
12
12
 
13
13
  module.exports = {
14
- conf(command, fullPath, key, value){
14
+ conf(command, fullPath, key, value) {
15
15
  const con = conf({});
16
- if(command == 'get'){
17
- if(!fullPath || fullPath == 'list'){
18
- return fs.readdirSync(con.CONFIG_PATH).join('\n');
16
+ if (command == "get") {
17
+ if (!fullPath || fullPath == "list") {
18
+ return fs.readdirSync(con.CONFIG_PATH).join("\n");
19
19
  } else {
20
- const name = fullPath.indexOf('/') ? fullPath.split('/')[0] : fullPath;
21
- const dpath = fullPath.indexOf('/') ? fullPath.split('/')[1] : '';
20
+ const name = fullPath.indexOf("/") ? fullPath.split("/")[0] : fullPath;
21
+ const dpath = fullPath.indexOf("/")
22
+ ? fullPath.split("/").slice(1).join("/")
23
+ : "";
22
24
  const root = con.create(name);
23
- if(dpath){
25
+ if (dpath) {
24
26
  const fp = path.join(root.root, dpath);
25
- if(fs.existsSync(fp) && fs.statSync(fp).isDirectory()){
26
- return fs.readdirSync(fp).join('\n');
27
+ if (fs.existsSync(fp) && fs.statSync(fp).isDirectory()) {
28
+ return fs.readdirSync(fp).join("\n");
27
29
  } else {
28
30
  const o = con.create(name).optionCenter(dpath);
29
31
  return key ? o.get(key) : o.getAll(true);
30
32
  }
31
33
  } else {
32
- return fs.readdirSync(root.root).join('\n');
34
+ return fs.readdirSync(root.root).join("\n");
33
35
  }
34
36
  }
35
37
  } else {
36
- const name = fullPath.indexOf('/') ? fullPath.split('/')[0] : fullPath;
37
- const dpath = fullPath.indexOf('/') ? fullPath.split('/')[1] : '';
38
- if(name && key){
38
+ const name = fullPath.indexOf("/") ? fullPath.split("/")[0] : fullPath;
39
+ const dpath = fullPath.indexOf("/") ? fullPath.split("/")[1] : "";
40
+ if (name && key) {
39
41
  const root = con.create(name);
40
42
  const o = dpath ? root.optionCenter(dpath) : root;
41
- if(command == 'set') {
42
- if(value){
43
+ if (command == "set") {
44
+ if (value) {
43
45
  o.set(key, value);
44
46
  } else {
45
- log('Value not specified', ':end');
47
+ log("Value not specified", ":end");
46
48
  }
47
49
  } else {
48
50
  o.remove(key);
49
51
  }
50
52
  } else {
51
- log(
52
- !name ? 'Path not specified' : 'Key not specified', ':end'
53
- );
53
+ log(!name ? "Path not specified" : "Key not specified", ":end");
54
54
  }
55
55
  }
56
56
  },
57
57
  createProject: (ppath) => {
58
58
  const projectPath = path.join(process.cwd(), ppath);
59
- log('Crating at', ppath);
59
+ log("Crating at", ppath);
60
60
  const rl = readline.createInterface({
61
61
  input: process.stdin,
62
- output: process.stdout
63
- });
62
+ output: process.stdout,
63
+ });
64
64
  const project = {};
65
65
  const create = () => {
66
66
  fs.mkdirSync(projectPath, { recursive: true });
67
- const confPath = path.join(projectPath, 'app.yaml');
68
- const entryFile = path.join(projectPath, 'main.coffee');
69
- fs.writeFileSync(confPath, jsYaml.dump({ package: project.package, entry: 'main.coffee' }));
67
+ const confPath = path.join(projectPath, "app.yaml");
68
+ const entryFile = path.join(projectPath, "main.coffee");
69
+ fs.writeFileSync(
70
+ confPath,
71
+ jsYaml.dump({ package: project.package, entry: "main.coffee" }),
72
+ );
70
73
  fs.writeFileSync(entryFile, `print("Hello World!")`);
71
- if(project.git) {
72
- fs.writeFileSync(path.join(projectPath, '.gitignore'), `node_modules/\npackage-lock.json`);
73
- execSync('cd '+projectPath+' && git init .');
74
+ if (project.git) {
75
+ fs.writeFileSync(
76
+ path.join(projectPath, ".gitignore"),
77
+ `node_modules/\npackage-lock.json`,
78
+ );
79
+ execSync("cd " + projectPath + " && git init .");
74
80
  }
75
81
  // log('Installing '+npm_package_name);
76
82
  // exec('cd '+projectPath+' && npm i '+npm_package_name, (err) => {
@@ -81,15 +87,16 @@ module.exports = {
81
87
  // rl.close();
82
88
  // }
83
89
  // });
84
- log('Done.', ':end');
90
+ log("Done.", ":end");
85
91
  rl.close();
86
- }
92
+ };
87
93
  if (!fs.existsSync(projectPath)) {
88
- rl.question(logget('Package Name: '), (pkg) => {
89
- if(pkg.trim()) {
94
+ rl.question(logget("Package Name: "), (pkg) => {
95
+ if (pkg.trim()) {
90
96
  project.package = pkg.trim();
91
- rl.question(logget('Use git(y/N): '), (use_git) => {
92
- project.git = use_git.toLowerCase() == 'y' || use_git.toLowerCase() == 'yes';
97
+ rl.question(logget("Use git(y/N): "), (use_git) => {
98
+ project.git =
99
+ use_git.toLowerCase() == "y" || use_git.toLowerCase() == "yes";
93
100
  create();
94
101
  });
95
102
  } else {
@@ -97,96 +104,103 @@ module.exports = {
97
104
  }
98
105
  });
99
106
  } else {
100
- log(`Project ${ppath} already exists at ${projectPath}`, ':end');
107
+ log(`Project ${ppath} already exists at ${projectPath}`, ":end");
101
108
  rl.close();
102
109
  }
103
110
  },
104
- runApp(pathOrPackage){
111
+ runApp(pathOrPackage) {
105
112
  const apppath = path.resolve(process.cwd(), pathOrPackage);
106
- const appConfpath = path.join(apppath, 'app.yaml');
113
+ const appConfpath = path.join(apppath, "app.yaml");
107
114
 
108
115
  const runAppRoot = (root, confPath) => {
109
- const c = jsYaml.load(fs.readFileSync(confPath, { encoding: 'utf-8' }));
110
- if(c.entry){
116
+ const c = jsYaml.load(fs.readFileSync(confPath, { encoding: "utf-8" }));
117
+ if (c.entry) {
111
118
  const r = path.resolve(root, c.entry);
112
- const mod_path = path.resolve(root, 'snode_moduless/@makano/rew');
113
- const mod_path_lib = path.join(mod_path, 'lib/rew/cli');
114
- if(fs.existsSync(mod_path) && __dirname !== mod_path_lib){
115
- const mod_path_utilsjs = path.join(mod_path_lib, '../main.js');
116
- require(mod_path_utilsjs)
117
- .run(r);
119
+ const mod_path = path.resolve(root, "snode_moduless/@makano/rew");
120
+ const mod_path_lib = path.join(mod_path, "lib/rew/cli");
121
+ if (fs.existsSync(mod_path) && __dirname !== mod_path_lib) {
122
+ const mod_path_utilsjs = path.join(mod_path_lib, "../main.js");
123
+ require(mod_path_utilsjs).run(r);
118
124
  } else run(r);
119
125
  }
120
- }
126
+ };
121
127
 
122
- if(fs.existsSync(apppath) && fs.existsSync(appConfpath)){
128
+ if (fs.existsSync(apppath) && fs.existsSync(appConfpath)) {
123
129
  runAppRoot(apppath, appConfpath);
124
130
  } else {
125
131
  const con = conf({});
126
- const apppath = path.resolve(con.CONFIG_PATH, pathOrPackage, 'app');
127
- const appConfpath = path.join(apppath, 'app.yaml');
128
- if(fs.existsSync(apppath) && fs.existsSync(appConfpath)){
132
+ const apppath = path.resolve(con.CONFIG_PATH, pathOrPackage, "app");
133
+ const appConfpath = path.join(apppath, "app.yaml");
134
+ if (fs.existsSync(apppath) && fs.existsSync(appConfpath)) {
129
135
  runAppRoot(apppath, appConfpath);
130
136
  }
131
137
  }
132
138
  },
133
- installApp(pathname, rmidir, rmidiri){
134
- if(!pathname){
139
+ installApp(pathname, rmidir, rmidiri) {
140
+ if (!pathname) {
135
141
  return;
136
142
  }
137
143
  const apppath = path.resolve(process.cwd(), pathname);
138
- const appConfpath = path.join(apppath, 'app.yaml');
139
- const appPackagepath = path.join(apppath, 'package.json');
140
- if(fs.existsSync(apppath) && fs.existsSync(appConfpath)){
141
- const c = jsYaml.load(fs.readFileSync(appConfpath, { encoding: 'utf-8' }));
142
- const p = JSON.parse(fs.readFileSync(appPackagepath, { encoding: 'utf-8' }));
144
+ const appConfpath = path.join(apppath, "app.yaml");
145
+ const appPackagepath = path.join(apppath, "package.json");
146
+ if (fs.existsSync(apppath) && fs.existsSync(appConfpath)) {
147
+ const c = jsYaml.load(
148
+ fs.readFileSync(appConfpath, { encoding: "utf-8" }),
149
+ );
150
+ const p = JSON.parse(
151
+ fs.readFileSync(appPackagepath, { encoding: "utf-8" }),
152
+ );
143
153
  const pname = c.package;
144
- const installPath = path.join(conf({}).create(pname).root, 'app');
154
+ const installPath = path.join(conf({}).create(pname).root, "app");
145
155
  const rl = readline.createInterface({
146
156
  input: process.stdin,
147
- output: process.stdout
148
- });
149
- log('Installing '+pname);
150
- log("Package: "+p.name+'@'+p.version);
151
- if(p.description){
152
- log("Description: "+p.description);
157
+ output: process.stdout,
158
+ });
159
+ log("Installing " + pname);
160
+ log("Package: " + p.name + "@" + p.version);
161
+ if (p.description) {
162
+ log("Description: " + p.description);
153
163
  }
154
- rl.question(logget('Install '+pname+'? (y/N)'), (f) => {
155
- if(f.toLowerCase() == 'y'){
156
- if(fs.existsSync(installPath)){
164
+ rl.question(logget("Install " + pname + "? (y/N)"), (f) => {
165
+ if (f.toLowerCase() == "y") {
166
+ if (fs.existsSync(installPath)) {
157
167
  execSync(`rm -r ${installPath}`);
158
168
  }
159
169
  execSync(`cp -r ${apppath} ${installPath}`);
160
- if(rmidir){
170
+ if (rmidir) {
161
171
  execSync(`rm -r ${apppath}`);
162
172
  }
163
- log('Installed '+pname, ':end');
173
+ log("Installed " + pname, ":end");
164
174
  rl.close();
165
175
  } else {
166
- if(rmidiri){
176
+ if (rmidiri) {
167
177
  execSync(`rm -r ${apppath}`);
168
178
  }
169
- log('Canceled install', ':end');
179
+ log("Canceled install", ":end");
170
180
  rl.close();
171
181
  }
172
182
  });
173
183
  } else {
174
- log('Path is not a rew app', ':end');
184
+ log("Path is not a rew app", ":end");
175
185
  }
176
186
  },
177
- async cloneGit(gitpath){
178
- const p = gitpath.split('github:')[1];
187
+ async cloneGit(gitpath) {
188
+ const p = gitpath.split("github:")[1];
179
189
  const url = `https://github.com/${p}`;
180
190
  const apiurl = `https://api.github.com/repos/${p}`;
181
191
  return await fetch(apiurl)
182
- .then((r) => {
183
- if(r.status !== 200) return log('Repo not found', ':end');
184
- const tempPath = '/tmp/rew-git-clone-'+p.replace(/\//g, '_')+'-'+generateRandomID();
185
- execSync(`git clone ${url} ${tempPath}`);
186
- console.log('Installing deps...');
187
- execSync(`cd ${tempPath} && npm i`);
188
- return tempPath;
189
- })
190
- .catch(r => null);
191
- }
192
- }
192
+ .then((r) => {
193
+ if (r.status !== 200) return log("Repo not found", ":end");
194
+ const tempPath =
195
+ "/tmp/rew-git-clone-" +
196
+ p.replace(/\//g, "_") +
197
+ "-" +
198
+ generateRandomID();
199
+ execSync(`git clone ${url} ${tempPath}`);
200
+ console.log("Installing deps...");
201
+ execSync(`cd ${tempPath} && npm i`);
202
+ return tempPath;
203
+ })
204
+ .catch((r) => null);
205
+ },
206
+ };
@@ -0,0 +1,4 @@
1
+ const path = require("path");
2
+
3
+ const CONFIG_PATH = path.resolve(process.env.HOME, ".config/rew");
4
+ module.exports.CONFIG_PATH = CONFIG_PATH;
@@ -5,8 +5,26 @@ const future = require("../functions/future");
5
5
  const sleep = require("../functions/sleep");
6
6
  const { match } = require("../functions/match");
7
7
  const { map } = require("../functions/map");
8
- const { typex, typeis, typedef, typei, int, float, num, str, bool } = require("../functions/types");
9
- const { isEmpty, clone, deepClone, merge, uniqueId, compose, curry } = require("../functions/core");
8
+ const {
9
+ typex,
10
+ typeis,
11
+ typedef,
12
+ typei,
13
+ int,
14
+ float,
15
+ num,
16
+ str,
17
+ bool,
18
+ } = require("../functions/types");
19
+ const {
20
+ isEmpty,
21
+ clone,
22
+ deepClone,
23
+ merge,
24
+ uniqueId,
25
+ compose,
26
+ curry,
27
+ } = require("../functions/core");
10
28
  const { print, input } = require("../functions/stdout");
11
29
 
12
30
  module.exports = {
@@ -38,5 +56,5 @@ module.exports = {
38
56
  curry,
39
57
 
40
58
  print,
41
- input
59
+ input,
42
60
  };
@@ -1,15 +1,18 @@
1
- const fs = require('fs');
2
- const path = require('path');
1
+ const fs = require("fs");
2
+ const path = require("path");
3
3
 
4
- const HOME_PATH = path.resolve(process.env.HOME, '.config/rew/default');
5
- const THEME_PATH = module.exports.THEME_PATH = path.resolve(HOME_PATH, 'theme.css');
4
+ const HOME_PATH = path.resolve(process.env.HOME, ".config/rew/default");
5
+ const THEME_PATH = (module.exports.THEME_PATH = path.resolve(
6
+ HOME_PATH,
7
+ "theme.css",
8
+ ));
6
9
 
7
10
  module.exports.FILES = [
8
11
  {
9
- path: HOME_PATH
12
+ path: HOME_PATH,
10
13
  },
11
14
  {
12
15
  path: THEME_PATH,
13
- content: fs.readFileSync(path.resolve(__dirname, '../css/theme.css'))
14
- }
15
- ]
16
+ content: fs.readFileSync(path.resolve(__dirname, "../css/theme.css")),
17
+ },
18
+ ];
@@ -1,10 +1,10 @@
1
1
  const execOptions = {
2
2
  sharedContext: true,
3
- resolveExtensions: [{ext: '.js', options: { type: 'js' }}, '.coffee'],
3
+ resolveExtensions: [{ ext: ".js", options: { type: "js" } }, ".coffee"],
4
4
  nativeRequire: false,
5
- cwdAlias: '$',
6
- jsxPragma: 'createElement',
7
- jsx: false
8
- }
5
+ cwdAlias: "$",
6
+ jsxPragma: "createElement",
7
+ jsx: false,
8
+ };
9
9
 
10
- module.exports.execOptions = execOptions;
10
+ module.exports.execOptions = execOptions;
@@ -1,3 +1,3 @@
1
1
  body {
2
2
  background-color: #1c2541;
3
- }
3
+ }
@@ -1,9 +1,7 @@
1
-
2
-
3
1
  function isEmpty(value) {
4
- if (Array.isArray(value) || typeof value === 'string') {
2
+ if (Array.isArray(value) || typeof value === "string") {
5
3
  return value.length === 0;
6
- } else if (typeof value === 'object') {
4
+ } else if (typeof value === "object") {
7
5
  return Object.keys(value).length === 0;
8
6
  } else {
9
7
  return true;
@@ -13,7 +11,7 @@ function isEmpty(value) {
13
11
  function clone(value) {
14
12
  if (Array.isArray(value)) {
15
13
  return value.slice();
16
- } else if (typeof value === 'object') {
14
+ } else if (typeof value === "object") {
17
15
  return Object.assign({}, value);
18
16
  } else {
19
17
  return value;
@@ -22,8 +20,8 @@ function clone(value) {
22
20
 
23
21
  function deepClone(value) {
24
22
  if (Array.isArray(value)) {
25
- return value.map(item => deepClone(item));
26
- } else if (typeof value === 'object') {
23
+ return value.map((item) => deepClone(item));
24
+ } else if (typeof value === "object") {
27
25
  const obj = {};
28
26
  for (const key in value) {
29
27
  if (value.hasOwnProperty(key)) {
@@ -57,7 +55,7 @@ function reduce(arr, fn, initial) {
57
55
  }
58
56
 
59
57
  function compose(...fns) {
60
- return initialValue => {
58
+ return (initialValue) => {
61
59
  return fns.reduceRight((acc, fn) => fn(acc), initialValue);
62
60
  };
63
61
  }
@@ -82,5 +80,5 @@ module.exports = {
82
80
  filter,
83
81
  reduce,
84
82
  compose,
85
- curry
83
+ curry,
86
84
  };
@@ -11,11 +11,11 @@ module.exports = function emitter() {
11
11
  };
12
12
  const off = (event, callback, removable = null) => {
13
13
  const rm = (event) => {
14
- if(removable){
14
+ if (removable) {
15
15
  removable(event);
16
16
  }
17
17
  events.splice(events.indexOf(event), 1);
18
- }
18
+ };
19
19
  const rmEvent = (event) => {
20
20
  if (callback) {
21
21
  const _events = events.filter(({ callback: c }) => c == callback);
@@ -1,27 +1,31 @@
1
- const shell = require('child_process');
2
-
1
+ const shell = require("child_process");
3
2
 
4
3
  module.exports = (currentFile) => {
5
-
6
- function exec(command, options){
7
- return shell.execSync(command, { stdio: options?.output == false ? null : 'inherit' });
4
+ function exec(command, options) {
5
+ return shell.execSync(command, {
6
+ stdio: options?.output == false ? null : "inherit",
7
+ });
8
8
  }
9
9
 
10
- exec.background = function execAsync(command, options, callback){
11
- if(typeof options == "function" && !callback){
10
+ exec.background = function execAsync(command, options, callback) {
11
+ if (typeof options == "function" && !callback) {
12
12
  callback = options;
13
13
  options = {};
14
14
  }
15
- if(!options) options = {};
16
- if(!callback) callback = () => {};
17
- return shell.exec(command, {
18
- ...options,
19
- }, callback);
20
- }
15
+ if (!options) options = {};
16
+ if (!callback) callback = () => {};
17
+ return shell.exec(
18
+ command,
19
+ {
20
+ ...options,
21
+ },
22
+ callback,
23
+ );
24
+ };
21
25
 
22
- function spawn(command, options){
26
+ function spawn(command, options) {
23
27
  return shell.spawn(command, options);
24
28
  }
25
29
 
26
30
  return { exec, spawn };
27
- }
31
+ };
@@ -1,17 +1,16 @@
1
-
2
- function exportsThe(item, name, context){
1
+ function exportsThe(item, name, context) {
3
2
  if (name) {
4
- if(!context.module.exports) context.module.exports = {};
3
+ if (!context.module.exports) context.module.exports = {};
5
4
  context.module.exports[name] = item;
6
5
  } else {
7
- if(context.module.exports) context.module.exports.default = item;
6
+ if (context.module.exports) context.module.exports.default = item;
8
7
  else context.module.exports = item;
9
8
  }
10
9
  }
11
10
 
12
11
  module.exports.pubFunction = function (context) {
13
12
  return function (name, item) {
14
- if(name && !item){
13
+ if (name && !item) {
15
14
  item = name;
16
15
  name = null;
17
16
  }
@@ -24,4 +23,3 @@ module.exports.exportsFunction = function (context) {
24
23
  exportsThe(item, name, context);
25
24
  };
26
25
  };
27
-
@@ -1,47 +1,50 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
- const { execOptions } = require('../const/opt');
4
-
1
+ const fs = require("fs");
2
+ const path = require("path");
3
+ const { execOptions } = require("../const/opt");
5
4
 
6
5
  module.exports = (currentFile) => {
7
-
8
- function gp(filepath){
9
- return path.resolve(filepath.startsWith(execOptions.cwdAlias) ? process.cwd() : path.dirname(currentFile), filepath.replaceAll(execOptions.cwdAlias+'/', ''));
6
+ function gp(filepath) {
7
+ return path.resolve(
8
+ filepath.startsWith(execOptions.cwdAlias)
9
+ ? process.cwd()
10
+ : path.dirname(currentFile),
11
+ filepath.replaceAll(execOptions.cwdAlias + "/", ""),
12
+ );
10
13
  }
11
14
 
12
- function read(filepath, options = { encoding: 'utf-8' }){
15
+ function read(filepath, options = { encoding: "utf-8" }) {
13
16
  return fs.readFileSync(gp(filepath), options);
14
17
  }
15
18
 
16
- function realpath(filepath, options = { encoding: 'utf-8' }){
19
+ function realpath(filepath, options = { encoding: "utf-8" }) {
17
20
  return gp(filepath);
18
21
  }
19
22
 
20
- function write(filepath, content, options){
23
+ function write(filepath, content, options) {
21
24
  return fs.writeFileSync(gp(filepath), content, options);
22
25
  }
23
26
 
24
- function exists(filepath, options){
27
+ function exists(filepath, options) {
25
28
  return fs.existsSync(gp(filepath));
26
29
  }
27
30
 
28
- function fstat(filepath, options){
31
+ function fstat(filepath, options) {
29
32
  return fs.statSync(gp(filepath), options);
30
33
  }
31
34
 
32
- function rm(filepath, options){
35
+ function rm(filepath, options) {
33
36
  return fs.unlinkSync(filepath);
34
37
  }
35
38
 
36
- function chmod(filepath, mode, options){
39
+ function chmod(filepath, mode, options) {
37
40
  return fs.chmodSync(gp(filepath), mode);
38
41
  }
39
42
 
40
- function mkdir(filepath, options){
43
+ function mkdir(filepath, options) {
41
44
  return fs.mkdirSync(gp(filepath), options);
42
45
  }
43
46
 
44
- function ls(filepath, options){
47
+ function ls(filepath, options) {
45
48
  return fs.readdirSync(gp(filepath), options);
46
49
  }
47
50
 
@@ -54,6 +57,6 @@ module.exports = (currentFile) => {
54
57
  exists,
55
58
  write,
56
59
  read,
57
- realpath
60
+ realpath,
58
61
  };
59
- }
62
+ };
@@ -18,6 +18,6 @@ module.exports = function future(callback, timeout = 0, defData = null) {
18
18
  catch: (callback) => promise.catch(callback),
19
19
  resolve: (data) => listener.emit("resolve", data),
20
20
  reject: (data) => listener.emit("reject", data),
21
- wait: async () => await promise
21
+ wait: async () => await promise,
22
22
  };
23
23
  };