ee-bin 4.2.0 → 5.0.0-beta.1
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/dist/cjs/config/bin_default.js +149 -0
- package/dist/cjs/config/bin_default.js.map +1 -0
- package/dist/cjs/index.js +98 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/extend.js +48 -0
- package/dist/cjs/lib/extend.js.map +1 -0
- package/dist/cjs/lib/helpers.js +92 -0
- package/dist/cjs/lib/helpers.js.map +1 -0
- package/dist/cjs/lib/utils.js +108 -0
- package/dist/cjs/lib/utils.js.map +1 -0
- package/dist/cjs/tools/encrypt.js +121 -0
- package/dist/cjs/tools/encrypt.js.map +1 -0
- package/dist/cjs/tools/iconGen.js +140 -0
- package/dist/cjs/tools/iconGen.js.map +1 -0
- package/dist/cjs/tools/incrUpdater.js +187 -0
- package/dist/cjs/tools/incrUpdater.js.map +1 -0
- package/dist/cjs/tools/move.js +56 -0
- package/dist/cjs/tools/move.js.map +1 -0
- package/dist/cjs/tools/serve.js +286 -0
- package/dist/cjs/tools/serve.js.map +1 -0
- package/dist/esm/config/bin_default.d.ts +148 -0
- package/dist/esm/config/bin_default.d.ts.map +1 -0
- package/dist/esm/config/bin_default.js +149 -0
- package/dist/esm/config/bin_default.js.map +1 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +98 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/extend.d.ts +3 -0
- package/dist/esm/lib/extend.d.ts.map +1 -0
- package/dist/esm/lib/extend.js +48 -0
- package/dist/esm/lib/extend.js.map +1 -0
- package/dist/esm/lib/helpers.d.ts +23 -0
- package/dist/esm/lib/helpers.d.ts.map +1 -0
- package/dist/esm/lib/helpers.js +92 -0
- package/dist/esm/lib/helpers.js.map +1 -0
- package/dist/esm/lib/utils.d.ts +11 -0
- package/dist/esm/lib/utils.d.ts.map +1 -0
- package/dist/esm/lib/utils.js +108 -0
- package/dist/esm/lib/utils.js.map +1 -0
- package/dist/esm/tools/encrypt.d.ts +11 -0
- package/dist/esm/tools/encrypt.d.ts.map +1 -0
- package/dist/esm/tools/encrypt.js +121 -0
- package/dist/esm/tools/encrypt.js.map +1 -0
- package/dist/esm/tools/iconGen.d.ts +2 -0
- package/dist/esm/tools/iconGen.d.ts.map +1 -0
- package/dist/esm/tools/iconGen.js +140 -0
- package/dist/esm/tools/iconGen.js.map +1 -0
- package/dist/esm/tools/incrUpdater.d.ts +32 -0
- package/dist/esm/tools/incrUpdater.d.ts.map +1 -0
- package/dist/esm/tools/incrUpdater.js +187 -0
- package/dist/esm/tools/incrUpdater.js.map +1 -0
- package/dist/esm/tools/move.d.ts +7 -0
- package/dist/esm/tools/move.d.ts.map +1 -0
- package/dist/esm/tools/move.js +56 -0
- package/dist/esm/tools/move.js.map +1 -0
- package/dist/esm/tools/serve.d.ts +42 -0
- package/dist/esm/tools/serve.d.ts.map +1 -0
- package/dist/esm/tools/serve.js +286 -0
- package/dist/esm/tools/serve.js.map +1 -0
- package/package.json +67 -33
- package/config/bin_default.js +0 -182
- package/index.js +0 -122
- package/lib/extend.js +0 -78
- package/lib/pargv.js +0 -263
- package/lib/utils.js +0 -255
- package/readme.md +0 -1
- package/tools/encrypt.js +0 -179
- package/tools/iconGen.js +0 -183
- package/tools/incrUpdater.js +0 -226
- package/tools/move.js +0 -69
- package/tools/serve.js +0 -346
package/index.js
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const { program } = require('commander');
|
|
4
|
-
const { move } = require('./tools/move');
|
|
5
|
-
const { encrypt, cleanEncrypt } = require('./tools/encrypt');
|
|
6
|
-
const { serveProcess } = require('./tools/serve');
|
|
7
|
-
const { incrUpdater } = require('./tools/incrUpdater');
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* dev
|
|
11
|
-
*/
|
|
12
|
-
program
|
|
13
|
-
.command('dev')
|
|
14
|
-
.description('create frontend-serve and electron-serve')
|
|
15
|
-
.option('--config <folder>', 'config file')
|
|
16
|
-
.option('--serve <mode>', 'serve mode')
|
|
17
|
-
.action(function() {
|
|
18
|
-
serveProcess.dev(this.opts());
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* build
|
|
23
|
-
*/
|
|
24
|
-
program
|
|
25
|
-
.command('build')
|
|
26
|
-
.description('building multiple resources')
|
|
27
|
-
.option('--config <folder>', 'config file')
|
|
28
|
-
.option('--cmds <flag>', 'custom commands')
|
|
29
|
-
.option('--env <env>', 'environment')
|
|
30
|
-
.action(function() {
|
|
31
|
-
serveProcess.build(this.opts());
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* start
|
|
36
|
-
*/
|
|
37
|
-
program
|
|
38
|
-
.command('start')
|
|
39
|
-
.description('preview effect')
|
|
40
|
-
.option('--config <folder>', 'config file')
|
|
41
|
-
.action(function() {
|
|
42
|
-
serveProcess.start(this.opts());
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* exec
|
|
47
|
-
*/
|
|
48
|
-
program
|
|
49
|
-
.command('exec')
|
|
50
|
-
.description('create frontend-serve and electron-serve')
|
|
51
|
-
.option('--config <folder>', 'config file')
|
|
52
|
-
.option('--cmds <flag>', 'custom commands')
|
|
53
|
-
.action(function() {
|
|
54
|
-
serveProcess.exec(this.opts());
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* move - Moves resources
|
|
59
|
-
*/
|
|
60
|
-
program
|
|
61
|
-
.command('move')
|
|
62
|
-
.description('Move multip resources')
|
|
63
|
-
.option('--config <folder>', 'config file')
|
|
64
|
-
.option('--flag <flag>', 'Custom flag')
|
|
65
|
-
.action(function() {
|
|
66
|
-
move(this.opts());
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* encrypt - Code encryption
|
|
71
|
-
*/
|
|
72
|
-
program
|
|
73
|
-
.command('encrypt')
|
|
74
|
-
.description('Code encryption')
|
|
75
|
-
.option('--config <folder>', 'config file')
|
|
76
|
-
.option('--out <folder>', 'output directory')
|
|
77
|
-
.action(function() {
|
|
78
|
-
encrypt(this.opts());
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* clean - Clear the encrypted code
|
|
83
|
-
*/
|
|
84
|
-
program
|
|
85
|
-
.command('clean')
|
|
86
|
-
.description('Clear the encrypted code')
|
|
87
|
-
.option('-d, --dir <folder>', 'clean directory')
|
|
88
|
-
.action(function() {
|
|
89
|
-
cleanEncrypt(this.opts());
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* icon
|
|
94
|
-
*/
|
|
95
|
-
program
|
|
96
|
-
.command('icon')
|
|
97
|
-
.description('Generate logo')
|
|
98
|
-
.option('-i, --input <file>', 'image file default /public/images/logo.png')
|
|
99
|
-
.option('-o, --output <folder>', 'output directory default /build/icons/')
|
|
100
|
-
.option('-s, --size <flag>', 'generate size default 16,32,64,256,512')
|
|
101
|
-
.option('-c, --clear', 'clear output directory first')
|
|
102
|
-
.option('-img, --images <flag>', 'Win window icon/tray image generation path default /public/images/')
|
|
103
|
-
.action(function() {
|
|
104
|
-
const iconGen = require('./tools/iconGen');
|
|
105
|
-
iconGen.run();
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* updater
|
|
110
|
-
*/
|
|
111
|
-
program
|
|
112
|
-
.command('updater')
|
|
113
|
-
.description('updater commands')
|
|
114
|
-
.option('--config <folder>', 'config file')
|
|
115
|
-
.option('--asar-file <file>', 'asar file path')
|
|
116
|
-
.option('--platform <flag>', 'platform')
|
|
117
|
-
.option('--force <flag>', 'force update full')
|
|
118
|
-
.action(function() {
|
|
119
|
-
incrUpdater.run(this.opts());
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
program.parse();
|
package/lib/extend.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const hasOwn = Object.prototype.hasOwnProperty;
|
|
4
|
-
const toStr = Object.prototype.toString;
|
|
5
|
-
|
|
6
|
-
function isPlainObject(obj) {
|
|
7
|
-
if (!obj || toStr.call(obj) !== '[object Object]') {
|
|
8
|
-
return false;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
var hasOwnConstructor = hasOwn.call(obj, 'constructor');
|
|
12
|
-
var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
|
|
13
|
-
// Not own constructor property must be Object
|
|
14
|
-
if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// Own properties are enumerated firstly, so to speed up,
|
|
19
|
-
// if last one is own, then all properties are own.
|
|
20
|
-
var key;
|
|
21
|
-
for (key in obj) { /**/ }
|
|
22
|
-
|
|
23
|
-
return typeof key === 'undefined' || hasOwn.call(obj, key);
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
function extend() {
|
|
27
|
-
var options, name, src, copy, clone;
|
|
28
|
-
var target = arguments[0];
|
|
29
|
-
var i = 1;
|
|
30
|
-
var length = arguments.length;
|
|
31
|
-
var deep = false;
|
|
32
|
-
|
|
33
|
-
// Handle a deep copy situation
|
|
34
|
-
if (typeof target === 'boolean') {
|
|
35
|
-
deep = target;
|
|
36
|
-
target = arguments[1] || {};
|
|
37
|
-
// skip the boolean and the target
|
|
38
|
-
i = 2;
|
|
39
|
-
} else if ((typeof target !== 'object' && typeof target !== 'function') || target == null) {
|
|
40
|
-
target = {};
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
for (; i < length; ++i) {
|
|
44
|
-
options = arguments[i];
|
|
45
|
-
// Only deal with non-null/undefined values
|
|
46
|
-
if (options == null) continue;
|
|
47
|
-
|
|
48
|
-
// Extend the base object
|
|
49
|
-
for (name in options) {
|
|
50
|
-
if (name === '__proto__') continue;
|
|
51
|
-
|
|
52
|
-
src = target[name];
|
|
53
|
-
copy = options[name];
|
|
54
|
-
|
|
55
|
-
// Prevent never-ending loop
|
|
56
|
-
if (target === copy) continue;
|
|
57
|
-
|
|
58
|
-
// Recurse if we're merging plain objects
|
|
59
|
-
if (deep && copy && isPlainObject(copy)) {
|
|
60
|
-
clone = src && isPlainObject(src) ? src : {};
|
|
61
|
-
// Never move original objects, clone them
|
|
62
|
-
target[name] = extend(deep, clone, copy);
|
|
63
|
-
|
|
64
|
-
// Don't bring in undefined values
|
|
65
|
-
} else if (typeof copy !== 'undefined') {
|
|
66
|
-
target[name] = copy;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Return the modified object
|
|
72
|
-
return target;
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
module.exports = {
|
|
76
|
-
extend,
|
|
77
|
-
isPlainObject,
|
|
78
|
-
};
|
package/lib/pargv.js
DELETED
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
function hasKey(obj, keys) {
|
|
4
|
-
var o = obj;
|
|
5
|
-
keys.slice(0, -1).forEach(function (key) {
|
|
6
|
-
o = o[key] || {};
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
var key = keys[keys.length - 1];
|
|
10
|
-
return key in o;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
function isNumber(x) {
|
|
14
|
-
if (typeof x === 'number') { return true; }
|
|
15
|
-
if ((/^0x[0-9a-f]+$/i).test(x)) { return true; }
|
|
16
|
-
return (/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/).test(x);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function isConstructorOrProto(obj, key) {
|
|
20
|
-
return (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
module.exports = function (args, opts) {
|
|
24
|
-
if (!opts) { opts = {}; }
|
|
25
|
-
|
|
26
|
-
var flags = {
|
|
27
|
-
bools: {},
|
|
28
|
-
strings: {},
|
|
29
|
-
unknownFn: null,
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
if (typeof opts.unknown === 'function') {
|
|
33
|
-
flags.unknownFn = opts.unknown;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
if (typeof opts.boolean === 'boolean' && opts.boolean) {
|
|
37
|
-
flags.allBools = true;
|
|
38
|
-
} else {
|
|
39
|
-
[].concat(opts.boolean).filter(Boolean).forEach(function (key) {
|
|
40
|
-
flags.bools[key] = true;
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
var aliases = {};
|
|
45
|
-
|
|
46
|
-
function aliasIsBoolean(key) {
|
|
47
|
-
return aliases[key].some(function (x) {
|
|
48
|
-
return flags.bools[x];
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
Object.keys(opts.alias || {}).forEach(function (key) {
|
|
53
|
-
aliases[key] = [].concat(opts.alias[key]);
|
|
54
|
-
aliases[key].forEach(function (x) {
|
|
55
|
-
aliases[x] = [key].concat(aliases[key].filter(function (y) {
|
|
56
|
-
return x !== y;
|
|
57
|
-
}));
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
[].concat(opts.string).filter(Boolean).forEach(function (key) {
|
|
62
|
-
flags.strings[key] = true;
|
|
63
|
-
if (aliases[key]) {
|
|
64
|
-
[].concat(aliases[key]).forEach(function (k) {
|
|
65
|
-
flags.strings[k] = true;
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
var defaults = opts.default || {};
|
|
71
|
-
|
|
72
|
-
var argv = { _: [] };
|
|
73
|
-
|
|
74
|
-
function argDefined(key, arg) {
|
|
75
|
-
return (flags.allBools && (/^--[^=]+$/).test(arg))
|
|
76
|
-
|| flags.strings[key]
|
|
77
|
-
|| flags.bools[key]
|
|
78
|
-
|| aliases[key];
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function setKey(obj, keys, value) {
|
|
82
|
-
var o = obj;
|
|
83
|
-
for (var i = 0; i < keys.length - 1; i++) {
|
|
84
|
-
var key = keys[i];
|
|
85
|
-
if (isConstructorOrProto(o, key)) { return; }
|
|
86
|
-
if (o[key] === undefined) { o[key] = {}; }
|
|
87
|
-
if (
|
|
88
|
-
o[key] === Object.prototype
|
|
89
|
-
|| o[key] === Number.prototype
|
|
90
|
-
|| o[key] === String.prototype
|
|
91
|
-
) {
|
|
92
|
-
o[key] = {};
|
|
93
|
-
}
|
|
94
|
-
if (o[key] === Array.prototype) { o[key] = []; }
|
|
95
|
-
o = o[key];
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
var lastKey = keys[keys.length - 1];
|
|
99
|
-
if (isConstructorOrProto(o, lastKey)) { return; }
|
|
100
|
-
if (
|
|
101
|
-
o === Object.prototype
|
|
102
|
-
|| o === Number.prototype
|
|
103
|
-
|| o === String.prototype
|
|
104
|
-
) {
|
|
105
|
-
o = {};
|
|
106
|
-
}
|
|
107
|
-
if (o === Array.prototype) { o = []; }
|
|
108
|
-
if (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {
|
|
109
|
-
o[lastKey] = value;
|
|
110
|
-
} else if (Array.isArray(o[lastKey])) {
|
|
111
|
-
o[lastKey].push(value);
|
|
112
|
-
} else {
|
|
113
|
-
o[lastKey] = [o[lastKey], value];
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
function setArg(key, val, arg) {
|
|
118
|
-
if (arg && flags.unknownFn && !argDefined(key, arg)) {
|
|
119
|
-
if (flags.unknownFn(arg) === false) { return; }
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
var value = !flags.strings[key] && isNumber(val)
|
|
123
|
-
? Number(val)
|
|
124
|
-
: val;
|
|
125
|
-
setKey(argv, key.split('.'), value);
|
|
126
|
-
|
|
127
|
-
(aliases[key] || []).forEach(function (x) {
|
|
128
|
-
setKey(argv, x.split('.'), value);
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
Object.keys(flags.bools).forEach(function (key) {
|
|
133
|
-
setArg(key, defaults[key] === undefined ? false : defaults[key]);
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
var notFlags = [];
|
|
137
|
-
|
|
138
|
-
if (args.indexOf('--') !== -1) {
|
|
139
|
-
notFlags = args.slice(args.indexOf('--') + 1);
|
|
140
|
-
args = args.slice(0, args.indexOf('--'));
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
for (var i = 0; i < args.length; i++) {
|
|
144
|
-
var arg = args[i];
|
|
145
|
-
var key;
|
|
146
|
-
var next;
|
|
147
|
-
|
|
148
|
-
if ((/^--.+=/).test(arg)) {
|
|
149
|
-
// Using [\s\S] instead of . because js doesn't support the
|
|
150
|
-
// 'dotall' regex modifier. See:
|
|
151
|
-
// http://stackoverflow.com/a/1068308/13216
|
|
152
|
-
var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
|
|
153
|
-
key = m[1];
|
|
154
|
-
var value = m[2];
|
|
155
|
-
if (flags.bools[key]) {
|
|
156
|
-
value = value !== 'false';
|
|
157
|
-
}
|
|
158
|
-
setArg(key, value, arg);
|
|
159
|
-
} else if ((/^--no-.+/).test(arg)) {
|
|
160
|
-
key = arg.match(/^--no-(.+)/)[1];
|
|
161
|
-
setArg(key, false, arg);
|
|
162
|
-
} else if ((/^--.+/).test(arg)) {
|
|
163
|
-
key = arg.match(/^--(.+)/)[1];
|
|
164
|
-
next = args[i + 1];
|
|
165
|
-
if (
|
|
166
|
-
next !== undefined
|
|
167
|
-
&& !(/^(-|--)[^-]/).test(next)
|
|
168
|
-
&& !flags.bools[key]
|
|
169
|
-
&& !flags.allBools
|
|
170
|
-
&& (aliases[key] ? !aliasIsBoolean(key) : true)
|
|
171
|
-
) {
|
|
172
|
-
setArg(key, next, arg);
|
|
173
|
-
i += 1;
|
|
174
|
-
} else if ((/^(true|false)$/).test(next)) {
|
|
175
|
-
setArg(key, next === 'true', arg);
|
|
176
|
-
i += 1;
|
|
177
|
-
} else {
|
|
178
|
-
setArg(key, flags.strings[key] ? '' : true, arg);
|
|
179
|
-
}
|
|
180
|
-
} else if ((/^-[^-]+/).test(arg)) {
|
|
181
|
-
var letters = arg.slice(1, -1).split('');
|
|
182
|
-
|
|
183
|
-
var broken = false;
|
|
184
|
-
for (var j = 0; j < letters.length; j++) {
|
|
185
|
-
next = arg.slice(j + 2);
|
|
186
|
-
|
|
187
|
-
if (next === '-') {
|
|
188
|
-
setArg(letters[j], next, arg);
|
|
189
|
-
continue;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
if ((/[A-Za-z]/).test(letters[j]) && next[0] === '=') {
|
|
193
|
-
setArg(letters[j], next.slice(1), arg);
|
|
194
|
-
broken = true;
|
|
195
|
-
break;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
if (
|
|
199
|
-
(/[A-Za-z]/).test(letters[j])
|
|
200
|
-
&& (/-?\d+(\.\d*)?(e-?\d+)?$/).test(next)
|
|
201
|
-
) {
|
|
202
|
-
setArg(letters[j], next, arg);
|
|
203
|
-
broken = true;
|
|
204
|
-
break;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
if (letters[j + 1] && letters[j + 1].match(/\W/)) {
|
|
208
|
-
setArg(letters[j], arg.slice(j + 2), arg);
|
|
209
|
-
broken = true;
|
|
210
|
-
break;
|
|
211
|
-
} else {
|
|
212
|
-
setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
key = arg.slice(-1)[0];
|
|
217
|
-
if (!broken && key !== '-') {
|
|
218
|
-
if (
|
|
219
|
-
args[i + 1]
|
|
220
|
-
&& !(/^(-|--)[^-]/).test(args[i + 1])
|
|
221
|
-
&& !flags.bools[key]
|
|
222
|
-
&& (aliases[key] ? !aliasIsBoolean(key) : true)
|
|
223
|
-
) {
|
|
224
|
-
setArg(key, args[i + 1], arg);
|
|
225
|
-
i += 1;
|
|
226
|
-
} else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) {
|
|
227
|
-
setArg(key, args[i + 1] === 'true', arg);
|
|
228
|
-
i += 1;
|
|
229
|
-
} else {
|
|
230
|
-
setArg(key, flags.strings[key] ? '' : true, arg);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
} else {
|
|
234
|
-
if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
|
|
235
|
-
argv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));
|
|
236
|
-
}
|
|
237
|
-
if (opts.stopEarly) {
|
|
238
|
-
argv._.push.apply(argv._, args.slice(i + 1));
|
|
239
|
-
break;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
Object.keys(defaults).forEach(function (k) {
|
|
245
|
-
if (!hasKey(argv, k.split('.'))) {
|
|
246
|
-
setKey(argv, k.split('.'), defaults[k]);
|
|
247
|
-
|
|
248
|
-
(aliases[k] || []).forEach(function (x) {
|
|
249
|
-
setKey(argv, x.split('.'), defaults[k]);
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
});
|
|
253
|
-
|
|
254
|
-
if (opts['--']) {
|
|
255
|
-
argv['--'] = notFlags.slice();
|
|
256
|
-
} else {
|
|
257
|
-
notFlags.forEach(function (k) {
|
|
258
|
-
argv._.push(k);
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
return argv;
|
|
263
|
-
};
|
package/lib/utils.js
DELETED
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const debug = require('debug')('ee-bin:lib:utils');
|
|
4
|
-
const path = require('path');
|
|
5
|
-
const fs = require('fs');
|
|
6
|
-
const chalk = require('chalk');
|
|
7
|
-
const is = require('is-type-of');
|
|
8
|
-
const { loadTsConfig } = require('config-file-ts');
|
|
9
|
-
const JsonLib = require('json5');
|
|
10
|
-
const mkdirp = require('mkdirp');
|
|
11
|
-
const OS = require('os');
|
|
12
|
-
const defaultConfig = require('../config/bin_default');
|
|
13
|
-
const { extend } = require('./extend');
|
|
14
|
-
|
|
15
|
-
const _basePath = process.cwd();
|
|
16
|
-
const userBin = './cmd/bin.js';
|
|
17
|
-
|
|
18
|
-
function loadConfig(binFile) {
|
|
19
|
-
const binPath = binFile ? binFile : userBin;
|
|
20
|
-
const userConfig = loadFile(binPath);
|
|
21
|
-
const result = extend(true, defaultConfig, userConfig);
|
|
22
|
-
debug('[loadConfig] bin:%j', result)
|
|
23
|
-
|
|
24
|
-
return result
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
function loadFile(filepath) {
|
|
28
|
-
const configFile = path.join(_basePath, filepath);
|
|
29
|
-
if (!fs.existsSync(configFile)) {
|
|
30
|
-
const errorTips = 'file ' + chalk.blue(`${configFile}`) + ' does not exist !';
|
|
31
|
-
throw new Error(errorTips)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
let result;
|
|
35
|
-
if (configFile.endsWith(".json5") || configFile.endsWith(".json")) {
|
|
36
|
-
const data = fs.readFileSync(configFile, 'utf8');
|
|
37
|
-
return JsonLib.parse(data);
|
|
38
|
-
}
|
|
39
|
-
if (configFile.endsWith(".js") || configFile.endsWith(".cjs")) {
|
|
40
|
-
result = require(configFile);
|
|
41
|
-
if (result.default != null) {
|
|
42
|
-
result = result.default;
|
|
43
|
-
}
|
|
44
|
-
} else if (configFile.endsWith(".ts")) {
|
|
45
|
-
result = loadTsConfig(configFile);
|
|
46
|
-
}
|
|
47
|
-
if (is.function(result) && !is.class(result)) {
|
|
48
|
-
result = result();
|
|
49
|
-
}
|
|
50
|
-
return result || {}
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* get electron program
|
|
55
|
-
*/
|
|
56
|
-
function getElectronProgram() {
|
|
57
|
-
let electronPath
|
|
58
|
-
const electronModulePath = path.dirname(require.resolve('electron'))
|
|
59
|
-
const pathFile = path.join(electronModulePath, 'path.txt')
|
|
60
|
-
const executablePath = fs.readFileSync(pathFile, 'utf-8')
|
|
61
|
-
if (executablePath) {
|
|
62
|
-
electronPath = path.join(electronModulePath, 'dist', executablePath)
|
|
63
|
-
} else {
|
|
64
|
-
throw new Error('Check that electron is installed!')
|
|
65
|
-
}
|
|
66
|
-
return electronPath;
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* 版本号比较
|
|
71
|
-
*/
|
|
72
|
-
function compareVersion(v1, v2) {
|
|
73
|
-
v1 = v1.split('.')
|
|
74
|
-
v2 = v2.split('.')
|
|
75
|
-
const len = Math.max(v1.length, v2.length)
|
|
76
|
-
|
|
77
|
-
while (v1.length < len) {
|
|
78
|
-
v1.push('0')
|
|
79
|
-
}
|
|
80
|
-
while (v2.length < len) {
|
|
81
|
-
v2.push('0')
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
for (let i = 0; i < len; i++) {
|
|
85
|
-
const num1 = parseInt(v1[i])
|
|
86
|
-
const num2 = parseInt(v2[i])
|
|
87
|
-
|
|
88
|
-
if (num1 > num2) {
|
|
89
|
-
return 1
|
|
90
|
-
} else if (num1 < num2) {
|
|
91
|
-
return -1
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return 0
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
function isWindows() {
|
|
99
|
-
return process.platform === 'win32'
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
function isOSX() {
|
|
103
|
-
return process.platform === 'darwin'
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
function isMacOS() {
|
|
107
|
-
return isOSX()
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
function isLinux() {
|
|
111
|
-
return process.platform === 'linux'
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
function isx86() {
|
|
115
|
-
return process.arch === 'ia32'
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function isx64() {
|
|
119
|
-
return process.arch === 'x64'
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Delete a file or folder
|
|
124
|
-
*/
|
|
125
|
-
function rm(name) {
|
|
126
|
-
// check
|
|
127
|
-
if (!fs.existsSync(name)) {
|
|
128
|
-
return
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
const nodeVersion = (process.versions && process.versions.node) || null;
|
|
132
|
-
if (nodeVersion && compareVersion(nodeVersion, '14.14.0') == 1) {
|
|
133
|
-
fs.rmSync(name, {recursive: true});
|
|
134
|
-
} else {
|
|
135
|
-
fs.rmdirSync(name, {recursive: true});
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* 获取项目根目录package.json
|
|
141
|
-
*/
|
|
142
|
-
function getPackage () {
|
|
143
|
-
const content = readJsonSync(path.join(_basePath, 'package.json'));
|
|
144
|
-
return content;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
function readJsonSync (filepath, encoding = 'utf8') {
|
|
148
|
-
if (!fs.existsSync(filepath)) {
|
|
149
|
-
throw new Error(filepath + ' is not found');
|
|
150
|
-
}
|
|
151
|
-
return JSON.parse(fs.readFileSync(filepath, { encoding }));
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
function writeJsonSync (filepath, str, options) {
|
|
155
|
-
options = options || {};
|
|
156
|
-
if (!('space' in options)) {
|
|
157
|
-
options.space = 2;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
mkdirp.sync(path.dirname(filepath));
|
|
161
|
-
if (typeof str === 'object') {
|
|
162
|
-
str = JSON.stringify(str, options.replacer, options.space) + '\n';
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
fs.writeFileSync(filepath, str);
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
function getPlatform(delimiter = "_", isDiffArch = false) {
|
|
169
|
-
let os = "";
|
|
170
|
-
if (isWindows()) {
|
|
171
|
-
os = "windows";
|
|
172
|
-
if (isDiffArch) {
|
|
173
|
-
const arch = isx64() ? "64" : "32";
|
|
174
|
-
os += delimiter + arch;
|
|
175
|
-
}
|
|
176
|
-
} else if (isMacOS()) {
|
|
177
|
-
let isAppleSilicon = false;
|
|
178
|
-
const cpus = OS.cpus();
|
|
179
|
-
for (let cpu of cpus) {
|
|
180
|
-
if (cpu.model.includes('Apple')) {
|
|
181
|
-
isAppleSilicon = true;
|
|
182
|
-
break;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
const core = isAppleSilicon? "apple" : "intel";
|
|
186
|
-
os = "macos" + delimiter + core;
|
|
187
|
-
} else if (isLinux()) {
|
|
188
|
-
os = "linux";
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
return os;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
// Get cmd parameter by name
|
|
195
|
-
function getArgumentByName(name, args) {
|
|
196
|
-
if (!args) {
|
|
197
|
-
args = process.argv;
|
|
198
|
-
}
|
|
199
|
-
for (let i = 0; i < args.length; i++) {
|
|
200
|
-
const item = args[i];
|
|
201
|
-
const prefixKey = `--${name}=`;
|
|
202
|
-
if (item.indexOf(prefixKey) !== -1) {
|
|
203
|
-
return item.substring(prefixKey.length);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
function getExtraResourcesDir() {
|
|
209
|
-
const dir = path.join(_basePath, "build", "extraResources")
|
|
210
|
-
return dir;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
function getModuleNameFromPath(modulePath) {
|
|
214
|
-
// 分割路径段(处理不同系统的分隔符)
|
|
215
|
-
const segments = path.normalize(modulePath).split(path.sep);
|
|
216
|
-
|
|
217
|
-
// 从后往前查找 node_modules
|
|
218
|
-
for (let i = segments.length - 1; i >= 0; i--) {
|
|
219
|
-
if (segments[i] === 'node_modules') {
|
|
220
|
-
// 普通模块:node_modules/dayjs
|
|
221
|
-
if (i + 1 < segments.length) {
|
|
222
|
-
return segments[i + 1];
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
// 作用域模块:node_modules/@scope/module
|
|
226
|
-
if (i + 2 < segments.length && segments[i + 1].startsWith('@')) {
|
|
227
|
-
return `${segments[i + 1]}/${segments[i + 2]}`;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
break; // 找到 node_modules 但后面没有模块名
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
return null;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
module.exports = {
|
|
238
|
-
loadConfig,
|
|
239
|
-
getElectronProgram,
|
|
240
|
-
compareVersion,
|
|
241
|
-
isWindows,
|
|
242
|
-
isOSX,
|
|
243
|
-
isMacOS,
|
|
244
|
-
isLinux,
|
|
245
|
-
isx86,
|
|
246
|
-
isx64,
|
|
247
|
-
getPlatform,
|
|
248
|
-
rm,
|
|
249
|
-
getPackage,
|
|
250
|
-
readJsonSync,
|
|
251
|
-
writeJsonSync,
|
|
252
|
-
getArgumentByName,
|
|
253
|
-
getExtraResourcesDir,
|
|
254
|
-
getModuleNameFromPath
|
|
255
|
-
}
|
package/readme.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
## ee-bin
|