mm_expand 2.3.9 → 2.4.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/lib/eventer.js +14 -13
- package/lib/file.js +4 -26
- package/package.json +1 -1
package/lib/eventer.js
CHANGED
|
@@ -628,7 +628,7 @@ Eventer.prototype._execSingleTask = async function (o, params, ctx, options) {
|
|
|
628
628
|
this._handleSuccessResult({ result, o, ctx, arr, task });
|
|
629
629
|
} catch (e) {
|
|
630
630
|
// 处理错误
|
|
631
|
-
this.
|
|
631
|
+
this._handleSeqTaskError(e, o, ctx, task);
|
|
632
632
|
}
|
|
633
633
|
};
|
|
634
634
|
|
|
@@ -667,7 +667,7 @@ Eventer.prototype._handleSuccessResult = function (config) {
|
|
|
667
667
|
task.tasks.splice(task.tasks.indexOf(task.task), 1);
|
|
668
668
|
};
|
|
669
669
|
|
|
670
|
-
Eventer.prototype.
|
|
670
|
+
Eventer.prototype._handleSeqTaskError = function (e, o, ctx, task) {
|
|
671
671
|
ctx.error_count++;
|
|
672
672
|
this.log('error', `事件执行失败 [${ctx.space}:${ctx.event}] - ${o.name}`, e);
|
|
673
673
|
|
|
@@ -1265,7 +1265,7 @@ Eventer.prototype._ensureNs = function (name) {
|
|
|
1265
1265
|
*/
|
|
1266
1266
|
Eventer.prototype._execNsEvents = async function (name, key, params) {
|
|
1267
1267
|
let list = this._dict[name][key];
|
|
1268
|
-
const
|
|
1268
|
+
const name_results = [];
|
|
1269
1269
|
const arr = []; // 存储需要移除的事件
|
|
1270
1270
|
|
|
1271
1271
|
// 执行事件处理函数
|
|
@@ -1274,7 +1274,7 @@ Eventer.prototype._execNsEvents = async function (name, key, params) {
|
|
|
1274
1274
|
let obj = list[i];
|
|
1275
1275
|
// 执行事件处理函数
|
|
1276
1276
|
let result = await obj.func.apply(obj, params);
|
|
1277
|
-
|
|
1277
|
+
name_results.push(result);
|
|
1278
1278
|
|
|
1279
1279
|
// 处理执行次数限制
|
|
1280
1280
|
if (obj.times >= 0) {
|
|
@@ -1286,7 +1286,7 @@ Eventer.prototype._execNsEvents = async function (name, key, params) {
|
|
|
1286
1286
|
} catch (e) {
|
|
1287
1287
|
// 记录错误但不中断执行
|
|
1288
1288
|
this.log('error', `事件执行失败 [${name}:${key}] - ${list[i].name}`, e);
|
|
1289
|
-
|
|
1289
|
+
name_results.push({
|
|
1290
1290
|
_error: true,
|
|
1291
1291
|
error: e,
|
|
1292
1292
|
handler: list[i].name
|
|
@@ -1592,7 +1592,7 @@ Eventer.prototype.has = function (key, name) {
|
|
|
1592
1592
|
Eventer.prototype.count = function (key) {
|
|
1593
1593
|
if (key) {
|
|
1594
1594
|
// 解析可能的命名空间模式
|
|
1595
|
-
if (key.
|
|
1595
|
+
if (key.endsWith(':*')) {
|
|
1596
1596
|
// 统计命名空间下所有事件
|
|
1597
1597
|
let space = key.split(':')[0];
|
|
1598
1598
|
if (this._dict[space]) {
|
|
@@ -1684,10 +1684,10 @@ Eventer.prototype._initEventChain = function (full_from_event) {
|
|
|
1684
1684
|
|
|
1685
1685
|
Eventer.prototype._addTargetEvents = function (full_from_event, to_events) {
|
|
1686
1686
|
// 确保目标事件是数组
|
|
1687
|
-
let target_events = Array.
|
|
1687
|
+
let target_events = Array.isArray(to_events) ? to_events : [to_events];
|
|
1688
1688
|
|
|
1689
1689
|
for (let i = 0; i < target_events.length; i++) {
|
|
1690
|
-
this.
|
|
1690
|
+
this._addTargetEvent(full_from_event, target_events[i]);
|
|
1691
1691
|
}
|
|
1692
1692
|
};
|
|
1693
1693
|
|
|
@@ -1737,7 +1737,7 @@ Eventer.prototype.unchain = function (from_event, to_events) {
|
|
|
1737
1737
|
};
|
|
1738
1738
|
|
|
1739
1739
|
Eventer.prototype._removeTargetEvents = function (full_from_event, to_events) {
|
|
1740
|
-
let target_events = Array.
|
|
1740
|
+
let target_events = Array.isArray(to_events) ? to_events : [to_events];
|
|
1741
1741
|
|
|
1742
1742
|
for (let i = 0; i < target_events.length; i++) {
|
|
1743
1743
|
this._removeTargetEvent(full_from_event, target_events[i]);
|
|
@@ -1981,7 +1981,7 @@ Eventer.prototype.onMany = function (events_map) {
|
|
|
1981
1981
|
}
|
|
1982
1982
|
|
|
1983
1983
|
for (let event_name in events_map) {
|
|
1984
|
-
if (
|
|
1984
|
+
if (Object.prototype.hasOwnProperty.call(events_map, event_name)) {
|
|
1985
1985
|
this.on(event_name, events_map[event_name]);
|
|
1986
1986
|
}
|
|
1987
1987
|
}
|
|
@@ -2035,10 +2035,11 @@ Eventer.prototype._sort = function (events) {
|
|
|
2035
2035
|
* @private
|
|
2036
2036
|
*/
|
|
2037
2037
|
Eventer.prototype._runMiddleware = async function (type, ctx) {
|
|
2038
|
-
if (!this._middleware || this._middleware.length === 0) return;
|
|
2038
|
+
if (!this._middleware || !this._middleware[type] || this._middleware[type].length === 0) return;
|
|
2039
2039
|
|
|
2040
|
-
|
|
2041
|
-
|
|
2040
|
+
const mwList = this._middleware[type];
|
|
2041
|
+
for (let i = 0; i < mwList.length; i++) {
|
|
2042
|
+
await this._execMiddleware(mwList[i], type, ctx, i);
|
|
2042
2043
|
// 如果上下文被取消,则停止执行
|
|
2043
2044
|
if (ctx.cancelled) break;
|
|
2044
2045
|
}
|
package/lib/file.js
CHANGED
|
@@ -173,28 +173,6 @@ File.prototype.getAll = function (dir, keyword, keyword_dir) {
|
|
|
173
173
|
return list;
|
|
174
174
|
};
|
|
175
175
|
|
|
176
|
-
/**
|
|
177
|
-
* 搜索目录下所有文件
|
|
178
|
-
* @param {string} dir 目录地址
|
|
179
|
-
* @param {string} keyword 搜索关键词
|
|
180
|
-
* @param {string} keyword_dir 目录搜素关键词
|
|
181
|
-
* @returns {Array} 文件路径数组
|
|
182
|
-
*/
|
|
183
|
-
File.prototype.getAll = function (dir, keyword, keyword_dir) {
|
|
184
|
-
// 文件数组
|
|
185
|
-
var list = [];
|
|
186
|
-
|
|
187
|
-
// 目录数组
|
|
188
|
-
var dirs = [];
|
|
189
|
-
// 获取相关目录
|
|
190
|
-
eachDir(dirs, dir.fullname(), keyword_dir);
|
|
191
|
-
var len = dirs.length;
|
|
192
|
-
for (var i = 0; i < len; i++) {
|
|
193
|
-
getFile(list, dirs[i], keyword);
|
|
194
|
-
}
|
|
195
|
-
return list;
|
|
196
|
-
};
|
|
197
|
-
|
|
198
176
|
/**
|
|
199
177
|
* 搜索目录下所有文件(异步并行极速版)
|
|
200
178
|
* @param {string} dir 目录地址
|
|
@@ -217,7 +195,7 @@ File.prototype.getAllAsync = async function (dir, keyword, keyword_dir) {
|
|
|
217
195
|
async function getFileAsync(directory) {
|
|
218
196
|
var items;
|
|
219
197
|
try {
|
|
220
|
-
items = await fsp.readdir(directory, {
|
|
198
|
+
items = await fsp.readdir(directory, { withFileTypes: true });
|
|
221
199
|
} catch {
|
|
222
200
|
return [];
|
|
223
201
|
}
|
|
@@ -409,7 +387,7 @@ function eachDir(list, dir, keyword) {
|
|
|
409
387
|
async function eachDirAsync(list, dir, keyword) {
|
|
410
388
|
var items;
|
|
411
389
|
try {
|
|
412
|
-
items = await fsp.readdir(dir, {
|
|
390
|
+
items = await fsp.readdir(dir, { withFileTypes: true });
|
|
413
391
|
} catch {
|
|
414
392
|
return;
|
|
415
393
|
}
|
|
@@ -417,7 +395,7 @@ async function eachDirAsync(list, dir, keyword) {
|
|
|
417
395
|
var subDirs = [];
|
|
418
396
|
for (var i = 0; i < items.length; i++) {
|
|
419
397
|
var item = items[i];
|
|
420
|
-
if (item.
|
|
398
|
+
if (item.isDirectory()) {
|
|
421
399
|
var full_path = join(dir, item.name);
|
|
422
400
|
if (!keyword || item.name.has(keyword)) {
|
|
423
401
|
list.push(full_path);
|
|
@@ -620,7 +598,7 @@ String.prototype.copyDir = function (file, func) {
|
|
|
620
598
|
String.prototype.isDir = function () {
|
|
621
599
|
var bl = false;
|
|
622
600
|
try {
|
|
623
|
-
bl = statSync(this + '').
|
|
601
|
+
bl = statSync(this + '').isDirectory();
|
|
624
602
|
} catch {
|
|
625
603
|
// $.log.error("非路径");
|
|
626
604
|
}
|