@idlebox/common 1.5.20 → 1.5.22

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 (95) hide show
  1. package/lib/{autoindex.d.ts → autoindex.generated.d.ts} +5 -4
  2. package/lib/autoindex.generated.d.ts.map +1 -0
  3. package/lib/{autoindex.js → autoindex.generated.js} +12 -6
  4. package/lib/autoindex.generated.js.map +1 -0
  5. package/lib/debugging/inspect.d.ts.map +1 -1
  6. package/lib/debugging/inspect.js +2 -1
  7. package/lib/debugging/inspect.js.map +1 -1
  8. package/lib/error/convert-unknown.d.ts.map +1 -1
  9. package/lib/error/convert-unknown.js +4 -0
  10. package/lib/error/convert-unknown.js.map +1 -1
  11. package/lib/error/pretty.nodejs.d.ts.map +1 -1
  12. package/lib/error/pretty.nodejs.js +4 -1
  13. package/lib/error/pretty.nodejs.js.map +1 -1
  14. package/lib/error/stack-parser.v8.js +2 -2
  15. package/lib/error/stack-parser.v8.js.map +1 -1
  16. package/lib/lifecycle/dispose/async-disposable.d.ts +11 -2
  17. package/lib/lifecycle/dispose/async-disposable.d.ts.map +1 -1
  18. package/lib/lifecycle/dispose/async-disposable.js +26 -6
  19. package/lib/lifecycle/dispose/async-disposable.js.map +1 -1
  20. package/lib/lifecycle/dispose/bridges/native.d.ts +2 -2
  21. package/lib/lifecycle/dispose/bridges/native.d.ts.map +1 -1
  22. package/lib/lifecycle/dispose/bridges/native.js +5 -5
  23. package/lib/lifecycle/dispose/bridges/native.js.map +1 -1
  24. package/lib/lifecycle/dispose/bridges/streams.d.ts +12 -0
  25. package/lib/lifecycle/dispose/bridges/streams.d.ts.map +1 -1
  26. package/lib/lifecycle/dispose/bridges/streams.js +30 -30
  27. package/lib/lifecycle/dispose/bridges/streams.js.map +1 -1
  28. package/lib/lifecycle/dispose/disposable.d.ts +11 -8
  29. package/lib/lifecycle/dispose/disposable.d.ts.map +1 -1
  30. package/lib/lifecycle/dispose/disposable.js +65 -27
  31. package/lib/lifecycle/dispose/disposable.js.map +1 -1
  32. package/lib/lifecycle/dispose/sync-disposable.d.ts +6 -1
  33. package/lib/lifecycle/dispose/sync-disposable.d.ts.map +1 -1
  34. package/lib/lifecycle/dispose/sync-disposable.js +21 -5
  35. package/lib/lifecycle/dispose/sync-disposable.js.map +1 -1
  36. package/lib/lifecycle/event/event.d.ts +27 -4
  37. package/lib/lifecycle/event/event.d.ts.map +1 -1
  38. package/lib/lifecycle/event/event.js +86 -37
  39. package/lib/lifecycle/event/event.js.map +1 -1
  40. package/lib/lifecycle/event/type.d.ts +2 -2
  41. package/lib/lifecycle/event/type.d.ts.map +1 -1
  42. package/lib/map-and-set/required-map.d.ts.map +1 -1
  43. package/lib/map-and-set/required-map.js +8 -0
  44. package/lib/map-and-set/required-map.js.map +1 -1
  45. package/lib/promise/deferred-promise.d.ts +1 -0
  46. package/lib/promise/deferred-promise.d.ts.map +1 -1
  47. package/lib/promise/deferred-promise.js +5 -5
  48. package/lib/promise/deferred-promise.js.map +1 -1
  49. package/lib/promise/is-promise.d.ts +2 -0
  50. package/lib/promise/is-promise.d.ts.map +1 -0
  51. package/lib/promise/is-promise.js +4 -0
  52. package/lib/promise/is-promise.js.map +1 -0
  53. package/lib/re-export.d.ts.map +1 -1
  54. package/lib/re-export.js +0 -1
  55. package/lib/re-export.js.map +1 -1
  56. package/lib/reflection/methods/bind.d.ts +1 -1
  57. package/lib/reflection/methods/bind.d.ts.map +1 -1
  58. package/lib/schedule/extendable-timer.d.ts +1 -1
  59. package/lib/schedule/extendable-timer.d.ts.map +1 -1
  60. package/lib/schedule/extendable-timer.js.map +1 -1
  61. package/lib/schedule/interval.d.ts +1 -1
  62. package/lib/schedule/interval.d.ts.map +1 -1
  63. package/lib/schedule/timeout.d.ts +3 -3
  64. package/lib/schedule/timeout.d.ts.map +1 -1
  65. package/lib/schedule/timeout.js +6 -9
  66. package/lib/schedule/timeout.js.map +1 -1
  67. package/lib/state/simple-state-machine.d.ts +1 -1
  68. package/lib/state/simple-state-machine.d.ts.map +1 -1
  69. package/package.json +12 -11
  70. package/src/{autoindex.ts → autoindex.generated.ts} +12 -9
  71. package/src/debugging/inspect.ts +2 -1
  72. package/src/error/convert-unknown.ts +4 -0
  73. package/src/error/pretty.nodejs.ts +5 -1
  74. package/src/error/stack-parser.v8.ts +2 -2
  75. package/src/lifecycle/dispose/async-disposable.ts +25 -6
  76. package/src/lifecycle/dispose/bridges/native.ts +5 -7
  77. package/src/lifecycle/dispose/bridges/streams.ts +46 -36
  78. package/src/lifecycle/dispose/disposable.ts +94 -35
  79. package/src/lifecycle/dispose/sync-disposable.ts +21 -5
  80. package/src/lifecycle/event/event.ts +84 -37
  81. package/src/lifecycle/event/type.ts +2 -2
  82. package/src/map-and-set/required-map.ts +10 -0
  83. package/src/promise/deferred-promise.ts +5 -6
  84. package/src/promise/is-promise.ts +3 -0
  85. package/src/re-export.ts +0 -1
  86. package/src/schedule/extendable-timer.ts +1 -2
  87. package/src/schedule/timeout.ts +10 -6
  88. package/lib/autoindex.d.ts.map +0 -1
  89. package/lib/autoindex.js.map +0 -1
  90. package/lib/schedule/local-type.d.ts +0 -3
  91. package/lib/schedule/local-type.d.ts.map +0 -1
  92. package/lib/schedule/local-type.js +0 -2
  93. package/lib/schedule/local-type.js.map +0 -1
  94. package/src/schedule/local-type.ts +0 -2
  95. package/src/string/concatType.generator.ts +0 -31
@@ -7,10 +7,13 @@ export declare enum DuplicateDisposeAction {
7
7
  Allow = 2
8
8
  }
9
9
  /** @public */
10
- export interface IDisposableEvents {
11
- onDisposeError: EventRegister<Error>;
12
- onBeforeDispose: EventRegister<void>;
13
- readonly hasDisposed: boolean;
10
+ export interface IDisposableEvents extends IBackReferenceDisposableEvent {
11
+ readonly onDisposeError: EventRegister<Error>;
12
+ readonly onPostDispose: EventRegister<void>;
13
+ readonly disposed: boolean;
14
+ }
15
+ export interface IBackReferenceDisposableEvent {
16
+ readonly onBeforeDispose: EventRegister<void>;
14
17
  }
15
18
  /** @public */
16
19
  export interface IDisposable extends MaybeNamed {
@@ -50,14 +53,14 @@ export declare abstract class AbstractEnhancedDisposable<Async extends boolean>
50
53
  * register a disposable object
51
54
  */
52
55
  _register<T extends _Type<Async>>(d: T): T;
53
- _register<T extends _Type<Async> & IDisposableEvents>(d: T, autoDereference?: boolean): T;
56
+ _register<T extends _Type<Async> & IBackReferenceDisposableEvent>(d: T, autoDereference?: boolean): T;
54
57
  _unregister(d: _Type<Async>): boolean;
55
- private _disposed?;
58
+ private __dispose_state;
56
59
  get disposed(): boolean;
57
60
  /**
58
- * @deprecated use disposed
61
+ * 正在dispose中(已开始但未完成)
59
62
  */
60
- get hasDisposed(): boolean;
63
+ get disposing(): boolean;
61
64
  /**
62
65
  * 释放相关资源
63
66
  */
@@ -1 +1 @@
1
- {"version":3,"file":"disposable.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/dispose/disposable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAGtE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKtD,oBAAY,sBAAsB;IACjC,OAAO,IAAI;IACX,OAAO,IAAI;IACX,KAAK,IAAI;CACT;AAED,cAAc;AACd,MAAM,WAAW,iBAAiB;IACjC,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,eAAe,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC9B;AAED,cAAc;AACd,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC9C,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,cAAc;AACd,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IACnD,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,KAAK,KAAK,CAAC,KAAK,SAAS,OAAO,IAAI,KAAK,SAAS,IAAI,GAAG,gBAAgB,GAAG,WAAW,CAAC;AACxF,KAAK,MAAM,CAAC,KAAK,SAAS,OAAO,IAAI,KAAK,SAAS,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE/E;;GAEG;AACH,8BAAsB,0BAA0B,CAAC,KAAK,SAAS,OAAO,CAAE,YAAW,iBAAiB;IACnG,SAAS,CAAC,QAAQ,CAAC,eAAe,iBAAC;IACnC,SAAgB,cAAc,uBAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,gBAAgB,gBAAC;IACpC,SAAgB,eAAe,sBAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,cAAc,gBAAC;IAClC,SAAgB,aAAa,sBAAC;IAE9B,eAAe;IACf,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAkC;IAE7F;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAM;IAErD,gBAAgB;IAChB,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,OAAO,2BAAC;gBAEf,WAAW,CAAC,EAAE,MAAM;IAoBhC;;OAEG;IACI,iBAAiB;IAMxB;;OAEG;IACI,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;IAC1C,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,CAAC;IAiBzF,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC;IAUlC,OAAO,CAAC,SAAS,CAAC,CAGhB;IACF,IAAW,QAAQ,YAElB;IACD;;OAEG;IACH,IAAW,WAAW,YAErB;IAED;;OAEG;IACI,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;IAoC/B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;IAED,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;CAChF"}
1
+ {"version":3,"file":"disposable.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/dispose/disposable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAKtE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKtD,oBAAY,sBAAsB;IACjC,OAAO,IAAI;IACX,OAAO,IAAI;IACX,KAAK,IAAI;CACT;AAED,cAAc;AACd,MAAM,WAAW,iBAAkB,SAAQ,6BAA6B;IACvE,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED,cAAc;AACd,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC9C,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,cAAc;AACd,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IACnD,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,KAAK,KAAK,CAAC,KAAK,SAAS,OAAO,IAAI,KAAK,SAAS,IAAI,GAAG,gBAAgB,GAAG,WAAW,CAAC;AACxF,KAAK,MAAM,CAAC,KAAK,SAAS,OAAO,IAAI,KAAK,SAAS,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAkB/E;;GAEG;AACH,8BAAsB,0BAA0B,CAAC,KAAK,SAAS,OAAO,CAAE,YAAW,iBAAiB;IACnG,SAAS,CAAC,QAAQ,CAAC,eAAe,iBAAC;IACnC,SAAgB,cAAc,uBAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,gBAAgB,gBAAC;IACpC,SAAgB,eAAe,sBAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,cAAc,gBAAC;IAClC,SAAgB,aAAa,sBAAC;IAE9B,eAAe;IACf,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAkC;IAE7F;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAM;IAErD,gBAAgB;IAChB,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,OAAO,2BAAC;gBAEf,WAAW,CAAC,EAAE,MAAM;IAoBhC;;OAEG;IACI,iBAAiB;IAMxB;;OAEG;IACI,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;IAC1C,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,GAAG,6BAA6B,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,CAAC;IAkBrG,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC;IAUlC,OAAO,CAAC,eAAe,CAA6C;IACpE,IAAW,QAAQ,YAElB;IAED;;OAEG;IACH,IAAW,SAAS,YAEnB;IAED;;OAEG;IACI,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;IA0E/B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;IAED,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;CAChF"}
@@ -1,6 +1,8 @@
1
1
  import { defineInspectMethod } from '../../debugging/inspect.js';
2
+ import { convertCaughtError } from '../../error/convert-unknown.js';
3
+ import { prettyPrintError } from '../../error/pretty.nodejs.js';
2
4
  import { createStackTraceHolder } from '../../error/stack-trace.js';
3
- import { definePublicConstant } from '../../object/definePublicConstant.js';
5
+ import { isPromiseLike } from '../../promise/is-promise.js';
4
6
  import { Emitter } from '../event/event.js';
5
7
  import { fromNativeDisposable } from './bridges/native.js';
6
8
  import { _debug_dispose, dispose_name, forgetParent, rememberParent } from './debug.js';
@@ -41,19 +43,19 @@ export class AbstractEnhancedDisposable {
41
43
  this._logger = defineInspectMethod(_debug_dispose.extend(this.displayName || 'disposable'), () => {
42
44
  return `[Function debug]`;
43
45
  });
44
- this._onDisposeError = this._register(new Emitter(`${this.displayName}:errorEvent`));
46
+ this._onDisposeError = new Emitter(`${this.displayName}:errorEvent`, Emitter.EAction.PrintIgnore);
45
47
  this.onDisposeError = this._onDisposeError.register;
46
- this._onBeforeDispose = this._register(new Emitter(`${this.displayName}:beforeEvent`));
48
+ this._onBeforeDispose = new Emitter(`${this.displayName}:beforeEvent`, Emitter.EAction.PrintIgnore);
47
49
  this.onBeforeDispose = this._onBeforeDispose.register;
48
- this._onPostDispose = new Emitter(`${this.displayName}:postEvent`);
50
+ this._onPostDispose = new Emitter(`${this.displayName}:postEvent`, Emitter.EAction.PrintIgnore);
49
51
  this.onPostDispose = this._onPostDispose.register;
50
52
  }
51
53
  /**
52
54
  * @throws if already disposed
53
55
  */
54
56
  assertNotDisposed() {
55
- if (this._disposed) {
56
- throw new DuplicateDisposedError(this, this._disposed.trace);
57
+ if (this.__dispose_state.trace) {
58
+ throw new DuplicateDisposedError(this, this.__dispose_state.trace);
57
59
  }
58
60
  }
59
61
  _register(d, autoDereference) {
@@ -65,6 +67,8 @@ export class AbstractEnhancedDisposable {
65
67
  this._disposables.unshift(fromNativeDisposable(d));
66
68
  if (autoDereference) {
67
69
  d.onBeforeDispose(() => {
70
+ if (this.disposing || this.disposed)
71
+ return;
68
72
  this._unregister(d);
69
73
  });
70
74
  }
@@ -80,47 +84,81 @@ export class AbstractEnhancedDisposable {
80
84
  forgetParent(d, this);
81
85
  return rmOk;
82
86
  }
83
- _disposed;
87
+ __dispose_state = { finished: false };
84
88
  get disposed() {
85
- return !!this._disposed;
89
+ return this.__dispose_state.finished;
86
90
  }
87
91
  /**
88
- * @deprecated use disposed
92
+ * 正在dispose中(已开始但未完成)
89
93
  */
90
- get hasDisposed() {
91
- return !!this._disposed;
94
+ get disposing() {
95
+ return !this.__dispose_state.finished && !!this.__dispose_state.trace;
92
96
  }
93
97
  /**
94
98
  * 释放相关资源
95
99
  */
96
100
  dispose() {
97
- if (this._disposed) {
98
- if (this.duplicateDispose === DuplicateDisposeAction.Allow)
99
- return this._disposed.result;
100
- const dupErr = new DuplicateDisposedError(this, this._disposed.trace);
101
+ if (this.__dispose_state.trace) {
102
+ // 释放已开始或已结束
103
+ if (this.duplicateDispose === DuplicateDisposeAction.Allow) {
104
+ if (this.__dispose_state.error) {
105
+ throw this.__dispose_state.error;
106
+ }
107
+ else {
108
+ /**
109
+ * biome-ignore lint/style/noNonNullAssertion: 完全无需考虑
110
+ *
111
+ * 异步dispose的同步部分,重复调用dispose,会返回undefined而非Promise
112
+ * 但这正好是希望的,否则死锁了
113
+ */
114
+ return this.__dispose_state.result;
115
+ }
116
+ }
117
+ const dupErr = new DuplicateDisposedError(this, this.__dispose_state.trace);
101
118
  dupErr.consoleWarning();
102
119
  if (this.duplicateDispose === DuplicateDisposeAction.Disable) {
103
120
  throw dupErr;
104
121
  }
105
122
  else {
106
- return this._disposed.result;
123
+ return this.__dispose_state.result;
107
124
  }
125
+ // never
108
126
  }
109
- this._onBeforeDispose.fireNoError();
110
- const r = this._dispose(this._disposables);
111
- const trace = createStackTraceHolder('disposed', this.dispose);
112
127
  const cleanup = () => {
113
- definePublicConstant(this, '_disposed', {
114
- // 记录 disposed 状态,顺便也记录调用栈
115
- trace: trace,
116
- result: r,
117
- });
128
+ this.__dispose_state.finished = true;
118
129
  Object.assign(this, { _disposables: null });
119
- this._onPostDispose.fireNoError();
130
+ this._onPostDispose.fire();
120
131
  this._onPostDispose.dispose();
132
+ this._onDisposeError.dispose();
121
133
  };
122
- if (r && 'then' in r) {
123
- r.finally(cleanup);
134
+ // 第一时间设置trace
135
+ this.__dispose_state.trace = createStackTraceHolder('disposed', this.dispose);
136
+ this._onBeforeDispose.fire();
137
+ this._onBeforeDispose.dispose();
138
+ try {
139
+ this.__dispose_state.result = this._dispose(this._disposables);
140
+ }
141
+ catch (e) {
142
+ // 同步错误处理
143
+ const err = convertCaughtError(e);
144
+ this.__dispose_state.error = err;
145
+ this._onDisposeError.fire(err);
146
+ if (this._onDisposeError.listenerCount() === 0) {
147
+ prettyPrintError('unhandled sync dispose error', err);
148
+ }
149
+ cleanup();
150
+ throw this.__dispose_state.error;
151
+ }
152
+ const r = this.__dispose_state.result;
153
+ if (isPromiseLike(r)) {
154
+ // 异步错误处理
155
+ r.catch((e) => {
156
+ e = convertCaughtError(e);
157
+ this._onDisposeError.fire(e);
158
+ if (this._onDisposeError.listenerCount() === 0) {
159
+ prettyPrintError('unhandled async dispose error', e);
160
+ }
161
+ }).finally(cleanup);
124
162
  }
125
163
  else {
126
164
  cleanup();
@@ -1 +1 @@
1
- {"version":3,"file":"disposable.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/disposable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,sBAAsB,EAAyB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IACjC,yEAAW,CAAA;IACX,yEAAW,CAAA;IACX,qEAAS,CAAA;AACV,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC;AAsBD;;GAEG;AACH,MAAM,OAAgB,0BAA0B;IAC5B,eAAe,CAAC;IACnB,cAAc,CAAC;IACZ,gBAAgB,CAAC;IACpB,eAAe,CAAC;IACb,cAAc,CAAC;IAClB,aAAa,CAAC;IAE9B,eAAe;IACI,gBAAgB,GAA2B,sBAAsB,CAAC,OAAO,CAAC;IAE7F;;OAEG;IACgB,YAAY,GAAmB,EAAE,CAAC;IAErD,gBAAgB;IACA,WAAW,CAAU;IAClB,OAAO,CAAC;IAE3B,YAAY,WAAoB;QAC/B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9B,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,EAAE,GAAG,EAAE;YAChG,OAAO,kBAAkB,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,CAAQ,GAAG,IAAI,CAAC,WAAW,aAAa,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;QACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,CAAO,GAAG,IAAI,CAAC,WAAW,cAAc,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,CAAO,GAAG,IAAI,CAAC,WAAW,YAAY,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;IACnD,CAAC;IAED;;OAEG;IACI,iBAAiB;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;IACF,CAAC;IAOM,SAAS,CAAC,CAAM,EAAE,eAAyB;QACjD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,YAAY,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,CAAC,CAAC,CAAC,+BAA+B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnJ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,eAAe,EAAE,CAAC;YACpB,CAAuB,CAAC,eAAe,CAAC,GAAG,EAAE;gBAC7C,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAExB,OAAO,CAAC,CAAC;IACV,CAAC;IAEM,WAAW,CAAC,CAAe;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,cAAc,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAElF,IAAI,IAAI;YAAE,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,SAAS,CAGf;IACF,IAAW,QAAQ;QAClB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IACzB,CAAC;IACD;;OAEG;IACH,IAAW,WAAW;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,OAAO;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,gBAAgB,KAAK,sBAAsB,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAEzF,MAAM,MAAM,GAAG,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACtE,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,gBAAgB,KAAK,sBAAsB,CAAC,OAAO,EAAE,CAAC;gBAC9D,MAAM,MAAM,CAAC;YACd,CAAC;iBAAM,CAAC;gBACP,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAC9B,CAAC;QACF,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;QAEpC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE;gBACvC,0BAA0B;gBAC1B,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,CAAC;aACT,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAC/B,CAAC,CAAC;QACF,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,CAAC,CAAC;IACV,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACvB,OAAO,IAAI,CAAC,WAAW,IAAI,oBAAoB,CAAC;IACjD,CAAC;CAGD;AAED,mBAAmB,CAAC,0BAA0B,CAAC,SAAS,EAAE,UAAqB,MAAc,EAAE,OAAY;IAC1G,IACC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,yBAAyB;QACnD,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,0BAA0B;QACpD,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,oBAAoB,EAC7C,CAAC;QACF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,SAAS,CAAC,CAAC;IACrF,CAAC;AACF,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"disposable.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/disposable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAyB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IACjC,yEAAW,CAAA;IACX,yEAAW,CAAA;IACX,qEAAS,CAAA;AACV,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC;AA0CD;;GAEG;AACH,MAAM,OAAgB,0BAA0B;IAC5B,eAAe,CAAC;IACnB,cAAc,CAAC;IACZ,gBAAgB,CAAC;IACpB,eAAe,CAAC;IACb,cAAc,CAAC;IAClB,aAAa,CAAC;IAE9B,eAAe;IACI,gBAAgB,GAA2B,sBAAsB,CAAC,OAAO,CAAC;IAE7F;;OAEG;IACgB,YAAY,GAAmB,EAAE,CAAC;IAErD,gBAAgB;IACA,WAAW,CAAU;IAClB,OAAO,CAAC;IAE3B,YAAY,WAAoB;QAC/B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9B,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,EAAE,GAAG,EAAE;YAChG,OAAO,kBAAkB,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,GAAG,IAAI,OAAO,CAAQ,GAAG,IAAI,CAAC,WAAW,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;QACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,OAAO,CAAO,GAAG,IAAI,CAAC,WAAW,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1G,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,CAAO,GAAG,IAAI,CAAC,WAAW,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACtG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;IACnD,CAAC;IAED;;OAEG;IACI,iBAAiB;QACvB,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACpE,CAAC;IACF,CAAC;IAOM,SAAS,CAAC,CAAM,EAAE,eAAyB;QACjD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,YAAY,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,CAAC,CAAC,CAAC,+BAA+B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnJ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,eAAe,EAAE,CAAC;YACpB,CAAmC,CAAC,eAAe,CAAC,GAAG,EAAE;gBACzD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBAC5C,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAExB,OAAO,CAAC,CAAC;IACV,CAAC;IAEM,WAAW,CAAC,CAAe;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,cAAc,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAElF,IAAI,IAAI;YAAE,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,eAAe,GAAyB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACpE,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QACnB,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;IACvE,CAAC;IAED;;OAEG;IACI,OAAO;QACb,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAChC,YAAY;YACZ,IAAI,IAAI,CAAC,gBAAgB,KAAK,sBAAsB,CAAC,KAAK,EAAE,CAAC;gBAC5D,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;oBAChC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACP;;;;;uBAKG;oBACH,OAAO,IAAI,CAAC,eAAe,CAAC,MAAO,CAAC;gBACrC,CAAC;YACF,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,gBAAgB,KAAK,sBAAsB,CAAC,OAAO,EAAE,CAAC;gBAC9D,MAAM,MAAM,CAAC;YACd,CAAC;iBAAM,CAAC;gBACP,OAAO,IAAI,CAAC,eAAe,CAAC,MAAa,CAAC;YAC3C,CAAC;YACD,QAAQ;QACT,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC;YAErC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAE9B,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC,CAAC;QAEF,cAAc;QACd,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE9E,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAEhC,IAAI,CAAC;YACJ,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,SAAS;YACT,MAAM,GAAG,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,GAAG,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;gBAChD,gBAAgB,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;YACvD,CAAC;YACD,OAAO,EAAE,CAAC;YACV,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAClC,CAAC;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QACtC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,SAAS;YACT,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACb,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;oBAChD,gBAAgB,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;gBACtD,CAAC;YACF,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,CAAC,CAAC;IACV,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACvB,OAAO,IAAI,CAAC,WAAW,IAAI,oBAAoB,CAAC;IACjD,CAAC;CAGD;AAED,mBAAmB,CAAC,0BAA0B,CAAC,SAAS,EAAE,UAAqB,MAAc,EAAE,OAAY;IAC1G,IACC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,yBAAyB;QACnD,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,0BAA0B;QACpD,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,oBAAoB,EAC7C,CAAC;QACF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,SAAS,CAAC,CAAC;IACrF,CAAC;AACF,CAAC,CAAC,CAAC"}
@@ -4,7 +4,7 @@ import { AbstractEnhancedDisposable, type IDisposable } from './disposable.js';
4
4
  */
5
5
  export declare abstract class DisposableOnce implements IDisposable {
6
6
  private _disposed?;
7
- get hasDisposed(): boolean;
7
+ get disposed(): boolean;
8
8
  dispose(): void;
9
9
  [Symbol.dispose](): void;
10
10
  protected abstract _dispose(): void;
@@ -13,6 +13,11 @@ export declare abstract class DisposableOnce implements IDisposable {
13
13
  * 完整版disposable类
14
14
  * 可以继承
15
15
  * 也可以直接用(相当于一个DisposableStack)
16
+ *
17
+ * 抛出异常的行为会延迟到所有资源都尝试释放完毕之后,因此显然只会抛出其中一个异常给dispose()的调用者
18
+ * 每一个资源释放失败,都会分别触发onDisposeError事件,如果此事件存在监听器,则最后不会抛出异常(处非监听器本身重新抛出)
19
+ * 不支持在dispose过程中添加onError事件监听器
20
+ *
16
21
  */
17
22
  export declare class EnhancedDisposable extends AbstractEnhancedDisposable<false> implements IDisposable {
18
23
  protected _dispose(disposables: readonly IDisposable[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-disposable.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/dispose/sync-disposable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG/E;;GAEG;AACH,8BAAsB,cAAe,YAAW,WAAW;IAC1D,OAAO,CAAC,SAAS,CAAC,CAAmB;IAErC,IAAW,WAAW,YAErB;IACM,OAAO,IAAI,IAAI;IAStB,CAAC,MAAM,CAAC,OAAO,CAAC;IAGhB,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI;CACnC;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,0BAA0B,CAAC,KAAK,CAAE,YAAW,WAAW;cAC5E,QAAQ,CAAC,WAAW,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI;IAgB/D,CAAC,MAAM,CAAC,OAAO,CAAC,aAAgB;CACvC"}
1
+ {"version":3,"file":"sync-disposable.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/dispose/sync-disposable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG/E;;GAEG;AACH,8BAAsB,cAAe,YAAW,WAAW;IAC1D,OAAO,CAAC,SAAS,CAAC,CAAmB;IAErC,IAAW,QAAQ,YAElB;IACM,OAAO,IAAI,IAAI;IAStB,CAAC,MAAM,CAAC,OAAO,CAAC;IAGhB,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI;CACnC;AAED;;;;;;;;;GASG;AACH,qBAAa,kBAAmB,SAAQ,0BAA0B,CAAC,KAAK,CAAE,YAAW,WAAW;cAC5E,QAAQ,CAAC,WAAW,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI;IA2B/D,CAAC,MAAM,CAAC,OAAO,CAAC,aAAgB;CACvC"}
@@ -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"}
@@ -1,17 +1,39 @@
1
1
  import { inspectSymbol } from '../../debugging/inspect.js';
2
2
  import type { IDisposable } from '../dispose/disposable.js';
3
3
  import type { EventHandler, EventRegister, IEventEmitter } from './type.js';
4
+ declare enum FireErrorAction {
5
+ Throw = 0,
6
+ Delay = 1,
7
+ Ignore = 2,
8
+ PrintIgnore = 3
9
+ }
4
10
  /**
5
11
  * @public
6
12
  */
7
13
  export declare class Emitter<T = unknown> implements IEventEmitter<T> {
8
14
  readonly displayName: string;
9
- protected _callbacks?: (EventHandler<T> | undefined)[];
15
+ private readonly onErrorDefault;
16
+ protected readonly _callbacks: (EventHandler<T> | undefined)[];
10
17
  private executing;
11
18
  private _something_change_during_call;
12
- constructor(displayName?: string);
19
+ static readonly EAction: typeof FireErrorAction;
20
+ constructor(displayName?: string, onErrorDefault?: FireErrorAction);
13
21
  listenerCount(): number;
14
- fire(data: T): void;
22
+ private __fireThrow;
23
+ private __fireDelay;
24
+ private __fireIgnore;
25
+ private __firePrintIgnore;
26
+ /**
27
+ * @param data
28
+ * @param error {Emitter.EAction} 如何处理错误
29
+ * - Throw: 默认行为,遇到错误立即抛出,后续监听器不再被调用
30
+ * - Delay: 等所有监听器都调用完后,如果有错误则抛出AggregateError,包含所有错误
31
+ * - Ignore: 忽略所有错误,继续调用全部监听器
32
+ * - PrintIgnore: 忽略所有错误,但打印错误信息
33
+ * @returns
34
+ */
35
+ fire(data: T, error?: FireErrorAction): void;
36
+ /** @deprecated use fire(data, Emitter.Error.Ignore) */
15
37
  fireNoError(data: T): void;
16
38
  get register(): EventRegister<T>;
17
39
  get event(): EventRegister<T>;
@@ -31,7 +53,7 @@ export declare class Emitter<T = unknown> implements IEventEmitter<T> {
31
53
  wait(): Promise<T>;
32
54
  private checkDeleted;
33
55
  private _disposed;
34
- get hasDisposed(): boolean;
56
+ get disposed(): boolean;
35
57
  /**
36
58
  * 运行过程中可以dispose,本次运行仍然会继续到最后
37
59
  * 但立即不能再次调用类似handle的方法
@@ -41,4 +63,5 @@ export declare class Emitter<T = unknown> implements IEventEmitter<T> {
41
63
  [inspectSymbol](_depth: number, options: any): string;
42
64
  private requireNotExecuting;
43
65
  }
66
+ export {};
44
67
  //# sourceMappingURL=event.d.ts.map
@@ -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":"AAAA,OAAO,EAAuB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAMhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI5E,aAAK,eAAe;IACnB,KAAK,IAAI;IACT,KAAK,IAAI;IACT,MAAM,IAAI;IACV,WAAW,IAAI;CACf;AAED;;GAEG;AACH,qBAAa,OAAO,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;aAQ3C,WAAW,EAAE,MAAM;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc;IARhC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAM;IACpE,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,6BAA6B,CAAS;IAE9C,MAAM,CAAC,QAAQ,CAAC,OAAO,yBAAmB;gBAGzB,WAAW,GAAE,MAAsB,EAClC,cAAc,GAAE,eAAuC;IAkBlE,aAAa;IAIpB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,iBAAiB;IAWzB;;;;;;;;OAQG;IACI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,kBAAsB;IA0BhD,uDAAuD;IAChD,WAAW,CAAC,IAAI,EAAE,CAAC;IAI1B,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;IAmB9C;;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;IA+BP,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,20 +1,31 @@
1
- import { Exit } from '@idlebox/errors';
2
1
  import { defineInspectMethod, inspectSymbol } from '../../debugging/inspect.js';
3
2
  import { nameObject, objectName } from '../../debugging/object-with-name.js';
3
+ import { convertCaughtError } from '../../error/convert-unknown.js';
4
+ import { prettyPrintError } from '../../error/pretty.nodejs.js';
4
5
  import { createStackTraceHolder } from '../../error/stack-trace.js';
5
6
  import { functionToDisposable } from '../dispose/bridges/function.js';
6
7
  import { DisposedError } from '../dispose/disposedError.js';
7
8
  const anonymousName = 'AnonymousEmitter';
9
+ var FireErrorAction;
10
+ (function (FireErrorAction) {
11
+ FireErrorAction[FireErrorAction["Throw"] = 0] = "Throw";
12
+ FireErrorAction[FireErrorAction["Delay"] = 1] = "Delay";
13
+ FireErrorAction[FireErrorAction["Ignore"] = 2] = "Ignore";
14
+ FireErrorAction[FireErrorAction["PrintIgnore"] = 3] = "PrintIgnore";
15
+ })(FireErrorAction || (FireErrorAction = {}));
8
16
  /**
9
17
  * @public
10
18
  */
11
19
  export class Emitter {
12
20
  displayName;
13
- _callbacks;
21
+ onErrorDefault;
22
+ _callbacks = [];
14
23
  executing = false;
15
24
  _something_change_during_call = false;
16
- constructor(displayName = anonymousName) {
25
+ static EAction = FireErrorAction;
26
+ constructor(displayName = anonymousName, onErrorDefault = FireErrorAction.Throw) {
17
27
  this.displayName = displayName;
28
+ this.onErrorDefault = onErrorDefault;
18
29
  this.handle = Object.defineProperties(this.handle.bind(this), {
19
30
  once: {
20
31
  get: () => this.once.bind(this),
@@ -22,7 +33,7 @@ export class Emitter {
22
33
  wait: {
23
34
  get: () => this.wait.bind(this),
24
35
  },
25
- hasDisposed: {
36
+ disposed: {
26
37
  get: () => this._disposed,
27
38
  },
28
39
  });
@@ -31,46 +42,86 @@ export class Emitter {
31
42
  });
32
43
  }
33
44
  listenerCount() {
34
- return this._callbacks?.length ?? 0;
45
+ return this._callbacks.length;
35
46
  }
36
- fire(data) {
37
- this.requireNotExecuting();
38
- if (!this._callbacks)
39
- return;
40
- this.executing = true;
41
- try {
42
- for (const callback of this._callbacks) {
47
+ __fireThrow(data) {
48
+ for (const callback of this._callbacks) {
49
+ callback?.(data);
50
+ }
51
+ }
52
+ __fireDelay(data) {
53
+ const errors = [];
54
+ for (const callback of this._callbacks) {
55
+ try {
43
56
  callback?.(data);
44
57
  }
58
+ catch (e) {
59
+ errors.push(convertCaughtError(e));
60
+ }
45
61
  }
46
- finally {
47
- this.executing = false;
48
- if (this._something_change_during_call) {
49
- this.checkDeleted();
62
+ return errors;
63
+ }
64
+ __fireIgnore(data) {
65
+ for (const callback of this._callbacks) {
66
+ try {
67
+ callback?.(data);
50
68
  }
69
+ catch { }
51
70
  }
52
71
  }
53
- fireNoError(data) {
54
- this.requireNotExecuting();
55
- if (!this._callbacks)
56
- return;
57
- this.executing = true;
72
+ __firePrintIgnore(data) {
58
73
  for (const callback of this._callbacks) {
59
74
  try {
60
75
  callback?.(data);
61
76
  }
62
77
  catch (e) {
63
- if (e instanceof Exit) {
64
- break;
78
+ const ee = convertCaughtError(e);
79
+ prettyPrintError('error while handling event', ee);
80
+ }
81
+ }
82
+ }
83
+ /**
84
+ * @param data
85
+ * @param error {Emitter.EAction} 如何处理错误
86
+ * - Throw: 默认行为,遇到错误立即抛出,后续监听器不再被调用
87
+ * - Delay: 等所有监听器都调用完后,如果有错误则抛出AggregateError,包含所有错误
88
+ * - Ignore: 忽略所有错误,继续调用全部监听器
89
+ * - PrintIgnore: 忽略所有错误,但打印错误信息
90
+ * @returns
91
+ */
92
+ fire(data, error = this.onErrorDefault) {
93
+ this.requireNotExecuting();
94
+ if (!this._callbacks.length)
95
+ return;
96
+ this.executing = true;
97
+ try {
98
+ if (error === FireErrorAction.Throw) {
99
+ this.__fireThrow(data);
100
+ }
101
+ else if (error === FireErrorAction.Delay) {
102
+ const errors = this.__fireDelay(data);
103
+ if (errors.length) {
104
+ throw new AggregateError(errors, 'multiple errors while handling event');
65
105
  }
66
- console.error('Emitter.fireNoError: error ignored: %s', e instanceof Error ? e.stack : e);
106
+ }
107
+ else if (error === FireErrorAction.Ignore) {
108
+ this.__fireIgnore(data);
109
+ }
110
+ else if (error === FireErrorAction.PrintIgnore) {
111
+ this.__firePrintIgnore(data);
67
112
  }
68
113
  }
69
- this.executing = false;
70
- if (this._something_change_during_call) {
71
- this.checkDeleted();
114
+ finally {
115
+ this.executing = false;
116
+ if (this._something_change_during_call) {
117
+ this.checkDeleted();
118
+ }
72
119
  }
73
120
  }
121
+ /** @deprecated use fire(data, Emitter.Error.Ignore) */
122
+ fireNoError(data) {
123
+ this.fire(data, FireErrorAction.Ignore);
124
+ }
74
125
  get register() {
75
126
  return this.handle;
76
127
  }
@@ -83,20 +134,17 @@ export class Emitter {
83
134
  */
84
135
  handle(callback) {
85
136
  this.requireNotExecuting();
86
- if (!this._callbacks)
87
- this._callbacks = [];
88
- const callbacks = this._callbacks;
89
- callbacks.unshift(callback);
137
+ this._callbacks.unshift(callback);
90
138
  return functionToDisposable(nameObject(`removeListener(${objectName(callback)})`, () => {
91
- const index = callbacks.indexOf(callback);
139
+ const index = this._callbacks.indexOf(callback);
92
140
  if (index === -1)
93
141
  return;
94
142
  if (this.executing) {
95
143
  this._something_change_during_call = true;
96
- callbacks[index] = undefined;
144
+ this._callbacks[index] = undefined;
97
145
  }
98
146
  else {
99
- callbacks.splice(index, 1);
147
+ this._callbacks.splice(index, 1);
100
148
  }
101
149
  }));
102
150
  }
@@ -135,7 +183,7 @@ export class Emitter {
135
183
  }
136
184
  }
137
185
  _disposed = false;
138
- get hasDisposed() {
186
+ get disposed() {
139
187
  return this._disposed;
140
188
  }
141
189
  /**
@@ -146,14 +194,15 @@ export class Emitter {
146
194
  if (this._disposed)
147
195
  return;
148
196
  this._disposed = true;
149
- this._callbacks = undefined;
197
+ this._callbacks.length = 0;
198
+ Object.assign(this, { _callbacks: null });
150
199
  if (this._waittings) {
151
200
  for (const rej of this._waittings) {
152
201
  rej(new Error('disposed'));
153
202
  }
154
203
  }
155
204
  this._waittings = undefined;
156
- const trace = createStackTraceHolder('disposed');
205
+ const trace = createStackTraceHolder('disposed', this.dispose);
157
206
  const makeUnCallable = (name) => {
158
207
  Object.assign(this, {
159
208
  [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":"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"}
@@ -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]>;