ee-core 2.9.2-beta.1 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +65 -65
  3. package/addon/index.js +34 -34
  4. package/addon/window/index.js +98 -98
  5. package/bin/tools.js +8 -8
  6. package/config/cache.js +41 -38
  7. package/config/config.default.js +331 -330
  8. package/config/index.js +75 -73
  9. package/const/channel.js +17 -17
  10. package/const/index.js +8 -8
  11. package/controller/baseContextClass.js +34 -34
  12. package/controller/index.js +34 -34
  13. package/core/index.js +10 -10
  14. package/core/lib/ee.js +216 -216
  15. package/core/lib/loader/context_loader.js +106 -106
  16. package/core/lib/loader/ee_loader.js +435 -435
  17. package/core/lib/loader/file_loader.js +326 -326
  18. package/core/lib/loader/mixin/addon.js +32 -32
  19. package/core/lib/loader/mixin/config.js +130 -130
  20. package/core/lib/loader/mixin/controller.js +125 -125
  21. package/core/lib/loader/mixin/service.js +28 -28
  22. package/core/lib/utils/base_context_class.js +34 -34
  23. package/core/lib/utils/function.js +30 -30
  24. package/core/lib/utils/index.js +133 -133
  25. package/core/lib/utils/sequencify.js +59 -59
  26. package/core/lib/utils/timing.js +77 -77
  27. package/cross/index.js +183 -183
  28. package/cross/spawnProcess.js +183 -183
  29. package/ee/appLoader.js +48 -48
  30. package/ee/application.js +99 -99
  31. package/ee/baseApp.js +103 -102
  32. package/ee/eeApp.js +408 -408
  33. package/ee/index.js +57 -57
  34. package/electron/app/index.js +64 -58
  35. package/electron/index.js +19 -19
  36. package/electron/window/index.js +73 -73
  37. package/electron/window/winState.js +186 -186
  38. package/exception/index.js +112 -112
  39. package/html/boot.html +98 -98
  40. package/html/cross-failure.html +28 -28
  41. package/html/failure.html +28 -28
  42. package/html/index.js +13 -13
  43. package/httpclient/index.js +161 -161
  44. package/index.js +54 -54
  45. package/jobs/baseJobClass.js +16 -16
  46. package/jobs/child/app.js +65 -65
  47. package/jobs/child/forkProcess.js +145 -145
  48. package/jobs/child/index.js +82 -82
  49. package/jobs/child-pool/index.js +213 -213
  50. package/jobs/index.js +8 -8
  51. package/jobs/load-balancer/algorithm/index.js +11 -11
  52. package/jobs/load-balancer/algorithm/minimumConnection.js +18 -18
  53. package/jobs/load-balancer/algorithm/polling.js +11 -11
  54. package/jobs/load-balancer/algorithm/random.js +9 -9
  55. package/jobs/load-balancer/algorithm/specify.js +14 -14
  56. package/jobs/load-balancer/algorithm/weights.js +21 -21
  57. package/jobs/load-balancer/algorithm/weightsMinimumConnection.js +29 -29
  58. package/jobs/load-balancer/algorithm/weightsPolling.js +22 -22
  59. package/jobs/load-balancer/algorithm/weightsRandom.js +16 -16
  60. package/jobs/load-balancer/consts.js +9 -9
  61. package/jobs/load-balancer/index.js +201 -201
  62. package/jobs/load-balancer/scheduler.js +31 -31
  63. package/jobs/renderer/index.js +141 -141
  64. package/jobs/renderer/loadView.js +40 -40
  65. package/jobs/unification.js +63 -63
  66. package/loader/index.js +172 -172
  67. package/log/index.js +68 -68
  68. package/log/logger.js +86 -80
  69. package/main/index.js +56 -56
  70. package/message/childMessage.js +54 -54
  71. package/message/index.js +18 -18
  72. package/old-utils/index.js +91 -91
  73. package/package.json +38 -38
  74. package/ps/index.js +371 -371
  75. package/services/baseContextClass.js +34 -34
  76. package/services/index.js +40 -40
  77. package/socket/httpServer.js +147 -147
  78. package/socket/index.js +81 -81
  79. package/socket/io.js +27 -27
  80. package/socket/ipcServer.js +112 -112
  81. package/socket/socketServer.js +69 -65
  82. package/storage/index.js +38 -38
  83. package/storage/jsondb/adapters/Base.js +23 -23
  84. package/storage/jsondb/adapters/FileSync.js +64 -52
  85. package/storage/jsondb/main.js +55 -42
  86. package/storage/jsondbStorage.js +195 -195
  87. package/storage/sqliteStorage.js +123 -123
  88. package/utils/co.js +237 -237
  89. package/utils/copyto.js +160 -160
  90. package/utils/depd/index.js +538 -538
  91. package/utils/depd/lib/browser/index.js +77 -77
  92. package/utils/extend.js +73 -73
  93. package/utils/get-port/index.d.ts +64 -64
  94. package/utils/get-port/index.js +148 -148
  95. package/utils/helper.js +220 -220
  96. package/utils/index.js +160 -160
  97. package/utils/ip.js +261 -261
  98. package/utils/is.js +145 -145
  99. package/utils/json.js +72 -72
  100. package/utils/pargv.js +263 -263
  101. package/utils/time/index.js +19 -19
  102. package/utils/time/ms.js +162 -162
  103. package/utils/wrap.js +35 -35
package/utils/co.js CHANGED
@@ -1,237 +1,237 @@
1
-
2
- /**
3
- * slice() reference.
4
- */
5
-
6
- var slice = Array.prototype.slice;
7
-
8
- /**
9
- * Expose `co`.
10
- */
11
-
12
- module.exports = co['default'] = co.co = co;
13
-
14
- /**
15
- * Wrap the given generator `fn` into a
16
- * function that returns a promise.
17
- * This is a separate function so that
18
- * every `co()` call doesn't create a new,
19
- * unnecessary closure.
20
- *
21
- * @param {GeneratorFunction} fn
22
- * @return {Function}
23
- * @api public
24
- */
25
-
26
- co.wrap = function (fn) {
27
- createPromise.__generatorFunction__ = fn;
28
- return createPromise;
29
- function createPromise() {
30
- return co.call(this, fn.apply(this, arguments));
31
- }
32
- };
33
-
34
- /**
35
- * Execute the generator function or a generator
36
- * and return a promise.
37
- *
38
- * @param {Function} fn
39
- * @return {Promise}
40
- * @api public
41
- */
42
-
43
- function co(gen) {
44
- var ctx = this;
45
- var args = slice.call(arguments, 1)
46
-
47
- // we wrap everything in a promise to avoid promise chaining,
48
- // which leads to memory leak errors.
49
- // see https://github.com/tj/co/issues/180
50
- return new Promise(function(resolve, reject) {
51
- if (typeof gen === 'function') gen = gen.apply(ctx, args);
52
- if (!gen || typeof gen.next !== 'function') return resolve(gen);
53
-
54
- onFulfilled();
55
-
56
- /**
57
- * @param {Mixed} res
58
- * @return {Promise}
59
- * @api private
60
- */
61
-
62
- function onFulfilled(res) {
63
- var ret;
64
- try {
65
- ret = gen.next(res);
66
- } catch (e) {
67
- return reject(e);
68
- }
69
- next(ret);
70
- }
71
-
72
- /**
73
- * @param {Error} err
74
- * @return {Promise}
75
- * @api private
76
- */
77
-
78
- function onRejected(err) {
79
- var ret;
80
- try {
81
- ret = gen.throw(err);
82
- } catch (e) {
83
- return reject(e);
84
- }
85
- next(ret);
86
- }
87
-
88
- /**
89
- * Get the next value in the generator,
90
- * return a promise.
91
- *
92
- * @param {Object} ret
93
- * @return {Promise}
94
- * @api private
95
- */
96
-
97
- function next(ret) {
98
- if (ret.done) return resolve(ret.value);
99
- var value = toPromise.call(ctx, ret.value);
100
- if (value && isPromise(value)) return value.then(onFulfilled, onRejected);
101
- return onRejected(new TypeError('You may only yield a function, promise, generator, array, or object, '
102
- + 'but the following object was passed: "' + String(ret.value) + '"'));
103
- }
104
- });
105
- }
106
-
107
- /**
108
- * Convert a `yield`ed value into a promise.
109
- *
110
- * @param {Mixed} obj
111
- * @return {Promise}
112
- * @api private
113
- */
114
-
115
- function toPromise(obj) {
116
- if (!obj) return obj;
117
- if (isPromise(obj)) return obj;
118
- if (isGeneratorFunction(obj) || isGenerator(obj)) return co.call(this, obj);
119
- if ('function' == typeof obj) return thunkToPromise.call(this, obj);
120
- if (Array.isArray(obj)) return arrayToPromise.call(this, obj);
121
- if (isObject(obj)) return objectToPromise.call(this, obj);
122
- return obj;
123
- }
124
-
125
- /**
126
- * Convert a thunk to a promise.
127
- *
128
- * @param {Function}
129
- * @return {Promise}
130
- * @api private
131
- */
132
-
133
- function thunkToPromise(fn) {
134
- var ctx = this;
135
- return new Promise(function (resolve, reject) {
136
- fn.call(ctx, function (err, res) {
137
- if (err) return reject(err);
138
- if (arguments.length > 2) res = slice.call(arguments, 1);
139
- resolve(res);
140
- });
141
- });
142
- }
143
-
144
- /**
145
- * Convert an array of "yieldables" to a promise.
146
- * Uses `Promise.all()` internally.
147
- *
148
- * @param {Array} obj
149
- * @return {Promise}
150
- * @api private
151
- */
152
-
153
- function arrayToPromise(obj) {
154
- return Promise.all(obj.map(toPromise, this));
155
- }
156
-
157
- /**
158
- * Convert an object of "yieldables" to a promise.
159
- * Uses `Promise.all()` internally.
160
- *
161
- * @param {Object} obj
162
- * @return {Promise}
163
- * @api private
164
- */
165
-
166
- function objectToPromise(obj){
167
- var results = new obj.constructor();
168
- var keys = Object.keys(obj);
169
- var promises = [];
170
- for (var i = 0; i < keys.length; i++) {
171
- var key = keys[i];
172
- var promise = toPromise.call(this, obj[key]);
173
- if (promise && isPromise(promise)) defer(promise, key);
174
- else results[key] = obj[key];
175
- }
176
- return Promise.all(promises).then(function () {
177
- return results;
178
- });
179
-
180
- function defer(promise, key) {
181
- // predefine the key in the result
182
- results[key] = undefined;
183
- promises.push(promise.then(function (res) {
184
- results[key] = res;
185
- }));
186
- }
187
- }
188
-
189
- /**
190
- * Check if `obj` is a promise.
191
- *
192
- * @param {Object} obj
193
- * @return {Boolean}
194
- * @api private
195
- */
196
-
197
- function isPromise(obj) {
198
- return 'function' == typeof obj.then;
199
- }
200
-
201
- /**
202
- * Check if `obj` is a generator.
203
- *
204
- * @param {Mixed} obj
205
- * @return {Boolean}
206
- * @api private
207
- */
208
-
209
- function isGenerator(obj) {
210
- return 'function' == typeof obj.next && 'function' == typeof obj.throw;
211
- }
212
-
213
- /**
214
- * Check if `obj` is a generator function.
215
- *
216
- * @param {Mixed} obj
217
- * @return {Boolean}
218
- * @api private
219
- */
220
- function isGeneratorFunction(obj) {
221
- var constructor = obj.constructor;
222
- if (!constructor) return false;
223
- if ('GeneratorFunction' === constructor.name || 'GeneratorFunction' === constructor.displayName) return true;
224
- return isGenerator(constructor.prototype);
225
- }
226
-
227
- /**
228
- * Check for plain object.
229
- *
230
- * @param {Mixed} val
231
- * @return {Boolean}
232
- * @api private
233
- */
234
-
235
- function isObject(val) {
236
- return Object == val.constructor;
237
- }
1
+
2
+ /**
3
+ * slice() reference.
4
+ */
5
+
6
+ var slice = Array.prototype.slice;
7
+
8
+ /**
9
+ * Expose `co`.
10
+ */
11
+
12
+ module.exports = co['default'] = co.co = co;
13
+
14
+ /**
15
+ * Wrap the given generator `fn` into a
16
+ * function that returns a promise.
17
+ * This is a separate function so that
18
+ * every `co()` call doesn't create a new,
19
+ * unnecessary closure.
20
+ *
21
+ * @param {GeneratorFunction} fn
22
+ * @return {Function}
23
+ * @api public
24
+ */
25
+
26
+ co.wrap = function (fn) {
27
+ createPromise.__generatorFunction__ = fn;
28
+ return createPromise;
29
+ function createPromise() {
30
+ return co.call(this, fn.apply(this, arguments));
31
+ }
32
+ };
33
+
34
+ /**
35
+ * Execute the generator function or a generator
36
+ * and return a promise.
37
+ *
38
+ * @param {Function} fn
39
+ * @return {Promise}
40
+ * @api public
41
+ */
42
+
43
+ function co(gen) {
44
+ var ctx = this;
45
+ var args = slice.call(arguments, 1)
46
+
47
+ // we wrap everything in a promise to avoid promise chaining,
48
+ // which leads to memory leak errors.
49
+ // see https://github.com/tj/co/issues/180
50
+ return new Promise(function(resolve, reject) {
51
+ if (typeof gen === 'function') gen = gen.apply(ctx, args);
52
+ if (!gen || typeof gen.next !== 'function') return resolve(gen);
53
+
54
+ onFulfilled();
55
+
56
+ /**
57
+ * @param {Mixed} res
58
+ * @return {Promise}
59
+ * @api private
60
+ */
61
+
62
+ function onFulfilled(res) {
63
+ var ret;
64
+ try {
65
+ ret = gen.next(res);
66
+ } catch (e) {
67
+ return reject(e);
68
+ }
69
+ next(ret);
70
+ }
71
+
72
+ /**
73
+ * @param {Error} err
74
+ * @return {Promise}
75
+ * @api private
76
+ */
77
+
78
+ function onRejected(err) {
79
+ var ret;
80
+ try {
81
+ ret = gen.throw(err);
82
+ } catch (e) {
83
+ return reject(e);
84
+ }
85
+ next(ret);
86
+ }
87
+
88
+ /**
89
+ * Get the next value in the generator,
90
+ * return a promise.
91
+ *
92
+ * @param {Object} ret
93
+ * @return {Promise}
94
+ * @api private
95
+ */
96
+
97
+ function next(ret) {
98
+ if (ret.done) return resolve(ret.value);
99
+ var value = toPromise.call(ctx, ret.value);
100
+ if (value && isPromise(value)) return value.then(onFulfilled, onRejected);
101
+ return onRejected(new TypeError('You may only yield a function, promise, generator, array, or object, '
102
+ + 'but the following object was passed: "' + String(ret.value) + '"'));
103
+ }
104
+ });
105
+ }
106
+
107
+ /**
108
+ * Convert a `yield`ed value into a promise.
109
+ *
110
+ * @param {Mixed} obj
111
+ * @return {Promise}
112
+ * @api private
113
+ */
114
+
115
+ function toPromise(obj) {
116
+ if (!obj) return obj;
117
+ if (isPromise(obj)) return obj;
118
+ if (isGeneratorFunction(obj) || isGenerator(obj)) return co.call(this, obj);
119
+ if ('function' == typeof obj) return thunkToPromise.call(this, obj);
120
+ if (Array.isArray(obj)) return arrayToPromise.call(this, obj);
121
+ if (isObject(obj)) return objectToPromise.call(this, obj);
122
+ return obj;
123
+ }
124
+
125
+ /**
126
+ * Convert a thunk to a promise.
127
+ *
128
+ * @param {Function}
129
+ * @return {Promise}
130
+ * @api private
131
+ */
132
+
133
+ function thunkToPromise(fn) {
134
+ var ctx = this;
135
+ return new Promise(function (resolve, reject) {
136
+ fn.call(ctx, function (err, res) {
137
+ if (err) return reject(err);
138
+ if (arguments.length > 2) res = slice.call(arguments, 1);
139
+ resolve(res);
140
+ });
141
+ });
142
+ }
143
+
144
+ /**
145
+ * Convert an array of "yieldables" to a promise.
146
+ * Uses `Promise.all()` internally.
147
+ *
148
+ * @param {Array} obj
149
+ * @return {Promise}
150
+ * @api private
151
+ */
152
+
153
+ function arrayToPromise(obj) {
154
+ return Promise.all(obj.map(toPromise, this));
155
+ }
156
+
157
+ /**
158
+ * Convert an object of "yieldables" to a promise.
159
+ * Uses `Promise.all()` internally.
160
+ *
161
+ * @param {Object} obj
162
+ * @return {Promise}
163
+ * @api private
164
+ */
165
+
166
+ function objectToPromise(obj){
167
+ var results = new obj.constructor();
168
+ var keys = Object.keys(obj);
169
+ var promises = [];
170
+ for (var i = 0; i < keys.length; i++) {
171
+ var key = keys[i];
172
+ var promise = toPromise.call(this, obj[key]);
173
+ if (promise && isPromise(promise)) defer(promise, key);
174
+ else results[key] = obj[key];
175
+ }
176
+ return Promise.all(promises).then(function () {
177
+ return results;
178
+ });
179
+
180
+ function defer(promise, key) {
181
+ // predefine the key in the result
182
+ results[key] = undefined;
183
+ promises.push(promise.then(function (res) {
184
+ results[key] = res;
185
+ }));
186
+ }
187
+ }
188
+
189
+ /**
190
+ * Check if `obj` is a promise.
191
+ *
192
+ * @param {Object} obj
193
+ * @return {Boolean}
194
+ * @api private
195
+ */
196
+
197
+ function isPromise(obj) {
198
+ return 'function' == typeof obj.then;
199
+ }
200
+
201
+ /**
202
+ * Check if `obj` is a generator.
203
+ *
204
+ * @param {Mixed} obj
205
+ * @return {Boolean}
206
+ * @api private
207
+ */
208
+
209
+ function isGenerator(obj) {
210
+ return 'function' == typeof obj.next && 'function' == typeof obj.throw;
211
+ }
212
+
213
+ /**
214
+ * Check if `obj` is a generator function.
215
+ *
216
+ * @param {Mixed} obj
217
+ * @return {Boolean}
218
+ * @api private
219
+ */
220
+ function isGeneratorFunction(obj) {
221
+ var constructor = obj.constructor;
222
+ if (!constructor) return false;
223
+ if ('GeneratorFunction' === constructor.name || 'GeneratorFunction' === constructor.displayName) return true;
224
+ return isGenerator(constructor.prototype);
225
+ }
226
+
227
+ /**
228
+ * Check for plain object.
229
+ *
230
+ * @param {Mixed} val
231
+ * @return {Boolean}
232
+ * @api private
233
+ */
234
+
235
+ function isObject(val) {
236
+ return Object == val.constructor;
237
+ }