@idlebox/common 1.4.12 → 1.4.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/array/arrayDiff.d.ts +18 -0
- package/lib/array/arrayDiff.d.ts.map +1 -0
- package/lib/array/arrayDiff.js +23 -0
- package/lib/array/arrayDiff.js.map +1 -0
- package/lib/array/arraySame.d.ts +6 -0
- package/lib/array/arraySame.d.ts.map +1 -0
- package/lib/array/arraySame.js +16 -0
- package/lib/array/arraySame.js.map +1 -0
- package/lib/array/arrayUnique.d.ts +21 -0
- package/lib/array/arrayUnique.d.ts.map +1 -0
- package/lib/array/arrayUnique.js +43 -0
- package/lib/array/arrayUnique.js.map +1 -0
- package/lib/array/normalizeArray.d.ts +6 -0
- package/lib/array/normalizeArray.d.ts.map +1 -0
- package/lib/array/normalizeArray.js +14 -0
- package/lib/array/normalizeArray.js.map +1 -0
- package/lib/array/sortAlpha.d.ts +8 -0
- package/lib/array/sortAlpha.d.ts.map +1 -0
- package/lib/array/sortAlpha.js +16 -0
- package/lib/array/sortAlpha.js.map +1 -0
- package/lib/autoindex.d.ts +184 -0
- package/lib/autoindex.d.ts.map +1 -0
- package/lib/autoindex.js +256 -0
- package/lib/autoindex.js.map +1 -0
- package/lib/date/consts.d.ts +6 -0
- package/lib/date/consts.d.ts.map +1 -0
- package/lib/date/consts.js +6 -0
- package/lib/date/consts.js.map +1 -0
- package/lib/date/isInvalid.d.ts +5 -0
- package/lib/date/isInvalid.d.ts.map +1 -0
- package/lib/date/isInvalid.js +7 -0
- package/lib/date/isInvalid.js.map +1 -0
- package/lib/date/sibling.d.ts +8 -0
- package/lib/date/sibling.d.ts.map +1 -0
- package/lib/date/sibling.js +29 -0
- package/lib/date/sibling.js.map +1 -0
- package/lib/date/timeString.d.ts +46 -0
- package/lib/date/timeString.d.ts.map +1 -0
- package/lib/date/timeString.js +126 -0
- package/lib/date/timeString.js.map +1 -0
- package/lib/date/unix.d.ts +9 -0
- package/lib/date/unix.d.ts.map +1 -0
- package/lib/date/unix.js +13 -0
- package/lib/date/unix.js.map +1 -0
- package/lib/debugging/serializable.d.ts +13 -0
- package/lib/debugging/serializable.d.ts.map +1 -0
- package/lib/debugging/serializable.js +124 -0
- package/lib/debugging/serializable.js.map +1 -0
- package/lib/debugging/tryInspect.d.ts +6 -0
- package/lib/debugging/tryInspect.d.ts.map +1 -0
- package/lib/debugging/tryInspect.js +40 -0
- package/lib/debugging/tryInspect.js.map +1 -0
- package/lib/error/convertUnknown.d.ts +2 -0
- package/lib/error/convertUnknown.d.ts.map +1 -0
- package/lib/error/convertUnknown.js +9 -0
- package/lib/error/convertUnknown.js.map +1 -0
- package/lib/error/getFrame.d.ts +6 -0
- package/lib/error/getFrame.d.ts.map +1 -0
- package/lib/error/getFrame.js +14 -0
- package/lib/error/getFrame.js.map +1 -0
- package/lib/error/known.d.ts +14 -0
- package/lib/error/known.d.ts.map +1 -0
- package/lib/error/known.js +34 -0
- package/lib/error/known.js.map +1 -0
- package/lib/error/pretty.d.ts +39 -0
- package/lib/error/pretty.d.ts.map +1 -0
- package/lib/error/pretty.js +348 -0
- package/lib/error/pretty.js.map +1 -0
- package/lib/error/pretty.vscode.d.ts +12 -0
- package/lib/error/pretty.vscode.d.ts.map +1 -0
- package/lib/error/pretty.vscode.js +95 -0
- package/lib/error/pretty.vscode.js.map +1 -0
- package/lib/error-wellknown/exit.error.d.ts +10 -0
- package/lib/error-wellknown/exit.error.d.ts.map +1 -0
- package/lib/error-wellknown/exit.error.js +14 -0
- package/lib/error-wellknown/exit.error.js.map +1 -0
- package/lib/function/asyncCallbackList.d.ts +29 -0
- package/lib/function/asyncCallbackList.d.ts.map +1 -0
- package/lib/function/asyncCallbackList.js +63 -0
- package/lib/function/asyncCallbackList.js.map +1 -0
- package/lib/function/callbackList.d.ts +34 -0
- package/lib/function/callbackList.d.ts.map +1 -0
- package/lib/function/callbackList.js +74 -0
- package/lib/function/callbackList.js.map +1 -0
- package/lib/function/delayCallbackList.d.ts +17 -0
- package/lib/function/delayCallbackList.d.ts.map +1 -0
- package/lib/function/delayCallbackList.js +36 -0
- package/lib/function/delayCallbackList.js.map +1 -0
- package/lib/function/functionName.d.ts +22 -0
- package/lib/function/functionName.d.ts.map +1 -0
- package/lib/function/functionName.js +27 -0
- package/lib/function/functionName.js.map +1 -0
- package/lib/lifecycle/dispose/bridges/rxjs.d.ts +8 -0
- package/lib/lifecycle/dispose/bridges/rxjs.d.ts.map +1 -0
- package/lib/lifecycle/dispose/bridges/rxjs.js +4 -0
- package/lib/lifecycle/dispose/bridges/rxjs.js.map +1 -0
- package/lib/lifecycle/dispose/debug.d.ts +7 -0
- package/lib/lifecycle/dispose/debug.d.ts.map +1 -0
- package/lib/lifecycle/dispose/debug.js +22 -0
- package/lib/lifecycle/dispose/debug.js.map +1 -0
- package/lib/lifecycle/dispose/disposableEvent.d.ts +17 -0
- package/lib/lifecycle/dispose/disposableEvent.d.ts.map +1 -0
- package/lib/lifecycle/dispose/disposableEvent.js +75 -0
- package/lib/lifecycle/dispose/disposableEvent.js.map +1 -0
- package/lib/lifecycle/dispose/disposedError.d.ts +11 -0
- package/lib/lifecycle/dispose/disposedError.d.ts.map +1 -0
- package/lib/lifecycle/dispose/disposedError.js +28 -0
- package/lib/lifecycle/dispose/disposedError.js.map +1 -0
- package/lib/lifecycle/dispose/lifecycle.async.d.ts +46 -0
- package/lib/lifecycle/dispose/lifecycle.async.d.ts.map +1 -0
- package/lib/lifecycle/dispose/lifecycle.async.js +110 -0
- package/lib/lifecycle/dispose/lifecycle.async.js.map +1 -0
- package/lib/lifecycle/dispose/lifecycle.d.ts +27 -0
- package/lib/lifecycle/dispose/lifecycle.d.ts.map +1 -0
- package/lib/lifecycle/dispose/lifecycle.global.d.ts +29 -0
- package/lib/lifecycle/dispose/lifecycle.global.d.ts.map +1 -0
- package/lib/lifecycle/dispose/lifecycle.global.js +57 -0
- package/lib/lifecycle/dispose/lifecycle.global.js.map +1 -0
- package/lib/lifecycle/dispose/lifecycle.js +42 -0
- package/lib/lifecycle/dispose/lifecycle.js.map +1 -0
- package/lib/lifecycle/dispose/lifecycle.sync.d.ts +45 -0
- package/lib/lifecycle/dispose/lifecycle.sync.d.ts.map +1 -0
- package/lib/lifecycle/dispose/lifecycle.sync.js +114 -0
- package/lib/lifecycle/dispose/lifecycle.sync.js.map +1 -0
- package/lib/lifecycle/event/event.d.ts +53 -0
- package/lib/lifecycle/event/event.d.ts.map +1 -0
- package/lib/lifecycle/event/event.js +137 -0
- package/lib/lifecycle/event/event.js.map +1 -0
- package/lib/lifecycle/event/memorized.d.ts +17 -0
- package/lib/lifecycle/event/memorized.d.ts.map +1 -0
- package/lib/lifecycle/event/memorized.js +34 -0
- package/lib/lifecycle/event/memorized.js.map +1 -0
- package/lib/lifecycle/promise/cancel.d.ts +10 -0
- package/lib/lifecycle/promise/cancel.d.ts.map +1 -0
- package/lib/lifecycle/promise/cancel.js +15 -0
- package/lib/lifecycle/promise/cancel.js.map +1 -0
- package/lib/lifecycle/promise/cancellationToken/driver.browser.d.ts +11 -0
- package/lib/lifecycle/promise/cancellationToken/driver.browser.d.ts.map +1 -0
- package/lib/lifecycle/promise/cancellationToken/driver.browser.js +42 -0
- package/lib/lifecycle/promise/cancellationToken/driver.browser.js.map +1 -0
- package/lib/lifecycle/promise/cancellationToken/driver.common.d.ts +11 -0
- package/lib/lifecycle/promise/cancellationToken/driver.common.d.ts.map +1 -0
- package/lib/lifecycle/promise/cancellationToken/driver.common.js +38 -0
- package/lib/lifecycle/promise/cancellationToken/driver.common.js.map +1 -0
- package/lib/lifecycle/promise/cancellationToken/source.d.ts +27 -0
- package/lib/lifecycle/promise/cancellationToken/source.d.ts.map +1 -0
- package/lib/lifecycle/promise/cancellationToken/source.js +26 -0
- package/lib/lifecycle/promise/cancellationToken/source.js.map +1 -0
- package/lib/lifecycle/promise/deferredPromise.d.ts +55 -0
- package/lib/lifecycle/promise/deferredPromise.d.ts.map +1 -0
- package/lib/lifecycle/promise/deferredPromise.js +114 -0
- package/lib/lifecycle/promise/deferredPromise.js.map +1 -0
- package/lib/lifecycle/timeout/interval.d.ts +27 -0
- package/lib/lifecycle/timeout/interval.d.ts.map +1 -0
- package/lib/lifecycle/timeout/interval.js +58 -0
- package/lib/lifecycle/timeout/interval.js.map +1 -0
- package/lib/lifecycle/timeout/timeout.d.ts +16 -0
- package/lib/lifecycle/timeout/timeout.d.ts.map +1 -0
- package/lib/lifecycle/timeout/timeout.js +53 -0
- package/lib/lifecycle/timeout/timeout.js.map +1 -0
- package/lib/lifecycle/timeout/timeoutError.d.ts +11 -0
- package/lib/lifecycle/timeout/timeoutError.d.ts.map +1 -0
- package/lib/lifecycle/timeout/timeoutError.js +16 -0
- package/lib/lifecycle/timeout/timeoutError.js.map +1 -0
- package/lib/log/logger.d.ts +46 -0
- package/lib/log/logger.d.ts.map +1 -0
- package/lib/log/logger.js +95 -0
- package/lib/log/logger.js.map +1 -0
- package/lib/mapSet/customSet.d.ts +31 -0
- package/lib/mapSet/customSet.d.ts.map +1 -0
- package/lib/mapSet/customSet.js +70 -0
- package/lib/mapSet/customSet.js.map +1 -0
- package/lib/mapSet/extendMap.d.ts +21 -0
- package/lib/mapSet/extendMap.d.ts.map +1 -0
- package/lib/mapSet/extendMap.js +26 -0
- package/lib/mapSet/extendMap.js.map +1 -0
- package/lib/misc/assertNotNull.d.ts +12 -0
- package/lib/misc/assertNotNull.d.ts.map +1 -0
- package/lib/misc/assertNotNull.js +20 -0
- package/lib/misc/assertNotNull.js.map +1 -0
- package/lib/misc/package.json.d.ts +100 -0
- package/lib/misc/package.json.d.ts.map +1 -0
- package/lib/misc/package.json.js +37 -0
- package/lib/misc/package.json.js.map +1 -0
- package/lib/object/definePublicConstant.d.ts +3 -0
- package/lib/object/definePublicConstant.d.ts.map +1 -0
- package/lib/object/definePublicConstant.js +17 -0
- package/lib/object/definePublicConstant.js.map +1 -0
- package/lib/object/initOnRead.d.ts +8 -0
- package/lib/object/initOnRead.d.ts.map +1 -0
- package/lib/object/initOnRead.js +23 -0
- package/lib/object/initOnRead.js.map +1 -0
- package/lib/object/objectPath.d.ts +6 -0
- package/lib/object/objectPath.d.ts.map +1 -0
- package/lib/object/objectPath.js +11 -0
- package/lib/object/objectPath.js.map +1 -0
- package/lib/object/objectSame.d.ts +11 -0
- package/lib/object/objectSame.d.ts.map +1 -0
- package/lib/object/objectSame.js +51 -0
- package/lib/object/objectSame.js.map +1 -0
- package/lib/path/isAbsolute.d.ts +10 -0
- package/lib/path/isAbsolute.d.ts.map +1 -0
- package/lib/path/isAbsolute.js +12 -0
- package/lib/path/isAbsolute.js.map +1 -0
- package/lib/path/normalizePath.d.ts +23 -0
- package/lib/path/normalizePath.d.ts.map +1 -0
- package/lib/path/normalizePath.js +125 -0
- package/lib/path/normalizePath.js.map +1 -0
- package/lib/path/pathArray.d.ts +54 -0
- package/lib/path/pathArray.d.ts.map +1 -0
- package/lib/path/pathArray.js +135 -0
- package/lib/path/pathArray.js.map +1 -0
- package/lib/platform/globalObject.d.ts +9 -0
- package/lib/platform/globalObject.d.ts.map +1 -0
- package/lib/platform/globalObject.js +17 -0
- package/lib/platform/globalObject.js.map +1 -0
- package/lib/platform/globalSingleton.d.ts +29 -0
- package/lib/platform/globalSingleton.d.ts.map +1 -0
- package/lib/platform/globalSingleton.js +60 -0
- package/lib/platform/globalSingleton.js.map +1 -0
- package/lib/platform/globalSymbol.d.ts +13 -0
- package/lib/platform/globalSymbol.d.ts.map +1 -0
- package/lib/platform/globalSymbol.js +34 -0
- package/lib/platform/globalSymbol.js.map +1 -0
- package/lib/platform/os.d.ts +17 -0
- package/lib/platform/os.d.ts.map +1 -0
- package/lib/platform/os.js +57 -0
- package/lib/platform/os.js.map +1 -0
- package/lib/promise/awaitIterator.d.ts +5 -0
- package/lib/promise/awaitIterator.d.ts.map +1 -0
- package/lib/promise/awaitIterator.js +22 -0
- package/lib/promise/awaitIterator.js.map +1 -0
- package/lib/promise/finishAllPromise.d.ts +13 -0
- package/lib/promise/finishAllPromise.d.ts.map +1 -0
- package/lib/promise/finishAllPromise.js +37 -0
- package/lib/promise/finishAllPromise.js.map +1 -0
- package/lib/promise/promiseBool.d.ts +6 -0
- package/lib/promise/promiseBool.d.ts.map +1 -0
- package/lib/promise/promiseBool.js +8 -0
- package/lib/promise/promiseBool.js.map +1 -0
- package/lib/promise/promiseCollection.d.ts +11 -0
- package/lib/promise/promiseCollection.d.ts.map +1 -0
- package/lib/promise/promiseCollection.js +34 -0
- package/lib/promise/promiseCollection.js.map +1 -0
- package/lib/promise/timeoutPromiseCollection.d.ts +7 -0
- package/lib/promise/timeoutPromiseCollection.d.ts.map +1 -0
- package/lib/promise/timeoutPromiseCollection.js +20 -0
- package/lib/promise/timeoutPromiseCollection.js.map +1 -0
- package/lib/reflection/classes/hookClass.d.ts +11 -0
- package/lib/reflection/classes/hookClass.d.ts.map +1 -0
- package/lib/reflection/classes/hookClass.js +34 -0
- package/lib/reflection/classes/hookClass.js.map +1 -0
- package/lib/reflection/classes/singleton.d.ts +7 -0
- package/lib/reflection/classes/singleton.d.ts.map +1 -0
- package/lib/reflection/classes/singleton.js +30 -0
- package/lib/reflection/classes/singleton.js.map +1 -0
- package/lib/reflection/methods/bind.d.ts +5 -0
- package/lib/reflection/methods/bind.d.ts.map +1 -0
- package/lib/reflection/methods/bind.js +25 -0
- package/lib/reflection/methods/bind.js.map +1 -0
- package/lib/reflection/methods/initOnRead.d.ts +7 -0
- package/lib/reflection/methods/initOnRead.d.ts.map +1 -0
- package/lib/reflection/methods/initOnRead.js +11 -0
- package/lib/reflection/methods/initOnRead.js.map +1 -0
- package/lib/reflection/methods/memorize.d.ts +8 -0
- package/lib/reflection/methods/memorize.d.ts.map +1 -0
- package/lib/reflection/methods/memorize.js +28 -0
- package/lib/reflection/methods/memorize.js.map +1 -0
- package/lib/state/StateMachine.d.ts +19 -0
- package/lib/state/StateMachine.d.ts.map +1 -0
- package/lib/state/StateMachine.js +30 -0
- package/lib/state/StateMachine.js.map +1 -0
- package/lib/string/castCase.d.ts +17 -0
- package/lib/string/castCase.d.ts.map +1 -0
- package/lib/string/castCase.js +53 -0
- package/lib/string/castCase.js.map +1 -0
- package/lib/string/concatType.generated.d.ts +29 -0
- package/lib/string/concatType.generated.d.ts.map +1 -0
- package/lib/string/concatType.generated.js +17 -0
- package/lib/string/concatType.generated.js.map +1 -0
- package/lib/string/escapeRegexp.d.ts +3 -0
- package/lib/string/escapeRegexp.d.ts.map +1 -0
- package/lib/string/escapeRegexp.js +5 -0
- package/lib/string/escapeRegexp.js.map +1 -0
- package/lib/string/pad2.d.ts +6 -0
- package/lib/string/pad2.d.ts.map +1 -0
- package/lib/string/pad2.js +11 -0
- package/lib/string/pad2.js.map +1 -0
- package/lib/string/sizeString.d.ts +13 -0
- package/lib/string/sizeString.d.ts.map +1 -0
- package/lib/string/sizeString.js +59 -0
- package/lib/string/sizeString.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/typingHelper/deep.partial.d.ts +10 -0
- package/lib/typingHelper/deep.partial.d.ts.map +1 -0
- package/lib/typingHelper/deep.partial.js +2 -0
- package/lib/typingHelper/deep.partial.js.map +1 -0
- package/lib/typingHelper/deep.readonly.d.ts +10 -0
- package/lib/typingHelper/deep.readonly.d.ts.map +1 -0
- package/lib/typingHelper/deep.readonly.js +2 -0
- package/lib/typingHelper/deep.readonly.js.map +1 -0
- package/lib/typingHelper/deep.required.d.ts +10 -0
- package/lib/typingHelper/deep.required.d.ts.map +1 -0
- package/lib/typingHelper/deep.required.js +2 -0
- package/lib/typingHelper/deep.required.js.map +1 -0
- package/lib/typingHelper/deep.writable.d.ts +10 -0
- package/lib/typingHelper/deep.writable.d.ts.map +1 -0
- package/lib/typingHelper/deep.writable.js +2 -0
- package/lib/typingHelper/deep.writable.js.map +1 -0
- package/lib/typingHelper/literal.d.ts +2 -0
- package/lib/typingHelper/literal.d.ts.map +1 -0
- package/lib/typingHelper/literal.js +2 -0
- package/lib/typingHelper/literal.js.map +1 -0
- package/package.json +3 -3
- package/src/autoindex.ts +4 -0
- package/src/string/concatType.generated.ts +9 -4
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { AsyncDisposable } from './lifecycle.async.js';
|
|
2
|
+
import type { IDisposable } from './lifecycle.js';
|
|
3
|
+
/**
|
|
4
|
+
* Add object into global disposable store, it will be dispose when call to `disposeGlobal`
|
|
5
|
+
*/
|
|
6
|
+
export declare function registerGlobalLifecycle(object: IDisposable): void;
|
|
7
|
+
/**
|
|
8
|
+
* Same as disposeGlobal, but do not throw by duplicate call
|
|
9
|
+
*
|
|
10
|
+
* Never throws when child object dispose failed
|
|
11
|
+
*/
|
|
12
|
+
export declare function ensureDisposeGlobal(): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Dispose the global disposable store
|
|
15
|
+
* this function must be manually called by user, when registerGlobalLifecycle is used
|
|
16
|
+
*
|
|
17
|
+
* @throws when call twice
|
|
18
|
+
*/
|
|
19
|
+
export declare function disposeGlobal(): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Note: sub-class should singleton
|
|
22
|
+
* @alpha
|
|
23
|
+
*/
|
|
24
|
+
export declare abstract class LifecycleObject extends AsyncDisposable {
|
|
25
|
+
/** sub-class should shutdown program in this method */
|
|
26
|
+
protected abstract done(): void;
|
|
27
|
+
dispose(): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=lifecycle.global.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.global.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/dispose/lifecycle.global.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAA4B,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAUlD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,QAE1D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,kBAMlC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,kBAU5B;AAED;;;GAGG;AACH,8BAAsB,eAAgB,SAAQ,eAAe;IAC5D,uDAAuD;IACvD,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI;IAET,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAK9C"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { globalSingletonStrong } from '../../platform/globalSingleton.js';
|
|
2
|
+
import { createSymbol } from '../../platform/globalSymbol.js';
|
|
3
|
+
import { _debug_dispose } from './debug.js';
|
|
4
|
+
import { AsyncDisposable, AsyncDisposableUnordered } from './lifecycle.async.js';
|
|
5
|
+
const symbol = createSymbol('lifecycle', 'application');
|
|
6
|
+
function create() {
|
|
7
|
+
return new AsyncDisposableUnordered('global');
|
|
8
|
+
}
|
|
9
|
+
const logger = _debug_dispose.extend('global');
|
|
10
|
+
/**
|
|
11
|
+
* Add object into global disposable store, it will be dispose when call to `disposeGlobal`
|
|
12
|
+
*/
|
|
13
|
+
export function registerGlobalLifecycle(object) {
|
|
14
|
+
globalSingletonStrong(symbol, create)._register(object);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Same as disposeGlobal, but do not throw by duplicate call
|
|
18
|
+
*
|
|
19
|
+
* Never throws when child object dispose failed
|
|
20
|
+
*/
|
|
21
|
+
export function ensureDisposeGlobal() {
|
|
22
|
+
const obj = globalSingletonStrong(symbol);
|
|
23
|
+
if (obj && !obj.hasDisposed) {
|
|
24
|
+
return Promise.resolve(obj.dispose());
|
|
25
|
+
}
|
|
26
|
+
return Promise.resolve();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Dispose the global disposable store
|
|
30
|
+
* this function must be manually called by user, when registerGlobalLifecycle is used
|
|
31
|
+
*
|
|
32
|
+
* @throws when call twice
|
|
33
|
+
*/
|
|
34
|
+
export function disposeGlobal() {
|
|
35
|
+
const obj = globalSingletonStrong(symbol);
|
|
36
|
+
if (obj?.hasDisposed) {
|
|
37
|
+
throw new Error('global already disposed.');
|
|
38
|
+
}
|
|
39
|
+
if (obj) {
|
|
40
|
+
return Promise.resolve(obj.dispose());
|
|
41
|
+
}
|
|
42
|
+
if (logger.enabled)
|
|
43
|
+
logger(`dispose global (not exists)`);
|
|
44
|
+
return Promise.resolve();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Note: sub-class should singleton
|
|
48
|
+
* @alpha
|
|
49
|
+
*/
|
|
50
|
+
export class LifecycleObject extends AsyncDisposable {
|
|
51
|
+
async dispose() {
|
|
52
|
+
return super.dispose().finally(() => {
|
|
53
|
+
this.done();
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=lifecycle.global.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.global.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/lifecycle.global.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGjF,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAExD,SAAS,MAAM;IACd,OAAO,IAAI,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAE/C;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAmB;IAC1D,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IAClC,MAAM,GAAG,GAAG,qBAAqB,CAAkB,MAAM,CAAC,CAAC;IAC3D,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa;IAC5B,MAAM,GAAG,GAAG,qBAAqB,CAAkB,MAAM,CAAC,CAAC;IAC3D,IAAI,GAAG,EAAE,WAAW,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,GAAG,EAAE,CAAC;QACT,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,CAAC,OAAO;QAAE,MAAM,CAAC,6BAA6B,CAAC,CAAC;IAC1D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,OAAgB,eAAgB,SAAQ,eAAe;IAI5C,KAAK,CAAC,OAAO;QAC5B,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert "dispose function" to disposable object
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
export function toDisposable(fn_or_obj) {
|
|
6
|
+
if (typeof fn_or_obj === 'function') {
|
|
7
|
+
return {
|
|
8
|
+
get displayName() {
|
|
9
|
+
return `toDisposable(${fn_or_obj.name || 'anonymous'})`;
|
|
10
|
+
},
|
|
11
|
+
dispose: fn_or_obj,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
else if (Symbol.dispose in fn_or_obj) {
|
|
15
|
+
const obj = fn_or_obj;
|
|
16
|
+
return {
|
|
17
|
+
get displayName() {
|
|
18
|
+
return `toDisposable[Disposable](${obj.displayName || obj.name || obj.constructor.name || 'unknown'})`;
|
|
19
|
+
},
|
|
20
|
+
dispose() {
|
|
21
|
+
fn_or_obj[Symbol.dispose]();
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
else if (Symbol.asyncDispose in fn_or_obj) {
|
|
26
|
+
const obj = fn_or_obj;
|
|
27
|
+
return {
|
|
28
|
+
get displayName() {
|
|
29
|
+
return `toDisposable[AsyncDisposable](${obj.displayName || obj.name || obj.constructor.name || 'unknown'})`;
|
|
30
|
+
},
|
|
31
|
+
dispose() {
|
|
32
|
+
return fn_or_obj[Symbol.asyncDispose]();
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
throw new TypeError('toDisposable: expected function or object with Symbol.dispose or Symbol.asyncDispose', {
|
|
38
|
+
cause: fn_or_obj,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/lifecycle.ts"],"names":[],"mappings":"AAkCA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,SAAsD;IAClF,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO;YACN,IAAI,WAAW;gBACd,OAAO,gBAAgB,SAAS,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC;YACzD,CAAC;YACD,OAAO,EAAE,SAAS;SAClB,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,SAAgB,CAAC;QAC7B,OAAO;YACN,IAAI,WAAW;gBACd,OAAO,4BAA4B,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC;YACxG,CAAC;YACD,OAAO;gBACN,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,CAAC;SACD,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,YAAY,IAAI,SAAS,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,SAAgB,CAAC;QAC7B,OAAO;YACN,IAAI,WAAW;gBACd,OAAO,iCAAiC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC;YAC7G,CAAC;YACD,OAAO;gBACN,OAAO,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACzC,CAAC;SACD,CAAC;IACH,CAAC;SAAM,CAAC;QACP,MAAM,IAAI,SAAS,CAAC,sFAAsF,EAAE;YAC3G,KAAK,EAAE,SAAS;SAChB,CAAC,CAAC;IACJ,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Emitter, type EventRegister } from '../event/event.js';
|
|
2
|
+
import type { IDisposable, IDisposableEvents } from './lifecycle.js';
|
|
3
|
+
interface _DOMDisposable {
|
|
4
|
+
[Symbol.dispose](): void;
|
|
5
|
+
}
|
|
6
|
+
export declare abstract class DisposableOnce implements IDisposable {
|
|
7
|
+
private _disposed?;
|
|
8
|
+
get hasDisposed(): boolean;
|
|
9
|
+
dispose(): void;
|
|
10
|
+
toWeb(): _DOMDisposable;
|
|
11
|
+
static fromWeb(disposable: _DOMDisposable): IDisposable;
|
|
12
|
+
[Symbol.dispose](): void;
|
|
13
|
+
protected abstract _dispose(): void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Standalone disposable class, can use as instance or base class.
|
|
17
|
+
*/
|
|
18
|
+
export declare class Disposable implements IDisposable, IDisposableEvents {
|
|
19
|
+
#private;
|
|
20
|
+
readonly displayName?: string | undefined;
|
|
21
|
+
private readonly _disposables;
|
|
22
|
+
protected readonly _onDisposeError: Emitter<Error>;
|
|
23
|
+
readonly onDisposeError: EventRegister<Error>;
|
|
24
|
+
protected readonly _onBeforeDispose: Emitter<void>;
|
|
25
|
+
readonly onBeforeDispose: EventRegister<void>;
|
|
26
|
+
private _disposed?;
|
|
27
|
+
constructor(displayName?: string | undefined);
|
|
28
|
+
get hasDisposed(): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* @throws if already disposed
|
|
31
|
+
*/
|
|
32
|
+
assertNotDisposed(): void;
|
|
33
|
+
/**
|
|
34
|
+
* register a disposable object
|
|
35
|
+
*/
|
|
36
|
+
_register<T extends IDisposable>(d: T): T;
|
|
37
|
+
_register<T extends IDisposable & IDisposableEvents>(d: T, autoDereference?: boolean): T;
|
|
38
|
+
_unregister(d: IDisposable): boolean;
|
|
39
|
+
toWeb(): _DOMDisposable;
|
|
40
|
+
static fromWeb(disposable: _DOMDisposable): IDisposable;
|
|
41
|
+
[Symbol.dispose](): void;
|
|
42
|
+
dispose(): void;
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=lifecycle.sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.sync.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/dispose/lifecycle.sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAErE,UAAU,cAAc;IACvB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;CACzB;AAED,8BAAsB,cAAe,YAAW,WAAW;IAC1D,OAAO,CAAC,SAAS,CAAC,CAAQ;IAE1B,IAAW,WAAW,YAErB;IACM,OAAO,IAAI,IAAI;IAStB,KAAK,IAAI,cAAc;IAGvB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,GAAG,WAAW;IAMvD,CAAC,MAAM,CAAC,OAAO,CAAC;IAGhB,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI;CACnC;AAED;;GAEG;AACH,qBAAa,UAAW,YAAW,WAAW,EAAE,iBAAiB;;aAapC,WAAW,CAAC,EAAE,MAAM;IAZhD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAElD,SAAS,CAAC,QAAQ,CAAC,eAAe,iBAAwB;IAC1D,SAAgB,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,CAAiC;IAErF,SAAS,CAAC,QAAQ,CAAC,gBAAgB,gBAAuB;IAC1D,SAAgB,eAAe,EAAE,aAAa,CAAC,IAAI,CAAC,CAAkC;IAEtF,OAAO,CAAC,SAAS,CAAC,CAAQ;gBAIE,WAAW,CAAC,EAAE,MAAM,YAAA;IAIhD,IAAW,WAAW,YAErB;IAED;;OAEG;IACI,iBAAiB;IAMxB;;OAEG;IACI,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;IACzC,SAAS,CAAC,CAAC,SAAS,WAAW,GAAG,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,CAAC;IAaxF,WAAW,CAAC,CAAC,EAAE,WAAW;IAKjC,KAAK,IAAI,cAAc;IAGvB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,GAAG,WAAW;IAMvD,CAAC,MAAM,CAAC,OAAO,CAAC;IAIT,OAAO,IAAI,IAAI;CAwBtB"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Emitter } from '../event/event.js';
|
|
2
|
+
import { _debug_dispose, dispose_name } from './debug.js';
|
|
3
|
+
import { DisposedError } from './disposedError.js';
|
|
4
|
+
export class DisposableOnce {
|
|
5
|
+
_disposed;
|
|
6
|
+
get hasDisposed() {
|
|
7
|
+
return !!this._disposed;
|
|
8
|
+
}
|
|
9
|
+
dispose() {
|
|
10
|
+
if (this._disposed) {
|
|
11
|
+
console.warn(new DisposedError(this, this._disposed).message);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
this._disposed = new Error('disposed');
|
|
15
|
+
this._dispose();
|
|
16
|
+
}
|
|
17
|
+
toWeb() {
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
static fromWeb(disposable) {
|
|
21
|
+
if (!('dispose' in disposable)) {
|
|
22
|
+
Object.assign(disposable, { dispose: disposable[Symbol.dispose] });
|
|
23
|
+
}
|
|
24
|
+
return disposable;
|
|
25
|
+
}
|
|
26
|
+
[Symbol.dispose]() {
|
|
27
|
+
this.dispose();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Standalone disposable class, can use as instance or base class.
|
|
32
|
+
*/
|
|
33
|
+
export class Disposable {
|
|
34
|
+
displayName;
|
|
35
|
+
_disposables = [];
|
|
36
|
+
_onDisposeError = new Emitter();
|
|
37
|
+
onDisposeError = this._onDisposeError.register;
|
|
38
|
+
_onBeforeDispose = new Emitter();
|
|
39
|
+
onBeforeDispose = this._onBeforeDispose.register;
|
|
40
|
+
_disposed;
|
|
41
|
+
/** @internal */
|
|
42
|
+
#logger;
|
|
43
|
+
constructor(displayName) {
|
|
44
|
+
this.displayName = displayName;
|
|
45
|
+
this.#logger = _debug_dispose.extend(this.displayName || 'disposable');
|
|
46
|
+
}
|
|
47
|
+
get hasDisposed() {
|
|
48
|
+
return !!this._disposed;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @throws if already disposed
|
|
52
|
+
*/
|
|
53
|
+
assertNotDisposed() {
|
|
54
|
+
if (this._disposed) {
|
|
55
|
+
throw new DisposedError(this, this._disposed);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
_register(d, autoDereference) {
|
|
59
|
+
if (this.#logger.enabled)
|
|
60
|
+
this.#logger(`register ${dispose_name(d)}`);
|
|
61
|
+
this.assertNotDisposed();
|
|
62
|
+
this._disposables.unshift(d);
|
|
63
|
+
if (autoDereference) {
|
|
64
|
+
d.onBeforeDispose(() => {
|
|
65
|
+
this._unregister(d);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return d;
|
|
69
|
+
}
|
|
70
|
+
_unregister(d) {
|
|
71
|
+
if (this.#logger.enabled)
|
|
72
|
+
this.#logger(`unregister ${dispose_name(d)}`);
|
|
73
|
+
return this._disposables.splice(this._disposables.indexOf(d), 1).length > 0;
|
|
74
|
+
}
|
|
75
|
+
toWeb() {
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
static fromWeb(disposable) {
|
|
79
|
+
if (!('dispose' in disposable)) {
|
|
80
|
+
Object.assign(disposable, { dispose: disposable[Symbol.dispose] });
|
|
81
|
+
}
|
|
82
|
+
return disposable;
|
|
83
|
+
}
|
|
84
|
+
[Symbol.dispose]() {
|
|
85
|
+
this.dispose();
|
|
86
|
+
}
|
|
87
|
+
dispose() {
|
|
88
|
+
if (this._disposed) {
|
|
89
|
+
console.warn(new DisposedError(this, this._disposed).message);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
this._onBeforeDispose.fireNoError();
|
|
93
|
+
this._disposed = new Error('disposed');
|
|
94
|
+
this._disposables.push(this._onBeforeDispose);
|
|
95
|
+
this._disposables.push(this._onDisposeError);
|
|
96
|
+
for (const item of this._disposables.values()) {
|
|
97
|
+
try {
|
|
98
|
+
if (this.#logger.enabled)
|
|
99
|
+
this.#logger(`dispose ${dispose_name(item)}`);
|
|
100
|
+
item.dispose();
|
|
101
|
+
}
|
|
102
|
+
catch (e) {
|
|
103
|
+
if (e instanceof Error) {
|
|
104
|
+
this._onDisposeError.fire(e);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
console.error('error during dispose, throw:', e);
|
|
108
|
+
this._onDisposeError.fire(new Error(`${e}`));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=lifecycle.sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.sync.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/lifecycle.sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAsB,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD,MAAM,OAAgB,cAAc;IAC3B,SAAS,CAAS;IAE1B,IAAW,WAAW;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IACzB,CAAC;IACM,OAAO;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;YAC9D,OAAO;QACR,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjB,CAAC;IAED,KAAK;QACJ,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,UAA0B;QACxC,IAAI,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,UAAoC,CAAC;IAC7C,CAAC;IACD,CAAC,MAAM,CAAC,OAAO,CAAC;QACf,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;CAED;AAED;;GAEG;AACH,MAAM,OAAO,UAAU;IAaM;IAZX,YAAY,GAAkB,EAAE,CAAC;IAE/B,eAAe,GAAG,IAAI,OAAO,EAAS,CAAC;IAC1C,cAAc,GAAyB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;IAElE,gBAAgB,GAAG,IAAI,OAAO,EAAQ,CAAC;IAC1C,eAAe,GAAwB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;IAE9E,SAAS,CAAS;IAE1B,gBAAgB;IACP,OAAO,CAAC;IACjB,YAA4B,WAAoB;QAApB,gBAAW,GAAX,WAAW,CAAS;QAC/C,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,CAAC;IACxE,CAAC;IAED,IAAW,WAAW;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,iBAAiB;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC;IAOM,SAAS,CAA4D,CAAI,EAAE,eAAyB;QAC1G,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,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7B,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;QACD,OAAO,CAAC,CAAC;IACV,CAAC;IAEM,WAAW,CAAC,CAAc;QAChC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,cAAc,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK;QACJ,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,UAA0B;QACxC,IAAI,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,UAAoC,CAAC;IAC7C,CAAC;IACD,CAAC,MAAM,CAAC,OAAO,CAAC;QACf,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;IAEM,OAAO;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;YAC9D,OAAO;QACR,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;QAEvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,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,CAAC,YAAY,KAAK,EAAE,CAAC;oBACxB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;oBACjD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9C,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;CACD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { IDisposable } from '../dispose/lifecycle.js';
|
|
2
|
+
export type EventHandler<T> = (data: T) => void;
|
|
3
|
+
export type EventRegister<T> = ((callback: EventHandler<T>) => IDisposable) & {
|
|
4
|
+
once(callback: EventHandler<T>): IDisposable;
|
|
5
|
+
};
|
|
6
|
+
type DeferFn = () => void;
|
|
7
|
+
/**
|
|
8
|
+
* 事件注册对象
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export declare class Emitter<T> implements IDisposable {
|
|
12
|
+
readonly displayName?: string | undefined;
|
|
13
|
+
protected readonly _callbacks: EventHandler<T>[];
|
|
14
|
+
private executing;
|
|
15
|
+
constructor(displayName?: string | undefined);
|
|
16
|
+
/**
|
|
17
|
+
* @returns 当前注册回调数量
|
|
18
|
+
*/
|
|
19
|
+
listenerCount(): number;
|
|
20
|
+
/**
|
|
21
|
+
* 触发本事件
|
|
22
|
+
* @param data 回调数据
|
|
23
|
+
*/
|
|
24
|
+
fire(data: T): void;
|
|
25
|
+
/**
|
|
26
|
+
* 与 `fire()`相同,但是忽略任何错误,并且即便出错也继续执行全部callback
|
|
27
|
+
*/
|
|
28
|
+
fireNoError(data: T): void;
|
|
29
|
+
get register(): EventRegister<T>;
|
|
30
|
+
/**
|
|
31
|
+
* AI喜欢用event()
|
|
32
|
+
* @alias register
|
|
33
|
+
*/
|
|
34
|
+
get event(): EventRegister<T>;
|
|
35
|
+
/**
|
|
36
|
+
* 注册本事件的新回调
|
|
37
|
+
* @param callback 回调函数
|
|
38
|
+
*/
|
|
39
|
+
handle(callback: EventHandler<T>): IDisposable;
|
|
40
|
+
/**
|
|
41
|
+
* 注册一次性回调
|
|
42
|
+
* @param callback 回调函数
|
|
43
|
+
*/
|
|
44
|
+
once(callback: EventHandler<T>): IDisposable;
|
|
45
|
+
private defers;
|
|
46
|
+
defer(fn: DeferFn): void;
|
|
47
|
+
private doDefer;
|
|
48
|
+
[Symbol.dispose](): void;
|
|
49
|
+
dispose(): void;
|
|
50
|
+
private requireNotExecuting;
|
|
51
|
+
}
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/event/event.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEhD,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,GAAG;IAC7E,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;CAC7C,CAAC;AAEF,KAAK,OAAO,GAAG,MAAM,IAAI,CAAC;AAE1B;;;GAGG;AACH,qBAAa,OAAO,CAAC,CAAC,CAAE,YAAW,WAAW;aAIjB,WAAW,CAAC,EAAE,MAAM;IAHhD,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAM;IACtD,OAAO,CAAC,SAAS,CAAS;gBAEE,WAAW,CAAC,EAAE,MAAM,YAAA;IAEhD;;OAEG;IACI,aAAa;IAIpB;;;OAGG;IACI,IAAI,CAAC,IAAI,EAAE,CAAC;IAanB;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,CAAC;IAiB1B,IAAI,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,CAI/B;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAE5B;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAyB9C;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAS5C,OAAO,CAAC,MAAM,CAAiB;IACxB,KAAK,CAAC,EAAE,EAAE,OAAO;IAGxB,OAAO,CAAC,OAAO;IAOf,CAAC,MAAM,CAAC,OAAO,CAAC;IAGhB,OAAO;IAWP,OAAO,CAAC,mBAAmB;CAK3B"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { AppExit } from '../../autoindex.js';
|
|
2
|
+
/**
|
|
3
|
+
* 事件注册对象
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export class Emitter {
|
|
7
|
+
displayName;
|
|
8
|
+
_callbacks = [];
|
|
9
|
+
executing = false;
|
|
10
|
+
constructor(displayName) {
|
|
11
|
+
this.displayName = displayName;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @returns 当前注册回调数量
|
|
15
|
+
*/
|
|
16
|
+
listenerCount() {
|
|
17
|
+
return this._callbacks.length;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 触发本事件
|
|
21
|
+
* @param data 回调数据
|
|
22
|
+
*/
|
|
23
|
+
fire(data) {
|
|
24
|
+
this.requireNotExecuting();
|
|
25
|
+
this.executing = true;
|
|
26
|
+
try {
|
|
27
|
+
for (const callback of this._callbacks) {
|
|
28
|
+
callback(data);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
finally {
|
|
32
|
+
this.doDefer();
|
|
33
|
+
this.executing = false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 与 `fire()`相同,但是忽略任何错误,并且即便出错也继续执行全部callback
|
|
38
|
+
*/
|
|
39
|
+
fireNoError(data) {
|
|
40
|
+
this.requireNotExecuting();
|
|
41
|
+
this.executing = true;
|
|
42
|
+
for (const callback of this._callbacks) {
|
|
43
|
+
try {
|
|
44
|
+
callback(data);
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
if (e instanceof AppExit) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
console.error('Error ignored: %s', e instanceof Error ? e.message : e);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
this.doDefer();
|
|
54
|
+
this.executing = false;
|
|
55
|
+
}
|
|
56
|
+
get register() {
|
|
57
|
+
return Object.assign(this.handle.bind(this), {
|
|
58
|
+
once: this.once.bind(this),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* AI喜欢用event()
|
|
63
|
+
* @alias register
|
|
64
|
+
*/
|
|
65
|
+
get event() {
|
|
66
|
+
return this.register;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* 注册本事件的新回调
|
|
70
|
+
* @param callback 回调函数
|
|
71
|
+
*/
|
|
72
|
+
handle(callback) {
|
|
73
|
+
this.requireNotExecuting();
|
|
74
|
+
let disposed = false;
|
|
75
|
+
this._callbacks.unshift((e) => {
|
|
76
|
+
if (!disposed)
|
|
77
|
+
callback(e);
|
|
78
|
+
});
|
|
79
|
+
const realDispose = () => {
|
|
80
|
+
const index = this._callbacks.indexOf(callback);
|
|
81
|
+
if (index !== -1) {
|
|
82
|
+
this._callbacks.splice(index, 1);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const dispose = () => {
|
|
86
|
+
disposed = true;
|
|
87
|
+
if (this.executing) {
|
|
88
|
+
this.defer(realDispose);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
realDispose();
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
return { dispose };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* 注册一次性回调
|
|
98
|
+
* @param callback 回调函数
|
|
99
|
+
*/
|
|
100
|
+
once(callback) {
|
|
101
|
+
this.requireNotExecuting();
|
|
102
|
+
const disposable = this.handle((data) => {
|
|
103
|
+
callback(data);
|
|
104
|
+
disposable.dispose();
|
|
105
|
+
});
|
|
106
|
+
return disposable;
|
|
107
|
+
}
|
|
108
|
+
defers = [];
|
|
109
|
+
defer(fn) {
|
|
110
|
+
this.defers.push(fn);
|
|
111
|
+
}
|
|
112
|
+
doDefer() {
|
|
113
|
+
for (const fn of this.defers) {
|
|
114
|
+
fn();
|
|
115
|
+
}
|
|
116
|
+
this.defers.length = 0;
|
|
117
|
+
}
|
|
118
|
+
[Symbol.dispose]() {
|
|
119
|
+
this.dispose();
|
|
120
|
+
}
|
|
121
|
+
dispose() {
|
|
122
|
+
this.requireNotExecuting();
|
|
123
|
+
this._callbacks.length = 0;
|
|
124
|
+
this.fireNoError =
|
|
125
|
+
this.fire =
|
|
126
|
+
this.handle =
|
|
127
|
+
() => {
|
|
128
|
+
throw new Error('Event is disposed');
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
requireNotExecuting() {
|
|
132
|
+
if (this.executing) {
|
|
133
|
+
throw new Error('conflict state, emitter is firing');
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/lifecycle/event/event.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IDisposable } from '../dispose/lifecycle.js';
|
|
2
|
+
import { Emitter, type EventHandler } from './event.js';
|
|
3
|
+
/**
|
|
4
|
+
* 会记住上次fire的内容,并在每个新的handler注册时立即调用一次的Emitter
|
|
5
|
+
* 显然,这会对fire的内容保留一个引用,可以调用forget()取消
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export declare class MemorizedEmitter<T> extends Emitter<T> {
|
|
9
|
+
private _memo?;
|
|
10
|
+
private _is_memo;
|
|
11
|
+
fire(data: T): void;
|
|
12
|
+
fireNoError(data: T): void;
|
|
13
|
+
handle(callback: EventHandler<T>): IDisposable;
|
|
14
|
+
forget(): void;
|
|
15
|
+
dispose(): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=memorized.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memorized.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/event/memorized.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD;;;;GAIG;AACH,qBAAa,gBAAgB,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,KAAK,CAAC,CAAI;IAClB,OAAO,CAAC,QAAQ,CAAS;IAET,IAAI,CAAC,IAAI,EAAE,CAAC;IAMZ,WAAW,CAAC,IAAI,EAAE,CAAC;IAMnB,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAKvD,MAAM;IAKJ,OAAO,IAAI,IAAI;CAIxB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Emitter } from './event.js';
|
|
2
|
+
/**
|
|
3
|
+
* 会记住上次fire的内容,并在每个新的handler注册时立即调用一次的Emitter
|
|
4
|
+
* 显然,这会对fire的内容保留一个引用,可以调用forget()取消
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export class MemorizedEmitter extends Emitter {
|
|
8
|
+
_memo;
|
|
9
|
+
_is_memo = false;
|
|
10
|
+
fire(data) {
|
|
11
|
+
this._memo = data;
|
|
12
|
+
this._is_memo = true;
|
|
13
|
+
return super.fire(data);
|
|
14
|
+
}
|
|
15
|
+
fireNoError(data) {
|
|
16
|
+
this._memo = data;
|
|
17
|
+
this._is_memo = true;
|
|
18
|
+
return super.fireNoError(data);
|
|
19
|
+
}
|
|
20
|
+
handle(callback) {
|
|
21
|
+
if (this._is_memo)
|
|
22
|
+
callback(this._memo);
|
|
23
|
+
return super.handle(callback);
|
|
24
|
+
}
|
|
25
|
+
forget() {
|
|
26
|
+
this._memo = undefined;
|
|
27
|
+
this._is_memo = false;
|
|
28
|
+
}
|
|
29
|
+
dispose() {
|
|
30
|
+
this.forget();
|
|
31
|
+
super.dispose();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=memorized.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memorized.js","sourceRoot":"","sources":["../../../src/lifecycle/event/memorized.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAqB,MAAM,YAAY,CAAC;AAExD;;;;GAIG;AACH,MAAM,OAAO,gBAAoB,SAAQ,OAAU;IAC1C,KAAK,CAAK;IACV,QAAQ,GAAG,KAAK,CAAC;IAET,IAAI,CAAC,IAAO;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAEe,WAAW,CAAC,IAAO;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEe,MAAM,CAAC,QAAyB;QAC/C,IAAI,IAAI,CAAC,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM;QACZ,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAEQ,OAAO;QACf,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,KAAK,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancel.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/promise/cancel.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qBAAa,aAAc,SAAQ,KAAK;;CAIvC;AAED,cAAc;AACd,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAEnD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const canceledName = 'Canceled';
|
|
2
|
+
/**
|
|
3
|
+
* Error when cancel() is called
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export class CanceledError extends Error {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(canceledName);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
/** @public */
|
|
12
|
+
export function isCanceledError(error) {
|
|
13
|
+
return error instanceof CanceledError;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=cancel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../../src/lifecycle/promise/cancel.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,UAAU,CAAC;AAEhC;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACvC;QACC,KAAK,CAAC,YAAY,CAAC,CAAC;IACrB,CAAC;CACD;AAED,cAAc;AACd,MAAM,UAAU,eAAe,CAAC,KAAU;IACzC,OAAO,KAAK,YAAY,aAAa,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CancellationDriver, __CancellationToken } from './source.js';
|
|
2
|
+
/** @internal */
|
|
3
|
+
export declare class CancellationDriverBrowser implements CancellationDriver {
|
|
4
|
+
private readonly controller;
|
|
5
|
+
readonly token: __CancellationToken;
|
|
6
|
+
private readonly disposeList;
|
|
7
|
+
constructor();
|
|
8
|
+
cancel(): void;
|
|
9
|
+
dispose(): void;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=driver.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver.browser.d.ts","sourceRoot":"","sources":["../../../../src/lifecycle/promise/cancellationToken/driver.browser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAK3E,gBAAgB;AAChB,qBAAa,yBAA0B,YAAW,kBAAkB;IACnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,SAAgB,KAAK,EAAE,mBAAmB,CAAC;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;;IA4BlD,MAAM;IASN,OAAO;CAMP"}
|