bobe-shared 0.0.21 → 0.0.23

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/index.umd.js CHANGED
@@ -4,49 +4,62 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.BobeShared = {}));
5
5
  })(this, (function (exports) { 'use strict';
6
6
 
7
- var __defProp = Object.defineProperty;
8
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
- var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
- var __spreadValues = (a, b) => {
13
- for (var prop in b || (b = {}))
14
- if (__hasOwnProp.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- if (__getOwnPropSymbols)
17
- for (var prop of __getOwnPropSymbols(b)) {
18
- if (__propIsEnum.call(b, prop))
19
- __defNormalProp(a, prop, b[prop]);
20
- }
21
- return a;
22
- };
23
- var __async = (__this, __arguments, generator) => {
24
- return new Promise((resolve, reject) => {
25
- var fulfilled = (value) => {
26
- try {
27
- step(generator.next(value));
28
- } catch (e) {
29
- reject(e);
30
- }
31
- };
32
- var rejected = (value) => {
7
+ function _arrayLikeToArray(r, a) {
8
+ (null == a || a > r.length) && (a = r.length);
9
+ for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
10
+ return n;
11
+ }
12
+ function _arrayWithHoles(r) {
13
+ if (Array.isArray(r)) return r;
14
+ }
15
+ function _iterableToArrayLimit(r, l) {
16
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
17
+ if (null != t) {
18
+ var e,
19
+ n,
20
+ i,
21
+ u,
22
+ a = [],
23
+ f = true,
24
+ o = false;
25
+ try {
26
+ if (i = (t = t.call(r)).next, 0 === l) {
27
+ if (Object(t) !== t) return;
28
+ f = !1;
29
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
30
+ } catch (r) {
31
+ o = true, n = r;
32
+ } finally {
33
33
  try {
34
- step(generator.throw(value));
35
- } catch (e) {
36
- reject(e);
34
+ if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
35
+ } finally {
36
+ if (o) throw n;
37
37
  }
38
- };
39
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
40
- step((generator = generator.apply(__this, __arguments)).next());
41
- });
42
- };
38
+ }
39
+ return a;
40
+ }
41
+ }
42
+ function _nonIterableRest() {
43
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
44
+ }
45
+ function _slicedToArray(r, e) {
46
+ return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
47
+ }
48
+ function _unsupportedIterableToArray(r, a) {
49
+ if (r) {
50
+ if ("string" == typeof r) return _arrayLikeToArray(r, a);
51
+ var t = {}.toString.call(r).slice(8, -1);
52
+ return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
53
+ }
54
+ }
55
+
43
56
  const timestamp = globalThis.performance ? globalThis.performance.now.bind(globalThis.performance) : Date.now;
44
- var EventMode = /* @__PURE__ */ ((EventMode2) => {
57
+ var EventMode = /* @__PURE__ */(EventMode2 => {
45
58
  EventMode2[EventMode2["Immediate"] = 0] = "Immediate";
46
59
  EventMode2[EventMode2["Queue"] = 1] = "Queue";
47
60
  return EventMode2;
48
61
  })(EventMode || {});
49
- var ProcessStatus = /* @__PURE__ */ ((ProcessStatus2) => {
62
+ var ProcessStatus = /* @__PURE__ */(ProcessStatus2 => {
50
63
  ProcessStatus2[ProcessStatus2["None"] = 0] = "None";
51
64
  ProcessStatus2[ProcessStatus2["Processing"] = 1] = "Processing";
52
65
  ProcessStatus2[ProcessStatus2["Paused"] = 2] = "Paused";
@@ -61,15 +74,15 @@
61
74
  this.opt = opt;
62
75
  this.eventQueue = [];
63
76
  this.status = 0 /* None */;
64
- this.subMap = /* @__PURE__ */ new Map();
77
+ this.subMap = /* @__PURE__ */new Map();
65
78
  this.on = (type, fn) => {
66
79
  if (type == null) type = ALL;
67
- const suber = this.subMap.get(type) || /* @__PURE__ */ new Set();
80
+ const suber = this.subMap.get(type) || /* @__PURE__ */new Set();
68
81
  suber.add(fn);
69
82
  this.subMap.set(type, suber);
70
83
  };
71
84
  this.off = (type, fn) => {
72
- const suber = this.subMap.get(type != null ? type : ALL);
85
+ const suber = this.subMap.get(type ?? ALL);
73
86
  if (!suber) return;
74
87
  suber.delete(fn);
75
88
  };
@@ -77,8 +90,8 @@
77
90
  fn["once"] = true;
78
91
  this.on(type, fn);
79
92
  };
80
- this.promiseOnce = (type) => {
81
- return new Promise((resolve) => {
93
+ this.promiseOnce = type => {
94
+ return new Promise(resolve => {
82
95
  this.once(type, (...args) => {
83
96
  resolve(args);
84
97
  });
@@ -89,7 +102,7 @@
89
102
  this.scheduler = type;
90
103
  return;
91
104
  }
92
- const set = this.subMap.get(type) || /* @__PURE__ */ new Set();
105
+ const set = this.subMap.get(type) || /* @__PURE__ */new Set();
93
106
  set["scheduler"] = scheduler;
94
107
  this.subMap.set(type, set);
95
108
  };
@@ -115,12 +128,14 @@
115
128
  this.processQueue = () => {
116
129
  if (this.status === 2 /* Paused */) return;
117
130
  this.status = 1 /* Processing */;
118
- let { type, args } = this.eventQueue.shift() || {};
131
+ let _ref = this.eventQueue.shift() || {},
132
+ type = _ref.type,
133
+ args = _ref.args;
119
134
  if (type) {
120
135
  const fns = this.subMap.get(type);
121
136
  const allSub = this.subMap.get(ALL);
122
- fns == null ? void 0 : fns.forEach((it) => this.callSub(it, fns, args));
123
- allSub == null ? void 0 : allSub.forEach((it) => this.callSub(it, allSub, args));
137
+ fns?.forEach(it => this.callSub(it, fns, args));
138
+ allSub?.forEach(it => this.callSub(it, allSub, args));
124
139
  if (this.eventQueue.length > 0) {
125
140
  this.processQueue();
126
141
  }
@@ -129,11 +144,15 @@
129
144
  this.status = 0 /* None */;
130
145
  }
131
146
  };
132
- this.dispatchEvent = (iList) => {
147
+ this.dispatchEvent = iList => {
133
148
  iList.sort((a, b) => b - a);
134
- iList.forEach((idx) => {
135
- const [item] = this.eventQueue.splice(idx, 1);
136
- const { type, args } = item || {};
149
+ iList.forEach(idx => {
150
+ const _this$eventQueue$spli = this.eventQueue.splice(idx, 1),
151
+ _this$eventQueue$spli2 = _slicedToArray(_this$eventQueue$spli, 1),
152
+ item = _this$eventQueue$spli2[0];
153
+ const _ref2 = item || {},
154
+ type = _ref2.type,
155
+ args = _ref2.args;
137
156
  if (type && args) {
138
157
  this.emitImmediate(type, ...args);
139
158
  }
@@ -144,7 +163,13 @@
144
163
  this.eventQueue = [];
145
164
  this.scheduler = void 0;
146
165
  };
147
- this.opt = __spreadValues(__spreadValues({}, DefaultEventOpt), opt);
166
+ this.opt = {
167
+ ...DefaultEventOpt,
168
+ ...opt
169
+ };
170
+ }
171
+ static {
172
+ this.a = 19;
148
173
  }
149
174
  callSub(it, fns, args) {
150
175
  const doCall = (...args2) => {
@@ -162,24 +187,31 @@
162
187
  emitImmediate(type, ...args) {
163
188
  const fns = this.subMap.get(type);
164
189
  const allSub = this.subMap.get(ALL);
165
- fns == null ? void 0 : fns.forEach((it) => this.callSub(it, fns, args));
166
- allSub == null ? void 0 : allSub.forEach((it) => this.callSub(it, allSub, args));
190
+ fns?.forEach(it => this.callSub(it, fns, args));
191
+ allSub?.forEach(it => this.callSub(it, allSub, args));
167
192
  }
168
193
  emitQueue(type, ...args) {
169
- this.eventQueue.push({ type, args, time: timestamp() });
194
+ this.eventQueue.push({
195
+ type,
196
+ args,
197
+ time: timestamp()
198
+ });
170
199
  this.process();
171
200
  }
172
201
  }
173
- BaseEvent.a = 19;
174
202
  class EventNode extends BaseEvent {
175
203
  constructor() {
176
- super({ mode: 1 /* Queue */ });
204
+ super({
205
+ mode: 1 /* Queue */
206
+ });
177
207
  this.pipe = (type, ...fns) => {
178
- const { firstNode, lastNode } = this.buildPip(fns);
208
+ const _this$buildPip = this.buildPip(fns),
209
+ firstNode = _this$buildPip.firstNode,
210
+ lastNode = _this$buildPip.lastNode;
179
211
  this.on(type, (...args) => firstNode.emit("process", args));
180
212
  return lastNode;
181
213
  };
182
- this.buildPip = (fns) => {
214
+ this.buildPip = fns => {
183
215
  const startWithPipeNode = fns[0] instanceof PipeNode;
184
216
  let firstNode;
185
217
  let curNode = firstNode = startWithPipeNode ? fns[0] : new PipeNode();
@@ -193,7 +225,7 @@
193
225
  }
194
226
  curNode.pipList = toAdd;
195
227
  toAdd = [];
196
- curNode.on("finish", (args) => it.emit("process", args));
228
+ curNode.on("finish", args => it.emit("process", args));
197
229
  curNode = it;
198
230
  i++;
199
231
  }
@@ -204,16 +236,25 @@
204
236
  lastNode: curNode
205
237
  };
206
238
  };
207
- this.preProcessMap = /* @__PURE__ */ new Map();
239
+ this.preProcessMap = /* @__PURE__ */new Map();
208
240
  this.preProcess = (type, ...fns) => {
209
- const { firstNode, lastNode } = this.buildPip(fns);
241
+ const _this$buildPip2 = this.buildPip(fns),
242
+ firstNode = _this$buildPip2.firstNode,
243
+ lastNode = _this$buildPip2.lastNode;
210
244
  this.preProcessMap.set(type, [firstNode, lastNode]);
211
245
  };
212
246
  this.emit = (type, ...args) => {
213
- const [firstNode, lastNode] = this.preProcessMap.get(type) || [];
247
+ const _ref3 = this.preProcessMap.get(type) || [],
248
+ _ref4 = _slicedToArray(_ref3, 2),
249
+ firstNode = _ref4[0],
250
+ lastNode = _ref4[1];
214
251
  if (firstNode && lastNode) {
215
252
  lastNode.once("real-finish", (...args2) => {
216
- this.eventQueue.push({ type, args: args2, time: timestamp() });
253
+ this.eventQueue.push({
254
+ type,
255
+ args: args2,
256
+ time: timestamp()
257
+ });
217
258
  this.start();
218
259
  });
219
260
  this.pause();
@@ -225,14 +266,11 @@
225
266
  }
226
267
  from(type, promise) {
227
268
  if (promise) {
228
- promise.then(
229
- (value) => {
230
- this.emit(type, value);
231
- },
232
- (err) => {
233
- this.emit(type, err);
234
- }
235
- );
269
+ promise.then(value => {
270
+ this.emit(type, value);
271
+ }, err => {
272
+ this.emit(type, err);
273
+ });
236
274
  return;
237
275
  }
238
276
  return (...args) => {
@@ -242,20 +280,22 @@
242
280
  }
243
281
  class PipeNode extends BaseEvent {
244
282
  constructor() {
245
- super({ mode: 1 /* Queue */ });
283
+ super({
284
+ mode: 1 /* Queue */
285
+ });
246
286
  this.pipList = [];
247
- this.onFinish = (fn) => {
287
+ this.onFinish = fn => {
248
288
  this.on("real-finish", fn);
249
289
  };
250
290
  this.isLastNode = false;
251
291
  this.markLast = () => this.isLastNode = true;
252
- this.on("process", (args) => __async(this, null, function* () {
292
+ this.on("process", async args => {
253
293
  let res;
254
294
  for (const pipeFn of this.pipList) {
255
295
  try {
256
296
  res = pipeFn(...args);
257
297
  if (res instanceof Promise) {
258
- res = yield res;
298
+ res = await res;
259
299
  }
260
300
  } catch (error) {
261
301
  res = error;
@@ -267,7 +307,7 @@
267
307
  } else {
268
308
  this.emitImmediate("finish", args);
269
309
  }
270
- }));
310
+ });
271
311
  }
272
312
  }
273
313
 
@@ -276,20 +316,21 @@
276
316
  this.len = 0;
277
317
  }
278
318
  get first() {
279
- var _a;
280
- return (_a = this._first) == null ? void 0 : _a.v;
319
+ return this._first?.v;
281
320
  }
282
321
  get last() {
283
- var _a;
284
- return (_a = this._last) == null ? void 0 : _a.v;
322
+ return this._last?.v;
285
323
  }
286
324
  push(it) {
287
325
  return this.insetAfter(it, this._last);
288
326
  }
289
327
  insetAfter(it, anchor) {
290
- var _a;
291
- const item = { v: it, prev: null, next: null };
292
- const prev = anchor || ((_a = this._first) == null ? void 0 : _a.prev);
328
+ const item = {
329
+ v: it,
330
+ prev: null,
331
+ next: null
332
+ };
333
+ const prev = anchor || this._first?.prev;
293
334
  const after = prev ? prev.next : this._first;
294
335
  item.prev = prev;
295
336
  item.next = after;
@@ -309,7 +350,8 @@
309
350
  return item;
310
351
  }
311
352
  delete(item) {
312
- const { prev, next } = item;
353
+ const prev = item.prev,
354
+ next = item.next;
313
355
  if (prev) {
314
356
  if (item === this._first) this._first = next;
315
357
  prev.next = next;
@@ -378,7 +420,7 @@
378
420
  function isNum(char) {
379
421
  return char === "0" || char === "1" || char === "2" || char === "3" || char === "4" || char === "5" || char === "6" || char === "7" || char === "8" || char === "9";
380
422
  }
381
- const genKey = (v) => `${v}-${Date.now()}-${Math.random()}`;
423
+ const genKey = v => `${v}-${Date.now()}-${Math.random()}`;
382
424
  class SortMap {
383
425
  constructor() {
384
426
  this.data = {};
@@ -387,7 +429,7 @@
387
429
  this.data = {};
388
430
  }
389
431
  add(key, value) {
390
- const { data } = this;
432
+ const data = this.data;
391
433
  let list = data[key];
392
434
  if (!list) {
393
435
  list = new Queue();
@@ -397,27 +439,29 @@
397
439
  }
398
440
  }
399
441
  function pick(obj, keys) {
400
- return keys.reduce(
401
- (acc, key) => {
402
- acc[key] = obj[key];
403
- return acc;
404
- },
405
- {}
406
- );
442
+ return keys.reduce((acc, key) => {
443
+ acc[key] = obj[key];
444
+ return acc;
445
+ }, {});
407
446
  }
408
447
  const NatureNum = /^(0|[1-9]\d*)$/;
409
- const isNatureNumStr = (val) => typeof val === "string" && NatureNum.test(val);
410
- const matchIdStart = (char) => {
448
+ const isNatureNumStr = val => typeof val === "string" && NatureNum.test(val);
449
+ const matchIdStart = char => {
411
450
  const code = char.charCodeAt(0);
412
- return code >= 48 && code <= 57 || // 2. 大写字母 A-Z (65-90)
413
- code >= 65 && code <= 90 || // 3. 小写字母 a-z (97-122)
414
- code >= 97 && code <= 122 || // 4. 下划线 _ (95)
415
- code === 95 || // 5. 斜杠 / (47)
416
- code === 47 || // 5. $ / (36)
451
+ return code >= 48 && code <= 57 ||
452
+ // 2. 大写字母 A-Z (65-90)
453
+ code >= 65 && code <= 90 ||
454
+ // 3. 小写字母 a-z (97-122)
455
+ code >= 97 && code <= 122 ||
456
+ // 4. 下划线 _ (95)
457
+ code === 95 ||
458
+ // 5. 斜杠 / (47)
459
+ code === 47 ||
460
+ // 5. $ / (36)
417
461
  code === 36;
418
462
  };
419
463
  const mask = new Uint8Array(128);
420
- [36, 47, 95].forEach((c) => mask[c] = 1);
464
+ [36, 47, 95].forEach(c => mask[c] = 1);
421
465
  for (let i = 48; i <= 57; i++) mask[i] = 1;
422
466
  for (let i = 65; i <= 90; i++) mask[i] = 1;
423
467
  for (let i = 97; i <= 122; i++) mask[i] = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../src/event.ts","../src/util.ts"],"sourcesContent":["// @ts-nocheck\nexport type Func = (...args: any[]) => any;\n\nconst None = Symbol('none');\nexport const timestamp = globalThis.performance ? globalThis.performance.now.bind(globalThis.performance) : Date.now;\n\nexport enum EventMode {\n Immediate,\n Queue,\n}\n\nexport enum ProcessStatus {\n None,\n Processing,\n Paused,\n}\n\nconst DefaultEventOpt = {\n mode: EventMode.Immediate,\n};\n\nconst ALL = '__ALL_KEY';\nconst myNull = null;\n\nexport type IEventOpt = Partial<typeof DefaultEventOpt>;\n\nexport type IScheduler = (doCall: Func, ...args: any[]) => void;\nexport type IGlobalScheduler = (goOn: () => void) => void;\nexport type ISetScheduler = {\n (type: string, scheduler: IScheduler): void;\n (scheduler: IGlobalScheduler): void;\n};\n\nexport type IEventItem = {\n type: string;\n args: any[];\n time: number;\n};\n\nexport class BaseEvent {\n static a = 19\n constructor(private opt: IEventOpt = {}) {\n this.opt = { ...DefaultEventOpt, ...opt };\n }\n scheduler?: IGlobalScheduler;\n eventQueue: IEventItem[] = [];\n status = ProcessStatus.None;\n subMap = new Map<string, Set<Func>>();\n on = (type: string | undefined, fn: Func) => {\n if (type == null) type = ALL;\n const suber = this.subMap.get(type) || new Set<Func>();\n suber.add(fn);\n this.subMap.set(type, suber);\n };\n\n off = (type: string | undefined, fn: Func) => {\n const suber = this.subMap.get(type ?? ALL);\n if (!suber) return;\n suber.delete(fn);\n };\n\n once = (type: string | undefined, fn: Func) => {\n fn['once'] = true;\n this.on(type, fn);\n };\n\n promiseOnce = (type: string | undefined) => {\n return new Promise((resolve) => {\n this.once(type, (...args) => {\n resolve(args)\n })\n })\n }\n\n setScheduler: ISetScheduler = (type: string | IGlobalScheduler, scheduler?: Func) => {\n if (typeof type !== 'string') {\n this.scheduler = type;\n return;\n }\n const set = this.subMap.get(type) || new Set<Func>();\n set['scheduler'] = scheduler;\n this.subMap.set(type, set);\n };\n\n callSub(it: Func, fns, args) {\n const doCall = (...args) => {\n it(...args);\n if (it['once'] === true) fns.delete(it);\n };\n const scheduler = it['scheduler'] || fns['scheduler'];\n\n if (scheduler) {\n scheduler(doCall, ...args);\n } else {\n it(...args);\n if (it['once'] === true) fns.delete(it);\n }\n }\n\n // construct 会初始化为下面其中一种\n emit = (type: string, ...args: any[]) => {\n this.opt.mode === EventMode.Immediate\n ? this.emitImmediate(type, ...args)\n : this.emitQueue(type, ...args);\n };\n \n emitImmediate(type: string, ...args: any[]) {\n const fns = this.subMap.get(type);\n const allSub = this.subMap.get(ALL);\n fns?.forEach((it) => this.callSub(it, fns, args));\n allSub?.forEach((it) => this.callSub(it, allSub, args));\n }\n\n emitQueue(type: string, ...args: any[]) {\n this.eventQueue.push({ type, args, time: timestamp() });\n this.process();\n }\n\n pause = () => (this.status = ProcessStatus.Paused);\n unPause = () => (this.status = ProcessStatus.None);\n start = () => {\n this.status = ProcessStatus.None;\n this.processQueue();\n };\n\n process = () => {\n if (this.scheduler) {\n return this.scheduler(this.recallScheduler);\n }\n return this.processQueue();\n }\n\n recallScheduler = () => {\n this.scheduler!(this.recallScheduler);\n };\n\n processQueue = () => {\n // 如果是挂起状态则直接结束\n if (this.status === ProcessStatus.Paused) return;\n this.status = ProcessStatus.Processing;\n\n let { type, args } = this.eventQueue.shift() || {};\n if (type) {\n // 在此过程中用户可通过 pause 和 start 同步控制事件处理\n const fns = this.subMap.get(type);\n const allSub = this.subMap.get(ALL);\n fns?.forEach((it) => this.callSub(it, fns, args));\n allSub?.forEach((it) => this.callSub(it, allSub, args));\n if (this.eventQueue.length > 0) {\n this.processQueue();\n }\n }\n //@ts-ignore 队列全部处理完成,如果执行过程中被 pause \n if(this.status !== ProcessStatus.Paused) {\n this.status = ProcessStatus.None;\n }\n };\n\n\n dispatchEvent = (iList: number[]) => {\n // 从大到小排序\n iList.sort((a, b) => b - a);\n iList.forEach((idx) => {\n const [item] = this.eventQueue.splice(idx, 1);\n const { type, args } = item || {};\n if (type && args) {\n this.emitImmediate(type, ...args);\n }\n });\n };\n\n clear = () => {\n this.subMap.clear();\n this.eventQueue = [];\n this.scheduler = undefined;\n };\n}\n\nexport class EventNode extends BaseEvent {\n constructor() {\n super({ mode: EventMode.Queue });\n }\n pipe = (type: string, ...fns: (Func | PipeNode)[]) => {\n const { firstNode, lastNode } = this.buildPip(fns);\n // 将第一个节点与事件源节点关联\n this.on(type, (...args) => firstNode.emit('process', args));\n return lastNode;\n };\n\n buildPip = (fns: (Func | PipeNode)[]) => {\n const startWithPipeNode = fns[0] instanceof PipeNode;\n let firstNode: PipeNode;\n // @ts-ignore\n let curNode: PipeNode = (firstNode = startWithPipeNode ? fns[0] : new PipeNode());\n let i = startWithPipeNode ? 1 : 0;\n let toAdd: Func[] = [];\n while (i < fns.length) {\n const it = fns[i];\n if (!(it instanceof PipeNode)) {\n toAdd.push(it);\n continue;\n }\n\n // 遇到下一个 pipeNode,把上一个完成\n curNode.pipList = toAdd;\n toAdd = [];\n curNode.on('finish', (args) => it.emit('process', args));\n\n curNode = it;\n i++;\n }\n // 处理最后一个节点\n curNode.markLast();\n curNode.pipList = toAdd;\n return {\n firstNode,\n lastNode: curNode,\n };\n };\n\n preProcessMap = new Map<string, [PipeNode, PipeNode]>();\n preProcess = (type: string, ...fns: (Func | PipeNode)[]) => {\n const { firstNode, lastNode } = this.buildPip(fns);\n this.preProcessMap.set(type, [firstNode, lastNode]);\n };\n\n emit = (type: string, ...args: any[]) => {\n const [firstNode, lastNode] = this.preProcessMap.get(type) || [];\n if (firstNode && lastNode) {\n lastNode.once('real-finish', (...args) => {\n // 等待预处理完成后再开始触发事件,且修正 args\n this.eventQueue.push({ type, args, time: timestamp() });\n this.start();\n });\n this.pause();\n firstNode.emit('process', args);\n } else {\n this.emitQueue(type, ...args);\n }\n };\n\n from(type: string, promise?: Promise<any>) {\n if (promise) {\n promise.then(\n (value) => {\n this.emit(type, value);\n },\n (err) => {\n this.emit(type, err);\n },\n );\n return;\n }\n\n return (...args: any[]) => {\n this.emit(type, ...args);\n };\n }\n}\n\nexport class PipeNode extends BaseEvent {\n public pipList: Func[] = [];\n\n onFinish = (fn: Func) => {\n this.on('real-finish', fn);\n };\n\n isLastNode = false;\n\n markLast = () => (this.isLastNode = true);\n\n constructor() {\n super({ mode: EventMode.Queue });\n this.on('process', async (args) => {\n let res;\n for (const pipeFn of this.pipList) {\n try {\n res = pipeFn(...args);\n if (res instanceof Promise) {\n res = await res;\n }\n } catch (error) {\n res = error;\n }\n args = [res];\n }\n if (this.isLastNode) {\n this.emitImmediate('real-finish', ...args);\n } else {\n this.emitImmediate('finish', args);\n }\n });\n }\n}","export type QueueItem<T> = {\n v: T;\n prev?: QueueItem<T>;\n next?: QueueItem<T>;\n};\n\nexport class Queue<T> {\n _first?: QueueItem<T>;\n get first() {\n return this._first?.v!;\n }\n _last?: QueueItem<T>;\n get last() {\n return this._last?.v!;\n }\n len = 0;\n push(it: T) {\n return this.insetAfter(it, this._last);\n }\n\n insetAfter(it: T, anchor?: QueueItem<T>) {\n const item = { v: it, prev: null, next: null } as QueueItem<T>;\n const prev = anchor || this._first?.prev;\n const after = prev ? prev.next : this._first;\n item.prev = prev;\n item.next = after;\n\n if (prev) {\n // 子 Queue 逻辑\n if (prev.next === this._first) this._first = item;\n prev.next = item;\n } else {\n this._first = item;\n }\n if (after) {\n if (after.prev === this._last) this._last = item;\n after.prev = item;\n } else {\n this._last = item;\n }\n this.len++;\n return item;\n }\n\n delete(item: QueueItem<T>) {\n const { prev, next } = item;\n if (prev) {\n if (item === this._first) this._first = next;\n prev.next = next;\n } else {\n this._first = next;\n }\n if (next) {\n if (item === this._last) this._last = prev;\n next.prev = prev;\n } else {\n this._last = prev;\n }\n item.next = null;\n item.prev = null;\n this.len--;\n return item.v;\n }\n\n static forEach<V>(firstItem: QueueItem<V>, lastItem: QueueItem<V>, fn: (value: V, item: QueueItem<V>) => void) {\n if (!firstItem) return;\n let point = firstItem;\n let next = point.next;\n while (true) {\n fn(point.v, point);\n if (!next || point === lastItem) {\n break;\n }\n point = next;\n next = point.next;\n }\n }\n\n forEach(fn: (value: T, item: QueueItem<T>) => void) {\n if (!this._first) return;\n let point = this._first;\n let next = point.next;\n while (true) {\n fn(point.v, point);\n if (!next || point === this._last) {\n break;\n }\n point = next;\n next = point.next;\n }\n }\n /** TODO: Queue.len 不准确 */\n subRef(firstItem: QueueItem<T>, lastItem: QueueItem<T>) {\n const subQueue = new Queue<T>();\n subQueue._first = firstItem;\n subQueue._last = lastItem;\n return subQueue as SubQueue<T>;\n }\n\n shift() {\n return this.delete(this._first);\n }\n\n clone() {\n const c = new Queue<T>();\n let point = this._first;\n if (!point) return c;\n while (true) {\n c.push(point.v);\n if (point === this._last) break;\n point = point.next;\n }\n return c;\n }\n}\n\nexport type SubQueue<T> = Omit<Queue<T>, 'push' | 'insetAfter' | 'delete' | 'shift'>;\n\nexport function isNum(char: string) {\n return (\n char === '0' ||\n char === '1' ||\n char === '2' ||\n char === '3' ||\n char === '4' ||\n char === '5' ||\n char === '6' ||\n char === '7' ||\n char === '8' ||\n char === '9'\n );\n}\n\nexport const genKey = (v: string | number) => `${v}-${Date.now()}-${Math.random()}` as unknown as number;\n\nexport class SortMap<T> {\n data: Record<string | symbol, Queue<T>> = {};\n clear() {\n this.data = {};\n }\n add(key: string | symbol, value: T) {\n const { data } = this;\n let list = data[key];\n if (!list) {\n list = new Queue<T>();\n data[key] = list;\n }\n return list.push(value);\n }\n}\n\nexport function pick<T, K extends keyof T>(obj: T, keys: K[]) {\n return keys.reduce(\n (acc, key) => {\n acc[key] = obj[key];\n return acc;\n },\n {} as Pick<T, K>\n );\n}\n\nconst NatureNum = /^(0|[1-9]\\d*)$/;\nexport const isNatureNumStr = (val: unknown) => typeof val === 'string' && NatureNum.test(val);\n/**\n * 替代 /[\\$\\d\\w\\/]/.test(char) 的高性能版本\n * @param {string} char - 传入的单个字符\n * @returns {boolean}\n */\nexport const matchIdStart = (char: string) => {\n // 获取第一个字符的 Unicode 编码\n const code = char.charCodeAt(0);\n\n // 1. 数字 0-9 (48-57)\n return (\n (code >= 48 && code <= 57) ||\n // 2. 大写字母 A-Z (65-90)\n (code >= 65 && code <= 90) ||\n // 3. 小写字母 a-z (97-122)\n (code >= 97 && code <= 122) ||\n // 4. 下划线 _ (95)\n code === 95 ||\n // 5. 斜杠 / (47)\n code === 47 ||\n // 5. $ / (36)\n code === 36\n );\n};\n\n// 提前创建一个长度为 128 的布尔映射数组\nconst mask = new Uint8Array(128);\n[36, 47, 95].forEach(c => (mask[c] = 1)); // $, /, _\nfor (let i = 48; i <= 57; i++) mask[i] = 1; // 0-9\nfor (let i = 65; i <= 90; i++) mask[i] = 1; // A-Z\nfor (let i = 97; i <= 122; i++) mask[i] = 1; // a-z\n\nexport const matchIdStart2 = (char: string, i: number) => {\n const code = char.charCodeAt(i);\n return mask[code] === 1;\n};\n\nexport const jsVarRegexp = /\\b[a-zA-Z_$][a-zA-Z0-9_$]*\\b/g;\n\n// const queue = new Queue([1,2,3,4]);\n// queue.shift()\n// queue.pop()\n// // @ts-ignore\n// queue.unshift('a')\n// // @ts-ignore\n// queue.push('b')\n// queue.shift()\n// queue.pop()\n// queue.shift()\n// queue.pop()\n// queue.shift()\n// queue.pop()\n// queue.push(10)\n// queue.array();\n"],"names":["EventMode","ProcessStatus","args"],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.js","sources":["../src/event.ts","../src/util.ts"],"sourcesContent":["// @ts-nocheck\nexport type Func = (...args: any[]) => any;\n\nconst None = Symbol('none');\nexport const timestamp = globalThis.performance ? globalThis.performance.now.bind(globalThis.performance) : Date.now;\n\nexport enum EventMode {\n Immediate,\n Queue,\n}\n\nexport enum ProcessStatus {\n None,\n Processing,\n Paused,\n}\n\nconst DefaultEventOpt = {\n mode: EventMode.Immediate,\n};\n\nconst ALL = '__ALL_KEY';\nconst myNull = null;\n\nexport type IEventOpt = Partial<typeof DefaultEventOpt>;\n\nexport type IScheduler = (doCall: Func, ...args: any[]) => void;\nexport type IGlobalScheduler = (goOn: () => void) => void;\nexport type ISetScheduler = {\n (type: string, scheduler: IScheduler): void;\n (scheduler: IGlobalScheduler): void;\n};\n\nexport type IEventItem = {\n type: string;\n args: any[];\n time: number;\n};\n\nexport class BaseEvent {\n static a = 19\n constructor(private opt: IEventOpt = {}) {\n this.opt = { ...DefaultEventOpt, ...opt };\n }\n scheduler?: IGlobalScheduler;\n eventQueue: IEventItem[] = [];\n status = ProcessStatus.None;\n subMap = new Map<string, Set<Func>>();\n on = (type: string | undefined, fn: Func) => {\n if (type == null) type = ALL;\n const suber = this.subMap.get(type) || new Set<Func>();\n suber.add(fn);\n this.subMap.set(type, suber);\n };\n\n off = (type: string | undefined, fn: Func) => {\n const suber = this.subMap.get(type ?? ALL);\n if (!suber) return;\n suber.delete(fn);\n };\n\n once = (type: string | undefined, fn: Func) => {\n fn['once'] = true;\n this.on(type, fn);\n };\n\n promiseOnce = (type: string | undefined) => {\n return new Promise((resolve) => {\n this.once(type, (...args) => {\n resolve(args)\n })\n })\n }\n\n setScheduler: ISetScheduler = (type: string | IGlobalScheduler, scheduler?: Func) => {\n if (typeof type !== 'string') {\n this.scheduler = type;\n return;\n }\n const set = this.subMap.get(type) || new Set<Func>();\n set['scheduler'] = scheduler;\n this.subMap.set(type, set);\n };\n\n callSub(it: Func, fns, args) {\n const doCall = (...args) => {\n it(...args);\n if (it['once'] === true) fns.delete(it);\n };\n const scheduler = it['scheduler'] || fns['scheduler'];\n\n if (scheduler) {\n scheduler(doCall, ...args);\n } else {\n it(...args);\n if (it['once'] === true) fns.delete(it);\n }\n }\n\n // construct 会初始化为下面其中一种\n emit = (type: string, ...args: any[]) => {\n this.opt.mode === EventMode.Immediate\n ? this.emitImmediate(type, ...args)\n : this.emitQueue(type, ...args);\n };\n \n emitImmediate(type: string, ...args: any[]) {\n const fns = this.subMap.get(type);\n const allSub = this.subMap.get(ALL);\n fns?.forEach((it) => this.callSub(it, fns, args));\n allSub?.forEach((it) => this.callSub(it, allSub, args));\n }\n\n emitQueue(type: string, ...args: any[]) {\n this.eventQueue.push({ type, args, time: timestamp() });\n this.process();\n }\n\n pause = () => (this.status = ProcessStatus.Paused);\n unPause = () => (this.status = ProcessStatus.None);\n start = () => {\n this.status = ProcessStatus.None;\n this.processQueue();\n };\n\n process = () => {\n if (this.scheduler) {\n return this.scheduler(this.recallScheduler);\n }\n return this.processQueue();\n }\n\n recallScheduler = () => {\n this.scheduler!(this.recallScheduler);\n };\n\n processQueue = () => {\n // 如果是挂起状态则直接结束\n if (this.status === ProcessStatus.Paused) return;\n this.status = ProcessStatus.Processing;\n\n let { type, args } = this.eventQueue.shift() || {};\n if (type) {\n // 在此过程中用户可通过 pause 和 start 同步控制事件处理\n const fns = this.subMap.get(type);\n const allSub = this.subMap.get(ALL);\n fns?.forEach((it) => this.callSub(it, fns, args));\n allSub?.forEach((it) => this.callSub(it, allSub, args));\n if (this.eventQueue.length > 0) {\n this.processQueue();\n }\n }\n //@ts-ignore 队列全部处理完成,如果执行过程中被 pause \n if(this.status !== ProcessStatus.Paused) {\n this.status = ProcessStatus.None;\n }\n };\n\n\n dispatchEvent = (iList: number[]) => {\n // 从大到小排序\n iList.sort((a, b) => b - a);\n iList.forEach((idx) => {\n const [item] = this.eventQueue.splice(idx, 1);\n const { type, args } = item || {};\n if (type && args) {\n this.emitImmediate(type, ...args);\n }\n });\n };\n\n clear = () => {\n this.subMap.clear();\n this.eventQueue = [];\n this.scheduler = undefined;\n };\n}\n\nexport class EventNode extends BaseEvent {\n constructor() {\n super({ mode: EventMode.Queue });\n }\n pipe = (type: string, ...fns: (Func | PipeNode)[]) => {\n const { firstNode, lastNode } = this.buildPip(fns);\n // 将第一个节点与事件源节点关联\n this.on(type, (...args) => firstNode.emit('process', args));\n return lastNode;\n };\n\n buildPip = (fns: (Func | PipeNode)[]) => {\n const startWithPipeNode = fns[0] instanceof PipeNode;\n let firstNode: PipeNode;\n // @ts-ignore\n let curNode: PipeNode = (firstNode = startWithPipeNode ? fns[0] : new PipeNode());\n let i = startWithPipeNode ? 1 : 0;\n let toAdd: Func[] = [];\n while (i < fns.length) {\n const it = fns[i];\n if (!(it instanceof PipeNode)) {\n toAdd.push(it);\n continue;\n }\n\n // 遇到下一个 pipeNode,把上一个完成\n curNode.pipList = toAdd;\n toAdd = [];\n curNode.on('finish', (args) => it.emit('process', args));\n\n curNode = it;\n i++;\n }\n // 处理最后一个节点\n curNode.markLast();\n curNode.pipList = toAdd;\n return {\n firstNode,\n lastNode: curNode,\n };\n };\n\n preProcessMap = new Map<string, [PipeNode, PipeNode]>();\n preProcess = (type: string, ...fns: (Func | PipeNode)[]) => {\n const { firstNode, lastNode } = this.buildPip(fns);\n this.preProcessMap.set(type, [firstNode, lastNode]);\n };\n\n emit = (type: string, ...args: any[]) => {\n const [firstNode, lastNode] = this.preProcessMap.get(type) || [];\n if (firstNode && lastNode) {\n lastNode.once('real-finish', (...args) => {\n // 等待预处理完成后再开始触发事件,且修正 args\n this.eventQueue.push({ type, args, time: timestamp() });\n this.start();\n });\n this.pause();\n firstNode.emit('process', args);\n } else {\n this.emitQueue(type, ...args);\n }\n };\n\n from(type: string, promise?: Promise<any>) {\n if (promise) {\n promise.then(\n (value) => {\n this.emit(type, value);\n },\n (err) => {\n this.emit(type, err);\n },\n );\n return;\n }\n\n return (...args: any[]) => {\n this.emit(type, ...args);\n };\n }\n}\n\nexport class PipeNode extends BaseEvent {\n public pipList: Func[] = [];\n\n onFinish = (fn: Func) => {\n this.on('real-finish', fn);\n };\n\n isLastNode = false;\n\n markLast = () => (this.isLastNode = true);\n\n constructor() {\n super({ mode: EventMode.Queue });\n this.on('process', async (args) => {\n let res;\n for (const pipeFn of this.pipList) {\n try {\n res = pipeFn(...args);\n if (res instanceof Promise) {\n res = await res;\n }\n } catch (error) {\n res = error;\n }\n args = [res];\n }\n if (this.isLastNode) {\n this.emitImmediate('real-finish', ...args);\n } else {\n this.emitImmediate('finish', args);\n }\n });\n }\n}","export type QueueItem<T> = {\n v: T;\n prev?: QueueItem<T>;\n next?: QueueItem<T>;\n};\n\nexport class Queue<T> {\n _first?: QueueItem<T>;\n get first() {\n return this._first?.v!;\n }\n _last?: QueueItem<T>;\n get last() {\n return this._last?.v!;\n }\n len = 0;\n push(it: T) {\n return this.insetAfter(it, this._last);\n }\n\n insetAfter(it: T, anchor?: QueueItem<T>) {\n const item = { v: it, prev: null, next: null } as QueueItem<T>;\n const prev = anchor || this._first?.prev;\n const after = prev ? prev.next : this._first;\n item.prev = prev;\n item.next = after;\n\n if (prev) {\n // 子 Queue 逻辑\n if (prev.next === this._first) this._first = item;\n prev.next = item;\n } else {\n this._first = item;\n }\n if (after) {\n if (after.prev === this._last) this._last = item;\n after.prev = item;\n } else {\n this._last = item;\n }\n this.len++;\n return item;\n }\n\n delete(item: QueueItem<T>) {\n const { prev, next } = item;\n if (prev) {\n if (item === this._first) this._first = next;\n prev.next = next;\n } else {\n this._first = next;\n }\n if (next) {\n if (item === this._last) this._last = prev;\n next.prev = prev;\n } else {\n this._last = prev;\n }\n item.next = null;\n item.prev = null;\n this.len--;\n return item.v;\n }\n\n static forEach<V>(firstItem: QueueItem<V>, lastItem: QueueItem<V>, fn: (value: V, item: QueueItem<V>) => void) {\n if (!firstItem) return;\n let point = firstItem;\n let next = point.next;\n while (true) {\n fn(point.v, point);\n if (!next || point === lastItem) {\n break;\n }\n point = next;\n next = point.next;\n }\n }\n\n forEach(fn: (value: T, item: QueueItem<T>) => void) {\n if (!this._first) return;\n let point = this._first;\n let next = point.next;\n while (true) {\n fn(point.v, point);\n if (!next || point === this._last) {\n break;\n }\n point = next;\n next = point.next;\n }\n }\n /** TODO: Queue.len 不准确 */\n subRef(firstItem: QueueItem<T>, lastItem: QueueItem<T>) {\n const subQueue = new Queue<T>();\n subQueue._first = firstItem;\n subQueue._last = lastItem;\n return subQueue as SubQueue<T>;\n }\n\n shift() {\n return this.delete(this._first);\n }\n\n clone() {\n const c = new Queue<T>();\n let point = this._first;\n if (!point) return c;\n while (true) {\n c.push(point.v);\n if (point === this._last) break;\n point = point.next;\n }\n return c;\n }\n}\n\nexport type SubQueue<T> = Omit<Queue<T>, 'push' | 'insetAfter' | 'delete' | 'shift'>;\n\nexport function isNum(char: string) {\n return (\n char === '0' ||\n char === '1' ||\n char === '2' ||\n char === '3' ||\n char === '4' ||\n char === '5' ||\n char === '6' ||\n char === '7' ||\n char === '8' ||\n char === '9'\n );\n}\n\nexport const genKey = (v: string | number) => `${v}-${Date.now()}-${Math.random()}` as unknown as number;\n\nexport class SortMap<T> {\n data: Record<string | symbol, Queue<T>> = {};\n clear() {\n this.data = {};\n }\n add(key: string | symbol, value: T) {\n const { data } = this;\n let list = data[key];\n if (!list) {\n list = new Queue<T>();\n data[key] = list;\n }\n return list.push(value);\n }\n}\n\nexport function pick<T, K extends keyof T>(obj: T, keys: K[]) {\n return keys.reduce(\n (acc, key) => {\n acc[key] = obj[key];\n return acc;\n },\n {} as Pick<T, K>\n );\n}\n\nconst NatureNum = /^(0|[1-9]\\d*)$/;\nexport const isNatureNumStr = (val: unknown) => typeof val === 'string' && NatureNum.test(val);\n/**\n * 替代 /[\\$\\d\\w\\/]/.test(char) 的高性能版本\n * @param {string} char - 传入的单个字符\n * @returns {boolean}\n */\nexport const matchIdStart = (char: string) => {\n // 获取第一个字符的 Unicode 编码\n const code = char.charCodeAt(0);\n\n // 1. 数字 0-9 (48-57)\n return (\n (code >= 48 && code <= 57) ||\n // 2. 大写字母 A-Z (65-90)\n (code >= 65 && code <= 90) ||\n // 3. 小写字母 a-z (97-122)\n (code >= 97 && code <= 122) ||\n // 4. 下划线 _ (95)\n code === 95 ||\n // 5. 斜杠 / (47)\n code === 47 ||\n // 5. $ / (36)\n code === 36\n );\n};\n\n// 提前创建一个长度为 128 的布尔映射数组\nconst mask = new Uint8Array(128);\n[36, 47, 95].forEach(c => (mask[c] = 1)); // $, /, _\nfor (let i = 48; i <= 57; i++) mask[i] = 1; // 0-9\nfor (let i = 65; i <= 90; i++) mask[i] = 1; // A-Z\nfor (let i = 97; i <= 122; i++) mask[i] = 1; // a-z\n\nexport const matchIdStart2 = (char: string, i: number) => {\n const code = char.charCodeAt(i);\n return mask[code] === 1;\n};\n\nexport const jsVarRegexp = /\\b[a-zA-Z_$][a-zA-Z0-9_$]*\\b/g;\n\n// const queue = new Queue([1,2,3,4]);\n// queue.shift()\n// queue.pop()\n// // @ts-ignore\n// queue.unshift('a')\n// // @ts-ignore\n// queue.push('b')\n// queue.shift()\n// queue.pop()\n// queue.shift()\n// queue.pop()\n// queue.shift()\n// queue.pop()\n// queue.push(10)\n// queue.array();\n"],"names":["timestamp","globalThis","performance","now","bind","Date","EventMode","ProcessStatus","DefaultEventOpt","mode","ALL","BaseEvent","constructor","opt","eventQueue","status","subMap","Map","on","type","fn","suber","get","Set","add","set","off","delete","once","promiseOnce","Promise","resolve","args","setScheduler","scheduler","emit","emitImmediate","emitQueue","pause","unPause","start","processQueue","process","recallScheduler","_ref","shift","fns","allSub","forEach","it","callSub","length","dispatchEvent","iList","sort","a","b","idx","_this$eventQueue$spli","splice","_this$eventQueue$spli2","_slicedToArray","item","_ref2","clear","doCall","push","time","EventNode","pipe","_this$buildPip","buildPip","firstNode","lastNode","startWithPipeNode","PipeNode","curNode","i","toAdd","pipList","markLast","preProcessMap","preProcess","_this$buildPip2","_ref3","_ref4","from","promise","then","value","err","onFinish","isLastNode","res","pipeFn","error","Queue","len","first","_first","v","last","_last","insetAfter","anchor","prev","next","after","firstItem","lastItem","point","subRef","subQueue","clone","c","isNum","char","genKey","Math","random","SortMap","data","key","list","pick","obj","keys","reduce","acc","NatureNum","isNatureNumStr","val","test","matchIdStart","code","charCodeAt","mask","Uint8Array","matchIdStart2","jsVarRegexp"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bobe-shared",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "main": "dist/bobe-shared.cjs.js",
5
5
  "module": "dist/bobe-shared.esm.js",
6
6
  "browser": "dist/bobe-shared.umd.js",