@idlebox/common 1.5.20 → 1.5.21

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 (59) hide show
  1. package/lib/{autoindex.d.ts → autoindex.generated.d.ts} +5 -2
  2. package/lib/autoindex.generated.d.ts.map +1 -0
  3. package/lib/{autoindex.js → autoindex.generated.js} +18 -5
  4. package/lib/autoindex.generated.js.map +1 -0
  5. package/lib/error/convert-unknown.d.ts.map +1 -1
  6. package/lib/error/convert-unknown.js +4 -0
  7. package/lib/error/convert-unknown.js.map +1 -1
  8. package/lib/lifecycle/dispose/async-disposable.d.ts +11 -2
  9. package/lib/lifecycle/dispose/async-disposable.d.ts.map +1 -1
  10. package/lib/lifecycle/dispose/async-disposable.js +26 -6
  11. package/lib/lifecycle/dispose/async-disposable.js.map +1 -1
  12. package/lib/lifecycle/dispose/bridges/native.d.ts +2 -2
  13. package/lib/lifecycle/dispose/bridges/native.d.ts.map +1 -1
  14. package/lib/lifecycle/dispose/bridges/native.js +5 -5
  15. package/lib/lifecycle/dispose/bridges/native.js.map +1 -1
  16. package/lib/lifecycle/dispose/bridges/streams.d.ts +12 -0
  17. package/lib/lifecycle/dispose/bridges/streams.d.ts.map +1 -1
  18. package/lib/lifecycle/dispose/bridges/streams.js +30 -30
  19. package/lib/lifecycle/dispose/bridges/streams.js.map +1 -1
  20. package/lib/lifecycle/dispose/disposable.d.ts +9 -9
  21. package/lib/lifecycle/dispose/disposable.d.ts.map +1 -1
  22. package/lib/lifecycle/dispose/disposable.js +16 -9
  23. package/lib/lifecycle/dispose/disposable.js.map +1 -1
  24. package/lib/lifecycle/dispose/sync-disposable.d.ts +6 -1
  25. package/lib/lifecycle/dispose/sync-disposable.d.ts.map +1 -1
  26. package/lib/lifecycle/dispose/sync-disposable.js +21 -5
  27. package/lib/lifecycle/dispose/sync-disposable.js.map +1 -1
  28. package/lib/lifecycle/event/event.d.ts +1 -1
  29. package/lib/lifecycle/event/event.d.ts.map +1 -1
  30. package/lib/lifecycle/event/event.js +3 -3
  31. package/lib/lifecycle/event/event.js.map +1 -1
  32. package/lib/lifecycle/event/type.d.ts +2 -2
  33. package/lib/lifecycle/event/type.d.ts.map +1 -1
  34. package/lib/promise/is-promise.d.ts +2 -0
  35. package/lib/promise/is-promise.d.ts.map +1 -0
  36. package/lib/promise/is-promise.js +4 -0
  37. package/lib/promise/is-promise.js.map +1 -0
  38. package/lib/reflection/methods/bind.d.ts +1 -1
  39. package/lib/reflection/methods/bind.d.ts.map +1 -1
  40. package/lib/schedule/interval.d.ts +1 -1
  41. package/lib/schedule/interval.d.ts.map +1 -1
  42. package/lib/schedule/timeout.d.ts +2 -2
  43. package/lib/schedule/timeout.d.ts.map +1 -1
  44. package/lib/state/simple-state-machine.d.ts +1 -1
  45. package/lib/state/simple-state-machine.d.ts.map +1 -1
  46. package/package.json +11 -7
  47. package/src/{autoindex.ts → autoindex.generated.ts} +18 -4
  48. package/src/error/convert-unknown.ts +4 -0
  49. package/src/lifecycle/dispose/async-disposable.ts +25 -6
  50. package/src/lifecycle/dispose/bridges/native.ts +5 -7
  51. package/src/lifecycle/dispose/bridges/streams.ts +46 -36
  52. package/src/lifecycle/dispose/disposable.ts +29 -16
  53. package/src/lifecycle/dispose/sync-disposable.ts +21 -5
  54. package/src/lifecycle/event/event.ts +3 -3
  55. package/src/lifecycle/event/type.ts +2 -2
  56. package/src/promise/is-promise.ts +3 -0
  57. package/src/schedule/timeout.ts +2 -2
  58. package/lib/autoindex.d.ts.map +0 -1
  59. package/lib/autoindex.js.map +0 -1
@@ -8,7 +8,7 @@ import { DuplicateDisposedError } from './disposedError.js';
8
8
  */
9
9
  export class DisposableOnce {
10
10
  _disposed;
11
- get hasDisposed() {
11
+ get disposed() {
12
12
  return !!this._disposed;
13
13
  }
14
14
  dispose() {
@@ -28,9 +28,16 @@ export class DisposableOnce {
28
28
  * 完整版disposable类
29
29
  * 可以继承
30
30
  * 也可以直接用(相当于一个DisposableStack)
31
+ *
32
+ * 抛出异常的行为会延迟到所有资源都尝试释放完毕之后,因此显然只会抛出其中一个异常给dispose()的调用者
33
+ * 每一个资源释放失败,都会分别触发onDisposeError事件,如果此事件存在监听器,则最后不会抛出异常(处非监听器本身重新抛出)
34
+ * 不支持在dispose过程中添加onError事件监听器
35
+ *
31
36
  */
32
37
  export class EnhancedDisposable extends AbstractEnhancedDisposable {
33
38
  _dispose(disposables) {
39
+ const hasListener = this._onDisposeError.listenerCount() > 0;
40
+ let lastError = null;
34
41
  for (const item of disposables.values()) {
35
42
  try {
36
43
  if (this._logger.enabled)
@@ -38,13 +45,22 @@ export class EnhancedDisposable extends AbstractEnhancedDisposable {
38
45
  item.dispose();
39
46
  }
40
47
  catch (e) {
41
- const ee = convertCaughtError(e);
42
- this._onDisposeError.fire(ee);
43
- if (!this._onDisposeError.listenerCount()) {
44
- console.error('Unhandled error during dispose: %s', ee.stack);
48
+ if (hasListener) {
49
+ try {
50
+ this._onDisposeError.fire(convertCaughtError(e));
51
+ }
52
+ catch (e) {
53
+ lastError = e;
54
+ }
55
+ }
56
+ else {
57
+ lastError = e;
45
58
  }
46
59
  }
47
60
  }
61
+ if (lastError) {
62
+ throw lastError;
63
+ }
48
64
  }
49
65
  /// compitable with stack
50
66
  [Symbol.dispose] = this.dispose;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-disposable.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/sync-disposable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAyB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAoB,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;GAEG;AACH,MAAM,OAAgB,cAAc;IAC3B,SAAS,CAAoB;IAErC,IAAW,WAAW;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IACzB,CAAC;IACM,OAAO;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3D,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjB,CAAC;IACD,CAAC,MAAM,CAAC,OAAO,CAAC;QACf,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;CAED;AAED;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,0BAAiC;IACrD,QAAQ,CAAC,WAAmC;QAC9D,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC;gBACJ,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;oBAAE,IAAI,CAAC,OAAO,CAAC,WAAW,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxE,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,MAAM,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,CAAC;oBAC3C,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC/D,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,yBAAyB;IAClB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;CACvC"}
1
+ {"version":3,"file":"sync-disposable.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/sync-disposable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAyB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAoB,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;GAEG;AACH,MAAM,OAAgB,cAAc;IAC3B,SAAS,CAAoB;IAErC,IAAW,QAAQ;QAClB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IACzB,CAAC;IACM,OAAO;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3D,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjB,CAAC;IACD,CAAC,MAAM,CAAC,OAAO,CAAC;QACf,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;CAED;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,kBAAmB,SAAQ,0BAAiC;IACrD,QAAQ,CAAC,WAAmC;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAE7D,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC;gBACJ,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;oBAAE,IAAI,CAAC,OAAO,CAAC,WAAW,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxE,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,WAAW,EAAE,CAAC;oBACjB,IAAI,CAAC;wBACJ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClD,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACZ,SAAS,GAAG,CAAC,CAAC;oBACf,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,SAAS,GAAG,CAAC,CAAC;gBACf,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACf,MAAM,SAAS,CAAC;QACjB,CAAC;IACF,CAAC;IAED,yBAAyB;IAClB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;CACvC"}
@@ -31,7 +31,7 @@ export declare class Emitter<T = unknown> implements IEventEmitter<T> {
31
31
  wait(): Promise<T>;
32
32
  private checkDeleted;
33
33
  private _disposed;
34
- get hasDisposed(): boolean;
34
+ get disposed(): boolean;
35
35
  /**
36
36
  * 运行过程中可以dispose,本次运行仍然会继续到最后
37
37
  * 但立即不能再次调用类似handle的方法
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/event/event.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAIhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI5E;;GAEG;AACH,qBAAa,OAAO,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;aAKhC,WAAW,EAAE,MAAM;IAJ/C,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;IACvD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,6BAA6B,CAAS;gBAElB,WAAW,GAAE,MAAsB;IAiBxD,aAAa;IAIb,IAAI,CAAC,IAAI,EAAE,CAAC;IAiBZ,WAAW,CAAC,IAAI,EAAE,CAAC;IAqB1B,IAAI,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,CAE/B;IAED,IAAI,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAE5B;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAsB9C;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAS5C;;OAEG;IACH,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC;IAUlB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,SAAS,CAAS;IAC1B,IAAW,WAAW,YAErB;IAED;;;OAGG;IACH,OAAO;IA8BP,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAgB;IAEzC,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAW5C,OAAO,CAAC,mBAAmB;CAK3B"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/event/event.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAIhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI5E;;GAEG;AACH,qBAAa,OAAO,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;aAKhC,WAAW,EAAE,MAAM;IAJ/C,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;IACvD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,6BAA6B,CAAS;gBAElB,WAAW,GAAE,MAAsB;IAiBxD,aAAa;IAIb,IAAI,CAAC,IAAI,EAAE,CAAC;IAiBZ,WAAW,CAAC,IAAI,EAAE,CAAC;IAqB1B,IAAI,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,CAE/B;IAED,IAAI,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAE5B;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAsB9C;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAS5C;;OAEG;IACH,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC;IAUlB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,SAAS,CAAS;IAC1B,IAAW,QAAQ,YAElB;IAED;;;OAGG;IACH,OAAO;IA8BP,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAgB;IAEzC,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAW5C,OAAO,CAAC,mBAAmB;CAK3B"}
@@ -22,7 +22,7 @@ export class Emitter {
22
22
  wait: {
23
23
  get: () => this.wait.bind(this),
24
24
  },
25
- hasDisposed: {
25
+ disposed: {
26
26
  get: () => this._disposed,
27
27
  },
28
28
  });
@@ -135,7 +135,7 @@ export class Emitter {
135
135
  }
136
136
  }
137
137
  _disposed = false;
138
- get hasDisposed() {
138
+ get disposed() {
139
139
  return this._disposed;
140
140
  }
141
141
  /**
@@ -153,7 +153,7 @@ export class Emitter {
153
153
  }
154
154
  }
155
155
  this._waittings = undefined;
156
- const trace = createStackTraceHolder('disposed');
156
+ const trace = createStackTraceHolder('disposed', this.dispose);
157
157
  const makeUnCallable = (name) => {
158
158
  Object.assign(this, {
159
159
  [name]() {
@@ -1 +1 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/lifecycle/event/event.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/lifecycle/event/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAEzC;;GAEG;AACH,MAAM,OAAO,OAAO;IAKS;IAJlB,UAAU,CAAmC;IAC/C,SAAS,GAAG,KAAK,CAAC;IAClB,6BAA6B,GAAG,KAAK,CAAC;IAE9C,YAA4B,cAAsB,aAAa;QAAnC,gBAAW,GAAX,WAAW,CAAwB;QAC9D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC7D,IAAI,EAAE;gBACL,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;aAC/B;YACD,IAAI,EAAE;gBACL,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;aAC/B;YACD,QAAQ,EAAE;gBACT,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;aACzB;SACD,CAAC,CAAC;QACH,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YACpD,OAAO,OAAO,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,WAAW,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,aAAa;QACnB,OAAO,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,IAAI,CAAC,IAAO;QAClB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC;YACJ,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,CAAC,6BAA6B,EAAE,CAAC;gBACxC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,CAAC;QACF,CAAC;IACF,CAAC;IAEM,WAAW,CAAC,IAAO;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC;gBACJ,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;oBACvB,MAAM;gBACP,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3F,CAAC;QACF,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACxC,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;IACF,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,MAAa,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,MAAa,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAyB;QAC/B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5B,OAAO,oBAAoB,CAC1B,UAAU,CAAC,kBAAkB,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;YAC1D,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,OAAO;YACzB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;gBAC1C,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACP,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC;QACF,CAAC,CAAC,CACF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,QAAyB;QAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,UAAU,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,UAAU,CAAiB;IACnC,IAAI;QACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAY,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClB,OAAO,CAAC,IAAI,CAAC,CAAC;YACf,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,YAAY;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE7B,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9B,CAAC;QACF,CAAC;IACF,CAAC;IAEO,SAAS,GAAG,KAAK,CAAC;IAC1B,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,OAAO;QACN,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACnC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5B,CAAC;QACF,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,MAAM,KAAK,GAAG,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE/D,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE;YACvC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;gBACnB,CAAC,IAAI,CAAC;oBACL,MAAM,IAAI,aAAa,CAAC,gBAAgB,IAAI,CAAC,WAAW,IAAI,IAAI,iCAAiC,EAAE,KAAK,CAAC,CAAC;gBAC3G,CAAC;aACD,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,cAAc,CAAC,aAAa,CAAC,CAAC;QAC9B,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzB,cAAc,CAAC,qBAAqB,CAAC,CAAC;IACvC,CAAC;IAEQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;IAEzC,CAAC,aAAa,CAAC,CAAC,MAAc,EAAE,OAAY;QAC3C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;QAC9D,IAAI,IAAI,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;YACxC,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC;QACzD,CAAC;QACD,CAAC,IAAI,eAAe,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;QAEtE,CAAC,IAAI,IAAI,CAAC;QACV,OAAO,CAAC,CAAC;IACV,CAAC;IAEO,mBAAmB;QAC1B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;CACD"}
@@ -44,7 +44,7 @@ export interface IEventEmitter<T = unknown> extends IDisposable {
44
44
  * 创建一个等待下次触发的promise
45
45
  */
46
46
  wait(): Promise<T>;
47
- readonly hasDisposed: boolean;
47
+ readonly disposed: boolean;
48
48
  }
49
49
  export type EventHandler<T> = (data: T) => void;
50
50
  /**
@@ -54,7 +54,7 @@ export interface EventRegister<T> {
54
54
  (callback: EventHandler<T>): IDisposable;
55
55
  once(callback: EventHandler<T>): IDisposable;
56
56
  wait(): IDisposable;
57
- readonly hasDisposed: boolean;
57
+ readonly disposed: boolean;
58
58
  }
59
59
  export type EventEmitterMap<T extends Record<string, unknown>> = {
60
60
  [K in keyof T]: Emitter<T[K]>;
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/event/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,WAAW;IAC9D;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC;IAExB;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAEpB;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAE3B;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAE/C;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAEjC;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAE7C;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IAEnB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC/B,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAC7C,IAAI,IAAI,WAAW,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;KAC/D,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7B,CAAC"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/event/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,WAAW;IAC9D;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC;IAExB;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAEpB;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAE3B;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAE/C;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAEjC;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAE7C;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IAEnB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC/B,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAC7C,IAAI,IAAI,WAAW,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;KAC/D,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function isPromiseLike(object: unknown): object is PromiseLike<unknown>;
2
+ //# sourceMappingURL=is-promise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-promise.d.ts","sourceRoot":"","sources":["../../src/promise/is-promise.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,CAE7E"}
@@ -0,0 +1,4 @@
1
+ export function isPromiseLike(object) {
2
+ return typeof object === 'object' && object !== null && typeof object.then === 'function';
3
+ }
4
+ //# sourceMappingURL=is-promise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-promise.js","sourceRoot":"","sources":["../../src/promise/is-promise.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,MAAe;IAC5C,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAQ,MAAc,CAAC,IAAI,KAAK,UAAU,CAAC;AACpG,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare function bindThis(method: Function, context: ClassMethodDecoratorContext): (((this: any, ...args: any[]) => any) & import("../../autoindex.js").NamedObject) | undefined;
1
+ export declare function bindThis(method: Function, context: ClassMethodDecoratorContext): (((this: any, ...args: any[]) => any) & import("../../autoindex.generated.js").NamedObject) | undefined;
2
2
  //# sourceMappingURL=bind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../../../src/reflection/methods/bind.ts"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,YAKL,GAAG,WAAW,GAAG,EAAE,kEAS5F"}
1
+ {"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../../../src/reflection/methods/bind.ts"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,YAKL,GAAG,WAAW,GAAG,EAAE,4EAS5F"}
@@ -18,7 +18,7 @@ export declare class Interval extends EnhancedDisposable {
18
18
  private readonly ms;
19
19
  private readonly unref;
20
20
  private readonly _emitter;
21
- readonly onTick: import("../autoindex.js").EventRegister<void>;
21
+ readonly onTick: import("../autoindex.generated.js").EventRegister<void>;
22
22
  private timer?;
23
23
  constructor(ms: number, unref?: boolean);
24
24
  fire(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"interval.d.ts","sourceRoot":"","sources":["../../src/schedule/interval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAK7E;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,KAAK,UAAQ;;;EAarE;AAED;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,kBAAkB;IAM9C,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IANvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAChE,SAAgB,MAAM,gDAAuB;IAC7C,OAAO,CAAC,KAAK,CAAC,CAAc;gBAGV,EAAE,EAAE,MAAM,EACV,KAAK,UAAQ;IAM/B,IAAI;IAIJ,MAAM;IAKN,KAAK;IAKI,OAAO;IAKhB,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG;CAUzD"}
1
+ {"version":3,"file":"interval.d.ts","sourceRoot":"","sources":["../../src/schedule/interval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAK7E;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,KAAK,UAAQ;;;EAarE;AAED;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,kBAAkB;IAM9C,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IANvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAChE,SAAgB,MAAM,0DAAuB;IAC7C,OAAO,CAAC,KAAK,CAAC,CAAc;gBAGV,EAAE,EAAE,MAAM,EACV,KAAK,UAAQ;IAM/B,IAAI;IAIJ,MAAM;IAKN,KAAK;IAKI,OAAO;IAKhB,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG;CAUzD"}
@@ -10,6 +10,6 @@ export declare function timeout(ms: number, error?: string, unref?: boolean): Pr
10
10
  * @returns promise resolve after specific time
11
11
  */
12
12
  export declare function sleep(ms: number, unref?: boolean): Promise<void>;
13
- export declare function raceTimeout<T>(ms: number, p: PromiseLike<T>): PromiseLike<T>;
14
- export declare function raceTimeout<T>(ms: number, message: string, p: PromiseLike<T>): PromiseLike<T>;
13
+ export declare function raceTimeout<T>(ms: number, p: PromiseLike<T>): Promise<T>;
14
+ export declare function raceTimeout<T>(ms: number, message: string, p: PromiseLike<T>): Promise<T>;
15
15
  //# sourceMappingURL=timeout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../src/schedule/timeout.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAgB,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAOxF;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9D;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9E,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../src/schedule/timeout.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAgB,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAOxF;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9D;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1E,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC"}
@@ -9,7 +9,7 @@ export declare class SimpleStateMachine<StateType, EventType> {
9
9
  protected currentState: StateType;
10
10
  protected readonly rules: ISsmRuleMap<StateType, EventType>;
11
11
  private readonly _onStateChange;
12
- readonly onStateChange: import("../autoindex.js").EventRegister<IStateChangeEvent<StateType, EventType>>;
12
+ readonly onStateChange: import("../autoindex.generated.js").EventRegister<IStateChangeEvent<StateType, EventType>>;
13
13
  constructor(rules: ISsmRuleMap<StateType, EventType>, init_state: StateType);
14
14
  protected moveTo(state: StateType): void;
15
15
  getName(): StateType;
@@ -1 +1 @@
1
- {"version":3,"file":"simple-state-machine.d.ts","sourceRoot":"","sources":["../../src/state/simple-state-machine.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,CAAC,SAAS,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAElG,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,iBAAiB,CAAC,SAAS,EAAE,SAAS;IACtD,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CAClB;AAED,qBAAa,kBAAkB,CAAC,SAAS,EAAE,SAAS;IACnD,UAAkB,YAAY,EAAE,SAAS,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE5D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0D;IACzF,SAAgB,aAAa,mFAAgC;gBAEjD,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,SAAS;IAK3E,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS;IAMjC,OAAO;IAIP,MAAM,CAAC,KAAK,EAAE,SAAS;CAcvB"}
1
+ {"version":3,"file":"simple-state-machine.d.ts","sourceRoot":"","sources":["../../src/state/simple-state-machine.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,CAAC,SAAS,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAElG,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,iBAAiB,CAAC,SAAS,EAAE,SAAS;IACtD,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CAClB;AAED,qBAAa,kBAAkB,CAAC,SAAS,EAAE,SAAS;IACnD,UAAkB,YAAY,EAAE,SAAS,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE5D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0D;IACzF,SAAgB,aAAa,6FAAgC;gBAEjD,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,SAAS;IAK3E,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS;IAMjC,OAAO;IAIP,MAAM,CAAC,KAAK,EAAE,SAAS;CAcvB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@idlebox/common",
3
3
  "type": "module",
4
- "version": "1.5.20",
4
+ "version": "1.5.21",
5
5
  "description": "Common utilities",
6
6
  "keywords": [
7
7
  "utilities",
@@ -11,8 +11,12 @@
11
11
  ],
12
12
  "exports": {
13
13
  ".": {
14
- "source": "./src/autoindex.ts",
15
- "default": "./lib/autoindex.js"
14
+ "esbuild": {
15
+ "early-loader": "./src/early-loader.devel.ts",
16
+ "generate": "./src/generate.devel.ts"
17
+ },
18
+ "source": "./src/autoindex.generated.ts",
19
+ "default": "./lib/autoindex.generated.js"
16
20
  },
17
21
  "./package.json": "./package.json"
18
22
  },
@@ -20,16 +24,16 @@
20
24
  "devDependencies": {
21
25
  "@types/debug": "^4.1.13",
22
26
  "@build-script/autoindex": "^0.0.21",
23
- "@build-script/codegen": "^1.0.21",
24
- "@mpis/publisher": "^0.0.19",
25
27
  "@build-script/baseline-rig": "latest",
28
+ "@build-script/codegen": "^1.0.21",
26
29
  "@idlebox/itypes": "^1.0.19",
30
+ "@mpis/publisher": "^0.0.19",
27
31
  "@mpis/run": "^0.0.25"
28
32
  },
29
33
  "dependencies": {
30
34
  "debug": "^4.4.3",
31
35
  "tslib": "^2.8.1",
32
- "@idlebox/errors": "^0.1.19"
36
+ "@idlebox/errors": "^0.1.20"
33
37
  },
34
38
  "license": "MIT",
35
39
  "author": "GongT <admin@gongt.me>",
@@ -38,7 +42,7 @@
38
42
  "url": "git+https://github.com/GongT/baobao.git",
39
43
  "directory": "@idlebox/common"
40
44
  },
41
- "main": "./lib/autoindex.js",
45
+ "main": "./lib/autoindex.generated.js",
42
46
  "scripts": {
43
47
  "build": "mpis-run build",
44
48
  "watch": "mpis-run watch",
@@ -83,6 +83,13 @@
83
83
  export { isSerializable } from "./debugging/serializable.js";
84
84
  export { getTypeOf } from "./debugging/serializable.js";
85
85
  export { assertSerializable } from "./debugging/serializable.js";
86
+ /* early-loader.devel.ts */
87
+ // Identifiers (5)
88
+ /* export { convertCaughtError } from "early-loader.devel.ts" # no rename early-loader.devel.ts */
89
+ /* export { createStackTraceHolder } from "early-loader.devel.ts" # no rename early-loader.devel.ts */
90
+ /* export { globalObject } from "early-loader.devel.ts" # no rename early-loader.devel.ts */
91
+ /* export { prettyFormatError } from "early-loader.devel.ts" # no rename early-loader.devel.ts */
92
+ /* export { prettyPrintError } from "early-loader.devel.ts" # no rename early-loader.devel.ts */
86
93
  /* error/cause.ts */
87
94
  // Identifiers (2)
88
95
  export { getRootCause } from "./error/cause.js";
@@ -127,6 +134,8 @@
127
134
  /* function/noop.ts */
128
135
  // Identifiers (1)
129
136
  export { noop } from "./function/noop.js";
137
+ /* generate.devel.ts */
138
+ // Identifiers (0)
130
139
  /* iterate/merge-iterable.ts */
131
140
  // Identifiers (4)
132
141
  export { mergeIterables } from "./iterate/merge-iterable.js";
@@ -156,9 +165,10 @@
156
165
  export { functionToDisposable } from "./lifecycle/dispose/bridges/function.js";
157
166
  export { disposerFunction } from "./lifecycle/dispose/bridges/function.js";
158
167
  /* lifecycle/dispose/bridges/native.ts */
159
- // Identifiers (2)
168
+ // Identifiers (3)
160
169
  export { fromNativeDisposable } from "./lifecycle/dispose/bridges/native.js";
161
- export { toNativeDisposable } from "./lifecycle/dispose/bridges/native.js";
170
+ export { toNativeDisposableAsync } from "./lifecycle/dispose/bridges/native.js";
171
+ export { toNativeDisposableSync } from "./lifecycle/dispose/bridges/native.js";
162
172
  /* lifecycle/dispose/bridges/streams.ts */
163
173
  // Identifiers (2)
164
174
  export { closableToDisposable } from "./lifecycle/dispose/bridges/streams.js";
@@ -166,9 +176,10 @@
166
176
  /* lifecycle/dispose/debug.ts */
167
177
  // Identifiers (0)
168
178
  /* lifecycle/dispose/disposable.ts */
169
- // Identifiers (5)
179
+ // Identifiers (6)
170
180
  export { DuplicateDisposeAction } from "./lifecycle/dispose/disposable.js";
171
181
  export type { IDisposableEvents } from "./lifecycle/dispose/disposable.js";
182
+ export type { IBackReferenceDisposableEvent } from "./lifecycle/dispose/disposable.js";
172
183
  export type { IDisposable } from "./lifecycle/dispose/disposable.js";
173
184
  export type { IAsyncDisposable } from "./lifecycle/dispose/disposable.js";
174
185
  export { AbstractEnhancedDisposable } from "./lifecycle/dispose/disposable.js";
@@ -312,6 +323,9 @@
312
323
  export type { ProgressCallback } from "./promise/deferred-promise.js";
313
324
  export type { IProgressHolder } from "./promise/deferred-promise.js";
314
325
  export { DeferredPromise } from "./promise/deferred-promise.js";
326
+ /* promise/is-promise.ts */
327
+ // Identifiers (1)
328
+ export { isPromiseLike } from "./promise/is-promise.js";
315
329
  /* promise/promise-bool.ts */
316
330
  // Identifiers (1)
317
331
  export { promiseBool } from "./promise/promise-bool.js";
@@ -321,7 +335,7 @@
321
335
  /* re-export.ts */
322
336
  // Identifiers (0)
323
337
  // References (1)
324
- export * from "@idlebox/errors";
338
+ export * from "@idlebox/errors"; /* reexport from node_modules */
325
339
  /* reflection/classes/pointer.ts */
326
340
  // Identifiers (2)
327
341
  export type { Ref } from "./reflection/classes/pointer.js";
@@ -1,6 +1,10 @@
1
+ import { Exit } from '@idlebox/errors';
1
2
  import { getErrorFrame } from './get-frame.js';
2
3
 
3
4
  export function convertCaughtError(e: unknown): Error {
5
+ if (e instanceof Exit) {
6
+ throw e;
7
+ }
4
8
  if (e instanceof Error) {
5
9
  return e;
6
10
  }
@@ -3,30 +3,49 @@ import { dispose_name } from './debug.js';
3
3
  import { AbstractEnhancedDisposable, type IAsyncDisposable } from './disposable.js';
4
4
 
5
5
  /**
6
- * Async version of Disposable
6
+ * 完整版disposable类
7
+ * 可以继承
8
+ * 也可以直接用(相当于一个DisposableStack)
9
+ *
10
+ * 抛出异常的行为会延迟到所有资源都尝试释放完毕之后,因此显然只会抛出其中一个异常给dispose()的调用者
11
+ * 每一个资源释放失败,都会分别触发onDisposeError事件,如果此事件存在监听器,则最后不会抛出异常(处非监听器本身重新抛出)
12
+ * 不支持在dispose过程中添加onError事件监听器
13
+ *
7
14
  * @public
8
15
  */
9
16
  export class EnhancedAsyncDisposable extends AbstractEnhancedDisposable<true> implements IAsyncDisposable {
10
17
  protected override async _dispose(disposables: readonly IAsyncDisposable[]): Promise<void> {
18
+ const hasListener = this._onDisposeError.listenerCount() > 0;
19
+
20
+ let lastError = null;
11
21
  for (const d of disposables) {
12
22
  try {
13
23
  if (this._logger.enabled) this._logger(`dispose ${dispose_name(d)}`);
14
24
  await d.dispose();
15
25
  } catch (e) {
16
- const ee = convertCaughtError(e);
17
- this._onDisposeError.fire(ee);
18
- if (!this._onDisposeError.listenerCount()) {
19
- console.error('Unhandled error during dispose: %s', ee.stack);
26
+ if (hasListener) {
27
+ try {
28
+ this._onDisposeError.fire(convertCaughtError(e));
29
+ } catch (e) {
30
+ lastError = e;
31
+ }
32
+ } else {
33
+ lastError = e;
20
34
  }
21
35
  }
22
36
  }
37
+ if (lastError) {
38
+ throw lastError;
39
+ }
23
40
  }
24
41
 
25
42
  [Symbol.asyncDispose] = this.dispose;
26
43
  }
27
44
 
28
45
  /**
29
- * Disposable everything in same time
46
+ * 和EnhancedAsyncDisposable相同,但是同时释放所有资源
47
+ * 并且忽略任何错误
48
+ *
30
49
  * @public
31
50
  */
32
51
  export class UnorderedAsyncDisposable extends EnhancedAsyncDisposable {
@@ -14,11 +14,9 @@ export function fromNativeDisposable(disposable: any): any {
14
14
  return disposable as any;
15
15
  }
16
16
 
17
- export function toNativeDisposable(disposable: IAsyncDisposable): AsyncDisposable;
18
- export function toNativeDisposable(disposable: IDisposable): Disposable;
19
- export function toNativeDisposable(disposable: any): any {
20
- if (!('dispose' in disposable)) {
21
- Object.assign(disposable, { dispose: disposable[Symbol.asyncDispose] ?? disposable[Symbol.dispose] });
22
- }
23
- return disposable as any;
17
+ export function toNativeDisposableAsync(disposable: IAsyncDisposable): AsyncDisposable {
18
+ return Object.assign(disposable, { [Symbol.asyncDispose]: disposable.dispose }) as any;
19
+ }
20
+ export function toNativeDisposableSync(disposable: IDisposable): Disposable {
21
+ return Object.assign(disposable, { [Symbol.dispose]: disposable.dispose }) as any;
24
22
  }
@@ -2,37 +2,42 @@ import { defineInspectMethod } from '../../../debugging/inspect.js';
2
2
  import { objectName } from '../../../debugging/object-with-name.js';
3
3
  import type { IAsyncDisposable } from '../disposable.js';
4
4
 
5
- type ClosableAsync = {
6
- close(): Promise<any>;
7
- close(cb: (e?: Error) => void): any;
8
- };
5
+ type ClosableAsync =
6
+ | {
7
+ closed?: boolean;
8
+ close(): Promise<any>;
9
+ }
10
+ | {
11
+ closed?: boolean;
12
+ close(cb: (e?: Error) => void): any;
13
+ };
9
14
 
10
15
  /**
11
16
  * Convert "close()"-able object to disposable
17
+ *
18
+ * FIXME: 关闭事件不同步
19
+ *
12
20
  * @public
13
21
  */
14
22
  export function closableToDisposable<T extends ClosableAsync>(closable: T): IAsyncDisposable {
15
- const promised = closable.close.length === 0;
16
-
17
23
  return defineInspectMethod(
18
24
  {
19
25
  get displayName() {
20
26
  return `closable(${objectName(closable) || 'unknown'})`;
21
27
  },
22
28
  dispose(): Promise<void> {
23
- if (promised) {
24
- return Promise.resolve(closable.close()).then(() => undefined);
25
- } else {
26
- return new Promise<void>((resolve, reject) => {
27
- closable.close((error) => {
28
- if (error) {
29
- reject(error);
30
- } else {
31
- resolve();
32
- }
33
- });
29
+ return new Promise<void>((resolve, reject) => {
30
+ const mayPromise = closable.close((error) => {
31
+ if (error) {
32
+ reject(error);
33
+ } else {
34
+ resolve();
35
+ }
34
36
  });
35
- }
37
+ if (typeof mayPromise?.then === 'function') {
38
+ mayPromise.then(resolve, reject);
39
+ }
40
+ });
36
41
  },
37
42
  },
38
43
  (_depth, options) => {
@@ -41,37 +46,42 @@ export function closableToDisposable<T extends ClosableAsync>(closable: T): IAsy
41
46
  );
42
47
  }
43
48
 
44
- type EndableAsync = {
45
- end(): Promise<any>;
46
- end(cb: (e?: Error) => void): any;
47
- };
49
+ type EndableAsync =
50
+ | {
51
+ ended?: boolean;
52
+ end(): Promise<any>;
53
+ }
54
+ | {
55
+ ended?: boolean;
56
+ end(cb: (e?: Error) => void): any;
57
+ };
48
58
 
49
59
  /**
50
60
  * Convert "end()"-able object to disposable
61
+ *
62
+ * FIXME: 关闭事件不同步
63
+ *
51
64
  * @public
52
65
  */
53
66
  export function endableToDisposable<T extends EndableAsync>(endable: T): IAsyncDisposable {
54
- const promised = endable.end.length === 0;
55
-
56
67
  return defineInspectMethod(
57
68
  {
58
69
  get displayName() {
59
70
  return `endable(${objectName(endable) || 'unknown'})`;
60
71
  },
61
72
  dispose(): Promise<void> {
62
- if (promised) {
63
- return Promise.resolve(endable.end()).then(() => undefined);
64
- } else {
65
- return new Promise<void>((resolve, reject) => {
66
- return endable.end((error) => {
67
- if (error) {
68
- reject(error);
69
- } else {
70
- resolve();
71
- }
72
- });
73
+ return new Promise<void>((resolve, reject) => {
74
+ const mayPromise = endable.end((error) => {
75
+ if (error) {
76
+ reject(error);
77
+ } else {
78
+ resolve();
79
+ }
73
80
  });
74
- }
81
+ if (typeof mayPromise?.then === 'function') {
82
+ mayPromise.then(resolve, reject);
83
+ }
84
+ });
75
85
  },
76
86
  },
77
87
  (_depth, options) => {