@idlebox/common 1.4.19 → 1.4.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/array/{arrayDiff.d.ts → diff.d.ts} +1 -1
- package/lib/array/diff.d.ts.map +1 -0
- package/lib/array/{arrayDiff.js → diff.js} +1 -1
- package/lib/array/diff.js.map +1 -0
- package/lib/array/{arraySame.d.ts → is-same.d.ts} +1 -1
- package/lib/array/is-same.d.ts.map +1 -0
- package/lib/array/{arraySame.js → is-same.js} +1 -1
- package/lib/array/is-same.js.map +1 -0
- package/lib/array/{normalizeArray.d.ts → normalize.d.ts} +1 -1
- package/lib/array/normalize.d.ts.map +1 -0
- package/lib/array/{normalizeArray.js → normalize.js} +1 -1
- package/lib/array/normalize.js.map +1 -0
- package/lib/array/{sortAlpha.d.ts → sort-alpha.d.ts} +1 -1
- package/lib/array/sort-alpha.d.ts.map +1 -0
- package/lib/array/{sortAlpha.js → sort-alpha.js} +1 -1
- package/lib/array/sort-alpha.js.map +1 -0
- package/lib/array/{arrayUnique.d.ts → unique.d.ts} +1 -1
- package/lib/array/unique.d.ts.map +1 -0
- package/lib/array/{arrayUnique.js → unique.js} +1 -1
- package/lib/array/unique.js.map +1 -0
- package/lib/autoindex.d.ts +148 -135
- package/lib/autoindex.d.ts.map +1 -1
- package/lib/autoindex.js +177 -153
- package/lib/autoindex.js.map +1 -1
- package/lib/date/{isInvalid.d.ts → is-invalid.d.ts} +1 -1
- package/lib/date/is-invalid.d.ts.map +1 -0
- package/lib/date/{isInvalid.js → is-invalid.js} +1 -1
- package/lib/date/is-invalid.js.map +1 -0
- package/lib/date/{timeString.d.ts → to-string.d.ts} +5 -5
- package/lib/date/to-string.d.ts.map +1 -0
- package/lib/date/{timeString.js → to-string.js} +24 -25
- package/lib/date/to-string.js.map +1 -0
- package/lib/debugging/{tryInspect.d.ts → inspect.d.ts} +2 -2
- package/lib/debugging/inspect.d.ts.map +1 -0
- package/lib/debugging/{tryInspect.js → inspect.js} +1 -1
- package/lib/debugging/inspect.js.map +1 -0
- package/lib/debugging/object-with-name.d.ts +38 -0
- package/lib/debugging/object-with-name.d.ts.map +1 -0
- package/lib/debugging/object-with-name.js +41 -0
- package/lib/debugging/object-with-name.js.map +1 -0
- package/lib/debugging/serializable.js +1 -1
- package/lib/debugging/serializable.js.map +1 -1
- package/lib/error/convert-unknown.d.ts +2 -0
- package/lib/error/convert-unknown.d.ts.map +1 -0
- package/lib/error/convert-unknown.js +9 -0
- package/lib/error/convert-unknown.js.map +1 -0
- package/lib/error/{getFrame.d.ts → get-frame.d.ts} +2 -2
- package/lib/error/get-frame.d.ts.map +1 -0
- package/lib/error/{getFrame.js → get-frame.js} +1 -1
- package/lib/error/get-frame.js.map +1 -0
- package/lib/error/{pretty.d.ts → pretty.nodejs.d.ts} +2 -1
- package/lib/error/pretty.nodejs.d.ts.map +1 -0
- package/lib/error/{pretty.js → pretty.nodejs.js} +3 -3
- package/lib/error/pretty.nodejs.js.map +1 -0
- package/lib/error/{stackTrace.d.ts → stack-trace.d.ts} +1 -1
- package/lib/error/stack-trace.d.ts.map +1 -0
- package/lib/error/{stackTrace.js → stack-trace.js} +1 -1
- package/lib/error/stack-trace.js.map +1 -0
- package/lib/function/{asyncCallbackList.d.ts → callback-list.async.d.ts} +3 -3
- package/lib/function/callback-list.async.d.ts.map +1 -0
- package/lib/function/{asyncCallbackList.js → callback-list.async.js} +3 -7
- package/lib/function/callback-list.async.js.map +1 -0
- package/lib/function/{callbackList.d.ts → callback-list.d.ts} +1 -1
- package/lib/function/callback-list.d.ts.map +1 -0
- package/lib/function/callback-list.delay.d.ts +15 -0
- package/lib/function/callback-list.delay.d.ts.map +1 -0
- package/lib/function/callback-list.delay.js +22 -0
- package/lib/function/callback-list.delay.js.map +1 -0
- package/lib/function/{callbackList.js → callback-list.js} +2 -2
- package/lib/function/callback-list.js.map +1 -0
- package/lib/function/noop.d.ts +2 -0
- package/lib/function/noop.d.ts.map +1 -0
- package/lib/function/noop.js +2 -0
- package/lib/function/noop.js.map +1 -0
- package/lib/legacy/rename.d.ts +13 -0
- package/lib/legacy/rename.d.ts.map +1 -0
- package/lib/legacy/rename.js +13 -0
- package/lib/legacy/rename.js.map +1 -0
- package/lib/lifecycle/cancellation/driver.browser.d.ts.map +1 -0
- package/lib/lifecycle/cancellation/driver.browser.js.map +1 -0
- package/lib/lifecycle/cancellation/driver.common.d.ts.map +1 -0
- package/lib/lifecycle/{promise/cancellationToken → cancellation}/driver.common.js +1 -1
- package/lib/lifecycle/cancellation/driver.common.js.map +1 -0
- package/lib/lifecycle/{promise/cancellationToken → cancellation}/source.d.ts +3 -3
- package/lib/lifecycle/cancellation/source.d.ts.map +1 -0
- package/lib/lifecycle/{promise/cancellationToken → cancellation}/source.js +2 -2
- package/lib/lifecycle/cancellation/source.js.map +1 -0
- package/lib/lifecycle/dispose/async-disposable.d.ts +17 -0
- package/lib/lifecycle/dispose/async-disposable.d.ts.map +1 -0
- package/lib/lifecycle/dispose/async-disposable.js +42 -0
- package/lib/lifecycle/dispose/async-disposable.js.map +1 -0
- package/lib/lifecycle/dispose/bridges/function.d.ts +17 -0
- package/lib/lifecycle/dispose/bridges/function.d.ts.map +1 -0
- package/lib/lifecycle/dispose/bridges/function.js +29 -0
- package/lib/lifecycle/dispose/bridges/function.js.map +1 -0
- package/lib/lifecycle/dispose/bridges/native.d.ts +10 -0
- package/lib/lifecycle/dispose/bridges/native.d.ts.map +1 -0
- package/lib/lifecycle/dispose/bridges/native.js +13 -0
- package/lib/lifecycle/dispose/bridges/native.js.map +1 -0
- package/lib/lifecycle/dispose/bridges/streams.d.ts +21 -0
- package/lib/lifecycle/dispose/bridges/streams.d.ts.map +1 -0
- package/lib/lifecycle/dispose/bridges/streams.js +60 -0
- package/lib/lifecycle/dispose/bridges/streams.js.map +1 -0
- package/lib/lifecycle/dispose/debug.js +17 -3
- package/lib/lifecycle/dispose/debug.js.map +1 -1
- package/lib/lifecycle/dispose/disposable.d.ts +22 -0
- package/lib/lifecycle/dispose/disposable.d.ts.map +1 -0
- package/lib/lifecycle/dispose/disposable.js +120 -0
- package/lib/lifecycle/dispose/disposable.js.map +1 -0
- package/lib/lifecycle/dispose/disposableEvent.d.ts +9 -14
- package/lib/lifecycle/dispose/disposableEvent.d.ts.map +1 -1
- package/lib/lifecycle/dispose/disposableEvent.js +14 -64
- package/lib/lifecycle/dispose/disposableEvent.js.map +1 -1
- package/lib/lifecycle/dispose/disposedError.d.ts +9 -4
- package/lib/lifecycle/dispose/disposedError.d.ts.map +1 -1
- package/lib/lifecycle/dispose/disposedError.js +28 -13
- package/lib/lifecycle/dispose/disposedError.js.map +1 -1
- package/lib/lifecycle/dispose/sync-disposable.d.ts +21 -0
- package/lib/lifecycle/dispose/sync-disposable.d.ts.map +1 -0
- package/lib/lifecycle/dispose/sync-disposable.js +52 -0
- package/lib/lifecycle/dispose/sync-disposable.js.map +1 -0
- package/lib/lifecycle/event/event.d.ts +18 -33
- package/lib/lifecycle/event/event.d.ts.map +1 -1
- package/lib/lifecycle/event/event.js +75 -64
- package/lib/lifecycle/event/event.js.map +1 -1
- package/lib/lifecycle/event/memorized.d.ts +4 -3
- package/lib/lifecycle/event/memorized.d.ts.map +1 -1
- package/lib/lifecycle/event/memorized.js +9 -10
- package/lib/lifecycle/event/memorized.js.map +1 -1
- package/lib/lifecycle/event/type.d.ts +47 -0
- package/lib/lifecycle/event/type.d.ts.map +1 -0
- package/lib/lifecycle/event/type.js +2 -0
- package/lib/lifecycle/event/type.js.map +1 -0
- package/lib/lifecycle/{dispose/lifecycle.global.d.ts → global/global-lifecycle.d.ts} +3 -15
- package/lib/lifecycle/global/global-lifecycle.d.ts.map +1 -0
- package/lib/lifecycle/{dispose/lifecycle.global.js → global/global-lifecycle.js} +8 -21
- package/lib/lifecycle/global/global-lifecycle.js.map +1 -0
- package/lib/log/logger.js +1 -1
- package/lib/log/logger.js.map +1 -1
- package/lib/{mapSet/customSet.d.ts → map-and-set/custom-set.d.ts} +4 -8
- package/lib/map-and-set/custom-set.d.ts.map +1 -0
- package/lib/{mapSet/customSet.js → map-and-set/custom-set.js} +6 -20
- package/lib/map-and-set/custom-set.js.map +1 -0
- package/lib/map-and-set/required-map.d.ts +28 -0
- package/lib/map-and-set/required-map.d.ts.map +1 -0
- package/lib/map-and-set/required-map.js +42 -0
- package/lib/map-and-set/required-map.js.map +1 -0
- package/lib/object/objectSame.js +1 -1
- package/lib/object/objectSame.js.map +1 -1
- package/lib/path/pathArray.js +1 -1
- package/lib/path/pathArray.js.map +1 -1
- package/lib/path/pathCalc.d.ts +10 -0
- package/lib/path/pathCalc.d.ts.map +1 -0
- package/lib/path/pathCalc.js +17 -0
- package/lib/path/pathCalc.js.map +1 -0
- package/lib/platform/compile.d.ts +7 -0
- package/lib/platform/compile.d.ts.map +1 -0
- package/lib/platform/compile.js +2 -0
- package/lib/platform/compile.js.map +1 -0
- package/lib/platform/globalSingleton.js +1 -1
- package/lib/platform/globalSingleton.js.map +1 -1
- package/lib/platform/os.d.ts.map +1 -1
- package/lib/platform/os.js +1 -1
- package/lib/platform/os.js.map +1 -1
- package/lib/promise/{awaitIterator.d.ts → await-iterator.d.ts} +1 -1
- package/lib/promise/await-iterator.d.ts.map +1 -0
- package/lib/promise/{awaitIterator.js → await-iterator.js} +1 -1
- package/lib/promise/await-iterator.js.map +1 -0
- package/lib/{lifecycle/promise/deferredPromise.d.ts → promise/deferred-promise.d.ts} +14 -6
- package/lib/promise/deferred-promise.d.ts.map +1 -0
- package/lib/{lifecycle/promise/deferredPromise.js → promise/deferred-promise.js} +57 -16
- package/lib/promise/deferred-promise.js.map +1 -0
- package/lib/promise/{promiseBool.d.ts → promise-bool.d.ts} +1 -1
- package/lib/promise/promise-bool.d.ts.map +1 -0
- package/lib/promise/{promiseBool.js → promise-bool.js} +1 -1
- package/lib/promise/promise-bool.js.map +1 -0
- package/lib/promise/{promiseCollection.d.ts → promise-list.d.ts} +3 -3
- package/lib/promise/promise-list.d.ts.map +1 -0
- package/lib/promise/{promiseCollection.js → promise-list.js} +3 -3
- package/lib/promise/promise-list.js.map +1 -0
- package/lib/re-export.d.ts +2 -0
- package/lib/re-export.d.ts.map +1 -0
- package/lib/re-export.js +2 -0
- package/lib/re-export.js.map +1 -0
- package/lib/reflection/classes/pointer.d.ts +5 -0
- package/lib/reflection/classes/pointer.d.ts.map +1 -0
- package/lib/reflection/classes/pointer.js +49 -0
- package/lib/reflection/classes/pointer.js.map +1 -0
- package/lib/reflection/classes/singleton.d.ts +10 -2
- package/lib/reflection/classes/singleton.d.ts.map +1 -1
- package/lib/reflection/classes/singleton.js +29 -21
- package/lib/reflection/classes/singleton.js.map +1 -1
- package/lib/reflection/methods/bind.d.ts +1 -4
- package/lib/reflection/methods/bind.d.ts.map +1 -1
- package/lib/reflection/methods/bind.js +17 -23
- package/lib/reflection/methods/bind.js.map +1 -1
- package/lib/reflection/methods/memorize.d.ts +7 -4
- package/lib/reflection/methods/memorize.d.ts.map +1 -1
- package/lib/reflection/methods/memorize.js +27 -23
- package/lib/reflection/methods/memorize.js.map +1 -1
- package/lib/schedule/extendable-timer.d.ts +16 -0
- package/lib/schedule/extendable-timer.d.ts.map +1 -0
- package/lib/schedule/extendable-timer.js +45 -0
- package/lib/schedule/extendable-timer.js.map +1 -0
- package/lib/{lifecycle/timeout → schedule}/interval.d.ts +3 -3
- package/lib/schedule/interval.d.ts.map +1 -0
- package/lib/{lifecycle/timeout → schedule}/interval.js +3 -3
- package/lib/schedule/interval.js.map +1 -0
- package/lib/schedule/local-type.d.ts +3 -0
- package/lib/schedule/local-type.d.ts.map +1 -0
- package/lib/schedule/local-type.js +2 -0
- package/lib/schedule/local-type.js.map +1 -0
- package/lib/schedule/scheduler.d.ts +4 -0
- package/lib/schedule/scheduler.d.ts.map +1 -0
- package/lib/schedule/scheduler.js +3 -0
- package/lib/schedule/scheduler.js.map +1 -0
- package/lib/{lifecycle/timeout → schedule}/timeout.d.ts +2 -3
- package/lib/schedule/timeout.d.ts.map +1 -0
- package/lib/{lifecycle/timeout → schedule}/timeout.js +5 -11
- package/lib/schedule/timeout.js.map +1 -0
- package/lib/state/{StateMachine.d.ts → simple-state-machine.d.ts} +1 -1
- package/lib/state/simple-state-machine.d.ts.map +1 -0
- package/lib/state/{StateMachine.js → simple-state-machine.js} +1 -1
- package/lib/state/simple-state-machine.js.map +1 -0
- package/lib/string/{castCase.d.ts → case-cast.d.ts} +1 -1
- package/lib/string/case-cast.d.ts.map +1 -0
- package/lib/string/{castCase.js → case-cast.js} +1 -1
- package/lib/string/case-cast.js.map +1 -0
- package/lib/string/{escapeRegexp.d.ts → escape-regexp.d.ts} +1 -1
- package/lib/string/escape-regexp.d.ts.map +1 -0
- package/lib/string/{escapeRegexp.js → escape-regexp.js} +1 -1
- package/lib/string/escape-regexp.js.map +1 -0
- package/lib/string/{sizeString.d.ts → human-bytes.d.ts} +1 -1
- package/lib/string/human-bytes.d.ts.map +1 -0
- package/lib/string/{sizeString.js → human-bytes.js} +1 -1
- package/lib/string/human-bytes.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/typing-helper/callback.d.ts +5 -0
- package/lib/typing-helper/callback.d.ts.map +1 -0
- package/lib/typing-helper/callback.js +2 -0
- package/lib/typing-helper/callback.js.map +1 -0
- package/lib/typing-helper/deep.partial.d.ts.map +1 -0
- package/lib/typing-helper/deep.partial.js.map +1 -0
- package/lib/typing-helper/deep.readonly.d.ts.map +1 -0
- package/lib/typing-helper/deep.readonly.js.map +1 -0
- package/lib/typing-helper/deep.required.d.ts.map +1 -0
- package/lib/typing-helper/deep.required.js.map +1 -0
- package/lib/typing-helper/deep.writable.d.ts.map +1 -0
- package/lib/typing-helper/deep.writable.js.map +1 -0
- package/lib/typing-helper/literal.d.ts.map +1 -0
- package/lib/{typingHelper → typing-helper}/literal.js.map +1 -1
- package/package.json +8 -7
- package/src/autoindex.ts +239 -213
- package/src/date/{timeString.ts → to-string.ts} +28 -29
- package/src/debugging/{tryInspect.ts → inspect.ts} +1 -1
- package/src/debugging/object-with-name.ts +64 -0
- package/src/debugging/serializable.ts +1 -1
- package/src/error/convert-unknown.ts +9 -0
- package/src/error/{getFrame.ts → get-frame.ts} +1 -1
- package/src/error/{pretty.ts → pretty.nodejs.ts} +3 -2
- package/src/function/{asyncCallbackList.ts → callback-list.async.ts} +2 -7
- package/src/function/callback-list.delay.ts +29 -0
- package/src/function/{callbackList.ts → callback-list.ts} +1 -1
- package/src/function/noop.ts +1 -0
- package/src/global.d.ts +10 -0
- package/src/legacy/rename.ts +15 -0
- package/src/lifecycle/{promise/cancellationToken → cancellation}/driver.browser.ts +3 -4
- package/src/lifecycle/{promise/cancellationToken → cancellation}/driver.common.ts +3 -2
- package/src/lifecycle/{promise/cancellationToken → cancellation}/source.ts +4 -4
- package/src/lifecycle/dispose/async-disposable.ts +41 -0
- package/src/lifecycle/dispose/bridges/function.ts +31 -0
- package/src/lifecycle/dispose/bridges/native.ts +23 -0
- package/src/lifecycle/dispose/bridges/streams.ts +70 -0
- package/src/lifecycle/dispose/debug.ts +22 -4
- package/src/lifecycle/dispose/disposable.ts +162 -0
- package/src/lifecycle/dispose/disposableEvent.ts +20 -86
- package/src/lifecycle/dispose/disposedError.ts +36 -19
- package/src/lifecycle/dispose/sync-disposable.ts +53 -0
- package/src/lifecycle/event/event.ts +83 -76
- package/src/lifecycle/event/memorized.ts +13 -12
- package/src/lifecycle/event/type.ts +55 -0
- package/src/lifecycle/global/global-lifecycle.ts +49 -0
- package/src/log/logger.ts +1 -1
- package/src/{mapSet/customSet.ts → map-and-set/custom-set.ts} +7 -26
- package/src/{mapSet/extendMap.ts → map-and-set/required-map.ts} +21 -6
- package/src/object/objectSame.ts +1 -1
- package/src/path/pathArray.ts +1 -1
- package/src/path/pathCalc.ts +18 -0
- package/src/platform/compile.ts +6 -0
- package/src/platform/globalSingleton.ts +1 -1
- package/src/platform/os.ts +1 -1
- package/src/{lifecycle/promise/deferredPromise.ts → promise/deferred-promise.ts} +68 -27
- package/src/promise/{promiseCollection.ts → promise-list.ts} +2 -2
- package/src/re-export.ts +1 -0
- package/src/reflection/classes/pointer.ts +54 -0
- package/src/reflection/classes/singleton.ts +30 -21
- package/src/reflection/methods/bind.ts +15 -23
- package/src/reflection/methods/memorize.ts +30 -23
- package/src/schedule/extendable-timer.ts +49 -0
- package/src/{lifecycle/timeout → schedule}/interval.ts +4 -4
- package/src/schedule/local-type.ts +2 -0
- package/src/schedule/scheduler.ts +8 -0
- package/src/{lifecycle/timeout → schedule}/timeout.ts +7 -13
- package/src/state/{StateMachine.ts → simple-state-machine.ts} +3 -4
- package/src/tsconfig.json +3 -1
- package/src/typing-helper/callback.ts +4 -0
- package/lib/array/arrayDiff.d.ts.map +0 -1
- package/lib/array/arrayDiff.js.map +0 -1
- package/lib/array/arraySame.d.ts.map +0 -1
- package/lib/array/arraySame.js.map +0 -1
- package/lib/array/arrayUnique.d.ts.map +0 -1
- package/lib/array/arrayUnique.js.map +0 -1
- package/lib/array/normalizeArray.d.ts.map +0 -1
- package/lib/array/normalizeArray.js.map +0 -1
- package/lib/array/sortAlpha.d.ts.map +0 -1
- package/lib/array/sortAlpha.js.map +0 -1
- package/lib/date/isInvalid.d.ts.map +0 -1
- package/lib/date/isInvalid.js.map +0 -1
- package/lib/date/timeString.d.ts.map +0 -1
- package/lib/date/timeString.js.map +0 -1
- package/lib/debugging/tryInspect.d.ts.map +0 -1
- package/lib/debugging/tryInspect.js.map +0 -1
- package/lib/error/convertUnknown.d.ts +0 -2
- package/lib/error/convertUnknown.d.ts.map +0 -1
- package/lib/error/convertUnknown.js +0 -9
- package/lib/error/convertUnknown.js.map +0 -1
- package/lib/error/getFrame.d.ts.map +0 -1
- package/lib/error/getFrame.js.map +0 -1
- package/lib/error/pretty.d.ts.map +0 -1
- package/lib/error/pretty.js.map +0 -1
- package/lib/error/stackTrace.d.ts.map +0 -1
- package/lib/error/stackTrace.js.map +0 -1
- package/lib/error-wellknown/exit.error.d.ts +0 -13
- package/lib/error-wellknown/exit.error.d.ts.map +0 -1
- package/lib/error-wellknown/exit.error.js +0 -20
- package/lib/error-wellknown/exit.error.js.map +0 -1
- package/lib/function/asyncCallbackList.d.ts.map +0 -1
- package/lib/function/asyncCallbackList.js.map +0 -1
- package/lib/function/callbackList.d.ts.map +0 -1
- package/lib/function/callbackList.js.map +0 -1
- package/lib/function/delayCallbackList.d.ts +0 -17
- package/lib/function/delayCallbackList.d.ts.map +0 -1
- package/lib/function/delayCallbackList.js +0 -36
- package/lib/function/delayCallbackList.js.map +0 -1
- package/lib/function/functionName.d.ts +0 -26
- package/lib/function/functionName.d.ts.map +0 -1
- package/lib/function/functionName.js +0 -27
- package/lib/function/functionName.js.map +0 -1
- package/lib/lifecycle/dispose/bridges/rxjs.d.ts +0 -8
- package/lib/lifecycle/dispose/bridges/rxjs.d.ts.map +0 -1
- package/lib/lifecycle/dispose/bridges/rxjs.js +0 -4
- package/lib/lifecycle/dispose/bridges/rxjs.js.map +0 -1
- package/lib/lifecycle/dispose/lifecycle.async.d.ts +0 -37
- package/lib/lifecycle/dispose/lifecycle.async.d.ts.map +0 -1
- package/lib/lifecycle/dispose/lifecycle.async.js +0 -111
- package/lib/lifecycle/dispose/lifecycle.async.js.map +0 -1
- package/lib/lifecycle/dispose/lifecycle.d.ts +0 -32
- package/lib/lifecycle/dispose/lifecycle.d.ts.map +0 -1
- package/lib/lifecycle/dispose/lifecycle.global.d.ts.map +0 -1
- package/lib/lifecycle/dispose/lifecycle.global.js.map +0 -1
- package/lib/lifecycle/dispose/lifecycle.js +0 -67
- package/lib/lifecycle/dispose/lifecycle.js.map +0 -1
- package/lib/lifecycle/dispose/lifecycle.sync.d.ts +0 -45
- package/lib/lifecycle/dispose/lifecycle.sync.d.ts.map +0 -1
- package/lib/lifecycle/dispose/lifecycle.sync.js +0 -115
- package/lib/lifecycle/dispose/lifecycle.sync.js.map +0 -1
- package/lib/lifecycle/promise/cancel.d.ts +0 -10
- package/lib/lifecycle/promise/cancel.d.ts.map +0 -1
- package/lib/lifecycle/promise/cancel.js +0 -15
- package/lib/lifecycle/promise/cancel.js.map +0 -1
- package/lib/lifecycle/promise/cancellationToken/driver.browser.d.ts.map +0 -1
- package/lib/lifecycle/promise/cancellationToken/driver.browser.js.map +0 -1
- package/lib/lifecycle/promise/cancellationToken/driver.common.d.ts.map +0 -1
- package/lib/lifecycle/promise/cancellationToken/driver.common.js.map +0 -1
- package/lib/lifecycle/promise/cancellationToken/source.d.ts.map +0 -1
- package/lib/lifecycle/promise/cancellationToken/source.js.map +0 -1
- package/lib/lifecycle/promise/deferredPromise.d.ts.map +0 -1
- package/lib/lifecycle/promise/deferredPromise.js.map +0 -1
- package/lib/lifecycle/timeout/interval.d.ts.map +0 -1
- package/lib/lifecycle/timeout/interval.js.map +0 -1
- package/lib/lifecycle/timeout/timeout.d.ts.map +0 -1
- package/lib/lifecycle/timeout/timeout.js.map +0 -1
- package/lib/lifecycle/timeout/timeoutError.d.ts +0 -11
- package/lib/lifecycle/timeout/timeoutError.d.ts.map +0 -1
- package/lib/lifecycle/timeout/timeoutError.js +0 -16
- package/lib/lifecycle/timeout/timeoutError.js.map +0 -1
- package/lib/mapSet/customSet.d.ts.map +0 -1
- package/lib/mapSet/customSet.js.map +0 -1
- package/lib/mapSet/extendMap.d.ts +0 -21
- package/lib/mapSet/extendMap.d.ts.map +0 -1
- package/lib/mapSet/extendMap.js +0 -26
- package/lib/mapSet/extendMap.js.map +0 -1
- package/lib/promise/awaitIterator.d.ts.map +0 -1
- package/lib/promise/awaitIterator.js.map +0 -1
- package/lib/promise/finishAllPromise.d.ts +0 -13
- package/lib/promise/finishAllPromise.d.ts.map +0 -1
- package/lib/promise/finishAllPromise.js +0 -37
- package/lib/promise/finishAllPromise.js.map +0 -1
- package/lib/promise/promiseBool.d.ts.map +0 -1
- package/lib/promise/promiseBool.js.map +0 -1
- package/lib/promise/promiseCollection.d.ts.map +0 -1
- package/lib/promise/promiseCollection.js.map +0 -1
- package/lib/promise/timeoutPromiseCollection.d.ts +0 -7
- package/lib/promise/timeoutPromiseCollection.d.ts.map +0 -1
- package/lib/promise/timeoutPromiseCollection.js +0 -20
- package/lib/promise/timeoutPromiseCollection.js.map +0 -1
- package/lib/reflection/classes/hookClass.d.ts +0 -11
- package/lib/reflection/classes/hookClass.d.ts.map +0 -1
- package/lib/reflection/classes/hookClass.js +0 -34
- package/lib/reflection/classes/hookClass.js.map +0 -1
- package/lib/reflection/methods/initOnRead.d.ts +0 -7
- package/lib/reflection/methods/initOnRead.d.ts.map +0 -1
- package/lib/reflection/methods/initOnRead.js +0 -11
- package/lib/reflection/methods/initOnRead.js.map +0 -1
- package/lib/state/StateMachine.d.ts.map +0 -1
- package/lib/state/StateMachine.js.map +0 -1
- package/lib/string/castCase.d.ts.map +0 -1
- package/lib/string/castCase.js.map +0 -1
- package/lib/string/escapeRegexp.d.ts.map +0 -1
- package/lib/string/escapeRegexp.js.map +0 -1
- package/lib/string/sizeString.d.ts.map +0 -1
- package/lib/string/sizeString.js.map +0 -1
- package/lib/typingHelper/deep.partial.d.ts.map +0 -1
- package/lib/typingHelper/deep.partial.js.map +0 -1
- package/lib/typingHelper/deep.readonly.d.ts.map +0 -1
- package/lib/typingHelper/deep.readonly.js.map +0 -1
- package/lib/typingHelper/deep.required.d.ts.map +0 -1
- package/lib/typingHelper/deep.required.js.map +0 -1
- package/lib/typingHelper/deep.writable.d.ts.map +0 -1
- package/lib/typingHelper/deep.writable.js.map +0 -1
- package/lib/typingHelper/literal.d.ts.map +0 -1
- package/src/error/convertUnknown.ts +0 -9
- package/src/error-wellknown/exit.error.ts +0 -21
- package/src/function/delayCallbackList.ts +0 -45
- package/src/function/functionName.ts +0 -44
- package/src/lifecycle/dispose/bridges/rxjs.ts +0 -6
- package/src/lifecycle/dispose/lifecycle.async.ts +0 -134
- package/src/lifecycle/dispose/lifecycle.global.ts +0 -66
- package/src/lifecycle/dispose/lifecycle.sync.ts +0 -133
- package/src/lifecycle/dispose/lifecycle.ts +0 -94
- package/src/lifecycle/promise/cancel.ts +0 -16
- package/src/lifecycle/timeout/timeoutError.ts +0 -18
- package/src/promise/finishAllPromise.ts +0 -50
- package/src/promise/timeoutPromiseCollection.ts +0 -22
- package/src/reflection/classes/hookClass.ts +0 -47
- package/src/reflection/methods/initOnRead.ts +0 -11
- /package/lib/lifecycle/{promise/cancellationToken → cancellation}/driver.browser.d.ts +0 -0
- /package/lib/lifecycle/{promise/cancellationToken → cancellation}/driver.browser.js +0 -0
- /package/lib/lifecycle/{promise/cancellationToken → cancellation}/driver.common.d.ts +0 -0
- /package/lib/{typingHelper → typing-helper}/deep.partial.d.ts +0 -0
- /package/lib/{typingHelper → typing-helper}/deep.partial.js +0 -0
- /package/lib/{typingHelper → typing-helper}/deep.readonly.d.ts +0 -0
- /package/lib/{typingHelper → typing-helper}/deep.readonly.js +0 -0
- /package/lib/{typingHelper → typing-helper}/deep.required.d.ts +0 -0
- /package/lib/{typingHelper → typing-helper}/deep.required.js +0 -0
- /package/lib/{typingHelper → typing-helper}/deep.writable.d.ts +0 -0
- /package/lib/{typingHelper → typing-helper}/deep.writable.js +0 -0
- /package/lib/{typingHelper → typing-helper}/literal.d.ts +0 -0
- /package/lib/{typingHelper → typing-helper}/literal.js +0 -0
- /package/src/array/{arrayDiff.ts → diff.ts} +0 -0
- /package/src/array/{arraySame.ts → is-same.ts} +0 -0
- /package/src/array/{normalizeArray.ts → normalize.ts} +0 -0
- /package/src/array/{sortAlpha.ts → sort-alpha.ts} +0 -0
- /package/src/array/{arrayUnique.ts → unique.ts} +0 -0
- /package/src/date/{isInvalid.ts → is-invalid.ts} +0 -0
- /package/src/error/{stackTrace.ts → stack-trace.ts} +0 -0
- /package/src/promise/{awaitIterator.ts → await-iterator.ts} +0 -0
- /package/src/promise/{promiseBool.ts → promise-bool.ts} +0 -0
- /package/src/string/{castCase.ts → case-cast.ts} +0 -0
- /package/src/string/{escapeRegexp.ts → escape-regexp.ts} +0 -0
- /package/src/string/{sizeString.ts → human-bytes.ts} +0 -0
- /package/src/{typingHelper → typing-helper}/deep.partial.ts +0 -0
- /package/src/{typingHelper → typing-helper}/deep.readonly.ts +0 -0
- /package/src/{typingHelper → typing-helper}/deep.required.ts +0 -0
- /package/src/{typingHelper → typing-helper}/deep.writable.ts +0 -0
- /package/src/{typingHelper → typing-helper}/literal.ts +0 -0
|
@@ -1,31 +1,46 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { isNodeJs } from '../../autoindex.js';
|
|
2
|
+
import { tryInspect } from '../../debugging/inspect.js';
|
|
3
|
+
import { getErrorFrame } from '../../error/get-frame.js';
|
|
4
|
+
import { prettyFormatError } from '../../error/pretty.nodejs.js';
|
|
5
|
+
import { dispose_name } from './debug.js';
|
|
6
|
+
export class Disposed extends Error {
|
|
7
|
+
previous;
|
|
8
|
+
constructor(message = 'Object has been disposed', previous) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.previous = previous;
|
|
11
|
+
this.name = 'DisposedError';
|
|
12
|
+
}
|
|
13
|
+
get stack() {
|
|
14
|
+
return `${super.stack}\nDisposed at:\n${this.previous.stack}`;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
4
17
|
/**
|
|
5
18
|
* Error when call dispose() twice
|
|
6
19
|
*/
|
|
7
|
-
export class
|
|
20
|
+
export class DuplicateDisposed extends Error {
|
|
8
21
|
previous;
|
|
9
22
|
inspectString;
|
|
10
23
|
constructor(object, previous) {
|
|
11
|
-
const insp = tryInspect(object);
|
|
12
24
|
const old = Error.stackTraceLimit;
|
|
13
25
|
Error.stackTraceLimit = Number.MAX_SAFE_INTEGER;
|
|
14
|
-
|
|
26
|
+
const stacks = getErrorFrame(previous, 2);
|
|
27
|
+
const inspectString = tryInspect(object);
|
|
28
|
+
const name = dispose_name(object, inspectString);
|
|
29
|
+
super(`Object [${name}] has already disposed ${stacks}.`);
|
|
15
30
|
this.previous = previous;
|
|
31
|
+
this.name = 'DuplicateDisposedError';
|
|
32
|
+
this.inspectString = inspectString;
|
|
16
33
|
Error.stackTraceLimit = old;
|
|
17
|
-
this.inspectString = insp;
|
|
18
|
-
this.name = 'Warning';
|
|
19
34
|
this.tryCreateConsoleWarning().catch(() => { });
|
|
20
35
|
}
|
|
21
36
|
async tryCreateConsoleWarning() {
|
|
22
37
|
console.error('DisposedWarning: duplicate dispose.');
|
|
23
|
-
console.error(' * first dispose:\n
|
|
24
|
-
console.error(' * current dispose:\n
|
|
38
|
+
console.error(' * first dispose:\n ', isNodeJs ? prettyFormatError(this.previous, false) : this.previous);
|
|
39
|
+
console.error(' * current dispose:\n ', isNodeJs ? prettyFormatError(this, false) : this);
|
|
25
40
|
console.error(' * Object: %s', this.inspectString);
|
|
26
41
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
42
|
+
is(other) {
|
|
43
|
+
return other instanceof DuplicateDisposed;
|
|
44
|
+
}
|
|
30
45
|
}
|
|
31
46
|
//# sourceMappingURL=disposedError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disposedError.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/disposedError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"disposedError.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/disposedError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGhB;IAFlB,YACC,OAAO,GAAG,0BAA0B,EACnB,QAA0B;QAE3C,KAAK,CAAC,OAAO,CAAC,CAAC;QAFE,aAAQ,GAAR,QAAQ,CAAkB;QAG3C,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC7B,CAAC;IAED,IAAa,KAAK;QACjB,OAAO,GAAG,KAAK,CAAC,KAAK,mBAAmB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC/D,CAAC;CACD;AAED;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAIzB;IAHF,aAAa,CAAS;IACtC,YACC,MAAW,EACM,QAA0B;QAE3C,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,CAAC;QAClC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAChD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE1C,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAEjD,KAAK,CAAC,WAAW,IAAI,0BAA0B,MAAM,GAAG,CAAC,CAAC;QATzC,aAAQ,GAAR,QAAQ,CAAkB;QAU3C,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC;QAE5B,IAAI,CAAC,uBAAuB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,uBAAuB;QACnC,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5G,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1F,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC;IAED,EAAE,CAAC,KAAc;QAChB,OAAO,KAAK,YAAY,iBAAiB,CAAC;IAC3C,CAAC;CACD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AbstractEnhancedDisposable, type IDisposable } from './disposable.js';
|
|
2
|
+
/**
|
|
3
|
+
* 简单版手动disposable
|
|
4
|
+
*/
|
|
5
|
+
export declare abstract class DisposableOnce implements IDisposable {
|
|
6
|
+
private _disposed?;
|
|
7
|
+
get hasDisposed(): boolean;
|
|
8
|
+
dispose(): void;
|
|
9
|
+
[Symbol.dispose](): void;
|
|
10
|
+
protected abstract _dispose(): void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 完整版disposable类
|
|
14
|
+
* 可以继承
|
|
15
|
+
* 也可以直接用(相当于一个DisposableStack)
|
|
16
|
+
*/
|
|
17
|
+
export declare class EnhancedDisposable extends AbstractEnhancedDisposable<false> implements IDisposable {
|
|
18
|
+
protected _dispose(disposables: readonly IDisposable[]): void;
|
|
19
|
+
[Symbol.dispose]: () => void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=sync-disposable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-disposable.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/dispose/sync-disposable.ts"],"names":[],"mappings":"AAEA,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;IAQtB,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;IAiB/D,CAAC,MAAM,CAAC,OAAO,CAAC,aAAgB;CACvC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { createStackTraceHolder } from '../../error/stack-trace.js';
|
|
2
|
+
import { dispose_name } from './debug.js';
|
|
3
|
+
import { AbstractEnhancedDisposable } from './disposable.js';
|
|
4
|
+
import { DuplicateDisposed } from './disposedError.js';
|
|
5
|
+
/**
|
|
6
|
+
* 简单版手动disposable
|
|
7
|
+
*/
|
|
8
|
+
export class DisposableOnce {
|
|
9
|
+
_disposed;
|
|
10
|
+
get hasDisposed() {
|
|
11
|
+
return !!this._disposed;
|
|
12
|
+
}
|
|
13
|
+
dispose() {
|
|
14
|
+
if (this._disposed) {
|
|
15
|
+
console.warn(new DuplicateDisposed(this, this._disposed).message);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
this._disposed = createStackTraceHolder('disposed', this.dispose);
|
|
19
|
+
this._dispose();
|
|
20
|
+
}
|
|
21
|
+
[Symbol.dispose]() {
|
|
22
|
+
this.dispose();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 完整版disposable类
|
|
27
|
+
* 可以继承
|
|
28
|
+
* 也可以直接用(相当于一个DisposableStack)
|
|
29
|
+
*/
|
|
30
|
+
export class EnhancedDisposable extends AbstractEnhancedDisposable {
|
|
31
|
+
_dispose(disposables) {
|
|
32
|
+
for (const item of disposables.values()) {
|
|
33
|
+
try {
|
|
34
|
+
if (this._logger.enabled)
|
|
35
|
+
this._logger(`dispose ${dispose_name(item)}`);
|
|
36
|
+
item.dispose();
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
if (e instanceof Error) {
|
|
40
|
+
this._onDisposeError.fire(e);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
console.error('error during dispose, throw:', e);
|
|
44
|
+
this._onDisposeError.fire(new Error(`${e}`));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/// compitable with stack
|
|
50
|
+
[Symbol.dispose] = this.dispose;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=sync-disposable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-disposable.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/sync-disposable.ts"],"names":[],"mappings":"AAAA,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,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;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,OAAO,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;YAClE,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,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;IAED,yBAAyB;IAClB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;CACvC"}
|
|
@@ -1,56 +1,41 @@
|
|
|
1
|
-
import type { IDisposable } from '../dispose/
|
|
2
|
-
|
|
3
|
-
export interface EventRegister<T> {
|
|
4
|
-
(callback: EventHandler<T>): IDisposable;
|
|
5
|
-
once(callback: EventHandler<T>): IDisposable;
|
|
6
|
-
}
|
|
7
|
-
type DeferFn = () => void;
|
|
1
|
+
import type { IDisposable } from '../dispose/disposable.js';
|
|
2
|
+
import type { EventHandler, EventRegister, IEventEmitter } from './type.js';
|
|
8
3
|
/**
|
|
9
|
-
* 事件注册对象
|
|
10
4
|
* @public
|
|
11
5
|
*/
|
|
12
|
-
export declare class Emitter<T> implements
|
|
6
|
+
export declare class Emitter<T = unknown> implements IEventEmitter<T> {
|
|
13
7
|
readonly displayName?: string | undefined;
|
|
14
|
-
protected
|
|
8
|
+
protected _callbacks?: (EventHandler<T> | undefined)[];
|
|
15
9
|
private executing;
|
|
10
|
+
private _something_change_during_call;
|
|
16
11
|
constructor(displayName?: string | undefined);
|
|
17
|
-
/**
|
|
18
|
-
* @returns 当前注册回调数量
|
|
19
|
-
*/
|
|
20
12
|
listenerCount(): number;
|
|
21
|
-
/**
|
|
22
|
-
* 触发本事件
|
|
23
|
-
* @param data 回调数据
|
|
24
|
-
*/
|
|
25
13
|
fire(data: T): void;
|
|
26
|
-
/**
|
|
27
|
-
* 与 `fire()`相同,但是忽略任何错误,并且即便出错也继续执行全部callback
|
|
28
|
-
*/
|
|
29
14
|
fireNoError(data: T): void;
|
|
30
15
|
get register(): EventRegister<T>;
|
|
31
|
-
/**
|
|
32
|
-
* AI喜欢用event()
|
|
33
|
-
* @alias register
|
|
34
|
-
*/
|
|
35
16
|
get event(): EventRegister<T>;
|
|
36
17
|
/**
|
|
37
|
-
*
|
|
38
|
-
* @param callback 回调函数
|
|
18
|
+
* 添加监听器
|
|
39
19
|
*/
|
|
40
20
|
handle(callback: EventHandler<T>): IDisposable;
|
|
41
21
|
/**
|
|
42
|
-
*
|
|
43
|
-
* @param callback 回调函数
|
|
22
|
+
* 添加一次性监听器
|
|
44
23
|
*/
|
|
45
24
|
once(callback: EventHandler<T>): IDisposable;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
25
|
+
/**
|
|
26
|
+
* 创建一个等待下次触发的promise
|
|
27
|
+
*/
|
|
28
|
+
private _waittings?;
|
|
29
|
+
wait(): Promise<T>;
|
|
30
|
+
private checkDeleted;
|
|
50
31
|
private _disposed;
|
|
51
32
|
get hasDisposed(): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* 运行过程中可以dispose,本次运行仍然会继续到最后
|
|
35
|
+
* 但立即不能再次调用类似handle的方法
|
|
36
|
+
*/
|
|
52
37
|
dispose(): void;
|
|
38
|
+
readonly [Symbol.dispose]: () => void;
|
|
53
39
|
private requireNotExecuting;
|
|
54
40
|
}
|
|
55
|
-
export {};
|
|
56
41
|
//# sourceMappingURL=event.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/event/event.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/event/event.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5E;;GAEG;AACH,qBAAa,OAAO,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;aAKhC,WAAW,CAAC,EAAE,MAAM;IAJhD,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,CAAC,EAAE,MAAM,YAAA;IAEzC,aAAa;IAIb,IAAI,CAAC,IAAI,EAAE,CAAC;IAiBZ,WAAW,CAAC,IAAI,EAAE,CAAC;IAqB1B,IAAI,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,CAK/B;IAED,IAAI,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAE5B;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAqB9C;;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;IAwBP,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAgB;IAEzC,OAAO,CAAC,mBAAmB;CAK3B"}
|
|
@@ -1,102 +1,92 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Exit } from '@idlebox/errors';
|
|
2
|
+
import { nameObject, objectName } from '../../debugging/object-with-name.js';
|
|
3
|
+
import { createStackTraceHolder } from '../../error/stack-trace.js';
|
|
4
|
+
import { functionToDisposable } from '../dispose/bridges/function.js';
|
|
5
|
+
import { DuplicateDisposed } from '../dispose/disposedError.js';
|
|
3
6
|
/**
|
|
4
|
-
* 事件注册对象
|
|
5
7
|
* @public
|
|
6
8
|
*/
|
|
7
9
|
export class Emitter {
|
|
8
10
|
displayName;
|
|
9
|
-
_callbacks
|
|
11
|
+
_callbacks;
|
|
10
12
|
executing = false;
|
|
13
|
+
_something_change_during_call = false;
|
|
11
14
|
constructor(displayName) {
|
|
12
15
|
this.displayName = displayName;
|
|
13
16
|
}
|
|
14
|
-
/**
|
|
15
|
-
* @returns 当前注册回调数量
|
|
16
|
-
*/
|
|
17
17
|
listenerCount() {
|
|
18
|
-
return this._callbacks
|
|
18
|
+
return this._callbacks?.length ?? 0;
|
|
19
19
|
}
|
|
20
|
-
/**
|
|
21
|
-
* 触发本事件
|
|
22
|
-
* @param data 回调数据
|
|
23
|
-
*/
|
|
24
20
|
fire(data) {
|
|
25
21
|
this.requireNotExecuting();
|
|
22
|
+
if (!this._callbacks)
|
|
23
|
+
return;
|
|
26
24
|
this.executing = true;
|
|
27
25
|
try {
|
|
28
26
|
for (const callback of this._callbacks) {
|
|
29
|
-
callback(data);
|
|
27
|
+
callback?.(data);
|
|
30
28
|
}
|
|
31
29
|
}
|
|
32
30
|
finally {
|
|
33
|
-
this.doDefer();
|
|
34
31
|
this.executing = false;
|
|
32
|
+
if (this._something_change_during_call) {
|
|
33
|
+
this.checkDeleted();
|
|
34
|
+
}
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
/**
|
|
38
|
-
* 与 `fire()`相同,但是忽略任何错误,并且即便出错也继续执行全部callback
|
|
39
|
-
*/
|
|
40
37
|
fireNoError(data) {
|
|
41
38
|
this.requireNotExecuting();
|
|
39
|
+
if (!this._callbacks)
|
|
40
|
+
return;
|
|
42
41
|
this.executing = true;
|
|
43
42
|
for (const callback of this._callbacks) {
|
|
44
43
|
try {
|
|
45
|
-
callback(data);
|
|
44
|
+
callback?.(data);
|
|
46
45
|
}
|
|
47
46
|
catch (e) {
|
|
48
|
-
if (e instanceof
|
|
49
|
-
|
|
47
|
+
if (e instanceof Exit) {
|
|
48
|
+
break;
|
|
50
49
|
}
|
|
51
50
|
console.error('Emitter.fireNoError: error ignored: %s', e instanceof Error ? e.stack : e);
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
|
-
this.doDefer();
|
|
55
53
|
this.executing = false;
|
|
54
|
+
if (this._something_change_during_call) {
|
|
55
|
+
this.checkDeleted();
|
|
56
|
+
}
|
|
56
57
|
}
|
|
57
58
|
get register() {
|
|
58
59
|
return Object.assign(this.handle.bind(this), {
|
|
59
60
|
once: this.once.bind(this),
|
|
61
|
+
wait: this.wait.bind(this),
|
|
60
62
|
});
|
|
61
63
|
}
|
|
62
|
-
/**
|
|
63
|
-
* AI喜欢用event()
|
|
64
|
-
* @alias register
|
|
65
|
-
*/
|
|
66
64
|
get event() {
|
|
67
65
|
return this.register;
|
|
68
66
|
}
|
|
69
67
|
/**
|
|
70
|
-
*
|
|
71
|
-
* @param callback 回调函数
|
|
68
|
+
* 添加监听器
|
|
72
69
|
*/
|
|
73
70
|
handle(callback) {
|
|
74
71
|
this.requireNotExecuting();
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
})
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
this._callbacks.splice(index, 1);
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
const dispose = () => {
|
|
87
|
-
disposed = true;
|
|
72
|
+
if (!this._callbacks)
|
|
73
|
+
this._callbacks = [];
|
|
74
|
+
const callbacks = this._callbacks;
|
|
75
|
+
callbacks.unshift(callback);
|
|
76
|
+
return functionToDisposable(nameObject(`removeListener(${objectName(callback)})`, () => {
|
|
77
|
+
const index = callbacks.indexOf(callback);
|
|
78
|
+
if (index === -1)
|
|
79
|
+
return;
|
|
88
80
|
if (this.executing) {
|
|
89
|
-
|
|
81
|
+
callbacks[index] = undefined;
|
|
90
82
|
}
|
|
91
83
|
else {
|
|
92
|
-
|
|
84
|
+
callbacks.splice(index, 1);
|
|
93
85
|
}
|
|
94
|
-
};
|
|
95
|
-
return { dispose };
|
|
86
|
+
}));
|
|
96
87
|
}
|
|
97
88
|
/**
|
|
98
|
-
*
|
|
99
|
-
* @param callback 回调函数
|
|
89
|
+
* 添加一次性监听器
|
|
100
90
|
*/
|
|
101
91
|
once(callback) {
|
|
102
92
|
this.requireNotExecuting();
|
|
@@ -106,37 +96,58 @@ export class Emitter {
|
|
|
106
96
|
});
|
|
107
97
|
return disposable;
|
|
108
98
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
99
|
+
/**
|
|
100
|
+
* 创建一个等待下次触发的promise
|
|
101
|
+
*/
|
|
102
|
+
_waittings;
|
|
103
|
+
wait() {
|
|
104
|
+
return new Promise((resolve, reject) => {
|
|
105
|
+
if (!this._waittings)
|
|
106
|
+
this._waittings = new Set();
|
|
107
|
+
this._waittings.add(reject);
|
|
108
|
+
this.once((data) => {
|
|
109
|
+
resolve(data);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
112
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
113
|
+
checkDeleted() {
|
|
114
|
+
if (!this._callbacks)
|
|
115
|
+
return;
|
|
116
|
+
for (let i = this._callbacks.length - 1; i >= 0; i--) {
|
|
117
|
+
if (this._callbacks[i] === undefined) {
|
|
118
|
+
this._callbacks.splice(i, 1);
|
|
119
|
+
}
|
|
116
120
|
}
|
|
117
|
-
this.defers.length = 0;
|
|
118
|
-
}
|
|
119
|
-
[Symbol.dispose]() {
|
|
120
|
-
this.dispose();
|
|
121
121
|
}
|
|
122
122
|
_disposed = false;
|
|
123
123
|
get hasDisposed() {
|
|
124
124
|
return this._disposed;
|
|
125
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* 运行过程中可以dispose,本次运行仍然会继续到最后
|
|
128
|
+
* 但立即不能再次调用类似handle的方法
|
|
129
|
+
*/
|
|
126
130
|
dispose() {
|
|
127
131
|
if (this._disposed)
|
|
128
132
|
return;
|
|
129
133
|
this._disposed = true;
|
|
130
|
-
this.
|
|
131
|
-
this.
|
|
134
|
+
this._callbacks = undefined;
|
|
135
|
+
if (this._waittings) {
|
|
136
|
+
for (const rej of this._waittings) {
|
|
137
|
+
rej(new Error('disposed'));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
this._waittings = undefined;
|
|
132
141
|
const trace = createStackTraceHolder('disposed');
|
|
133
|
-
this.
|
|
134
|
-
this.
|
|
135
|
-
this.
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
142
|
+
this.requireNotExecuting =
|
|
143
|
+
this.fireNoError =
|
|
144
|
+
this.fire =
|
|
145
|
+
this.handle =
|
|
146
|
+
() => {
|
|
147
|
+
throw new DuplicateDisposed(this, trace);
|
|
148
|
+
};
|
|
139
149
|
}
|
|
150
|
+
[Symbol.dispose] = this.dispose;
|
|
140
151
|
requireNotExecuting() {
|
|
141
152
|
if (this.executing) {
|
|
142
153
|
throw new Error('conflict state, emitter is firing');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/lifecycle/event/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/lifecycle/event/event.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { IDisposable } from '../dispose/
|
|
2
|
-
import { Emitter
|
|
1
|
+
import type { IDisposable } from '../dispose/disposable.js';
|
|
2
|
+
import { Emitter } from './event.js';
|
|
3
|
+
import type { EventHandler } from './type.js';
|
|
3
4
|
/**
|
|
4
5
|
* 会记住上次fire的内容,并在每个新的handler注册时立即调用一次的Emitter
|
|
5
6
|
* 显然,这会对fire的内容保留一个引用,可以调用forget()取消
|
|
@@ -7,10 +8,10 @@ import { Emitter, type EventHandler } from './event.js';
|
|
|
7
8
|
*/
|
|
8
9
|
export declare class MemorizedEmitter<T> extends Emitter<T> {
|
|
9
10
|
private _memo?;
|
|
10
|
-
private _is_memo;
|
|
11
11
|
fire(data: T): void;
|
|
12
12
|
fireNoError(data: T): void;
|
|
13
13
|
handle(callback: EventHandler<T>): IDisposable;
|
|
14
|
+
once(): never;
|
|
14
15
|
forget(): void;
|
|
15
16
|
dispose(): void;
|
|
16
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memorized.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/event/memorized.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"memorized.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/event/memorized.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C;;;;GAIG;AACH,qBAAa,gBAAgB,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,KAAK,CAAC,CAAc;IAEZ,IAAI,CAAC,IAAI,EAAE,CAAC;IAKZ,WAAW,CAAC,IAAI,EAAE,CAAC;IAKnB,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAK9C,IAAI,IAAI,KAAK;IAItB,MAAM;IAIJ,OAAO,IAAI,IAAI;CAIxB"}
|
|
@@ -6,25 +6,24 @@ import { Emitter } from './event.js';
|
|
|
6
6
|
*/
|
|
7
7
|
export class MemorizedEmitter extends Emitter {
|
|
8
8
|
_memo;
|
|
9
|
-
_is_memo = false;
|
|
10
9
|
fire(data) {
|
|
11
|
-
|
|
12
|
-
this.
|
|
13
|
-
return super.fire(data);
|
|
10
|
+
super.fire(data);
|
|
11
|
+
this._memo = { data };
|
|
14
12
|
}
|
|
15
13
|
fireNoError(data) {
|
|
16
|
-
|
|
17
|
-
this.
|
|
18
|
-
return super.fireNoError(data);
|
|
14
|
+
super.fireNoError(data);
|
|
15
|
+
this._memo = { data };
|
|
19
16
|
}
|
|
20
17
|
handle(callback) {
|
|
21
|
-
if (this.
|
|
22
|
-
callback(this._memo);
|
|
18
|
+
if (this._memo)
|
|
19
|
+
callback(this._memo.data);
|
|
23
20
|
return super.handle(callback);
|
|
24
21
|
}
|
|
22
|
+
once() {
|
|
23
|
+
throw new Error('once() is not supported for MemorizedEmitter');
|
|
24
|
+
}
|
|
25
25
|
forget() {
|
|
26
26
|
this._memo = undefined;
|
|
27
|
-
this._is_memo = false;
|
|
28
27
|
}
|
|
29
28
|
dispose() {
|
|
30
29
|
this.forget();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memorized.js","sourceRoot":"","sources":["../../../src/lifecycle/event/memorized.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"memorized.js","sourceRoot":"","sources":["../../../src/lifecycle/event/memorized.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC;;;;GAIG;AACH,MAAM,OAAO,gBAAoB,SAAQ,OAAU;IAC1C,KAAK,CAAe;IAEZ,IAAI,CAAC,IAAO;QAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;IAEe,WAAW,CAAC,IAAO;QAClC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;IAEe,MAAM,CAAC,QAAyB;QAC/C,IAAI,IAAI,CAAC,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAEe,IAAI;QACnB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACjE,CAAC;IAEM,MAAM;QACZ,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACxB,CAAC;IAEQ,OAAO;QACf,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,KAAK,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;CACD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { IDisposable } from '../dispose/disposable.js';
|
|
2
|
+
import type { Emitter } from './event.js';
|
|
3
|
+
/**
|
|
4
|
+
* 事件注册对象
|
|
5
|
+
*/
|
|
6
|
+
export interface IEventEmitter<T = unknown> extends IDisposable {
|
|
7
|
+
/**
|
|
8
|
+
* @returns 当前注册回调数量
|
|
9
|
+
*/
|
|
10
|
+
listenerCount(): number;
|
|
11
|
+
/**
|
|
12
|
+
* 触发本事件,任何一个回调错误,都会导致直接抛出异常,其他未知数量的回调将不会被执行
|
|
13
|
+
* @param data 回调数据
|
|
14
|
+
*/
|
|
15
|
+
fire(data: T): void;
|
|
16
|
+
/**
|
|
17
|
+
* 与 `fire()`相同,但是忽略任何错误
|
|
18
|
+
* 即便出错也继续执行全部callback
|
|
19
|
+
*
|
|
20
|
+
* 抛出的异常会直接丢弃
|
|
21
|
+
* 除了disposed错误外,其他错误都不会被重新抛出
|
|
22
|
+
*/
|
|
23
|
+
fireNoError(data: T): void;
|
|
24
|
+
/**
|
|
25
|
+
* 注册本事件的新回调
|
|
26
|
+
* @param callback 回调函数
|
|
27
|
+
*/
|
|
28
|
+
readonly register: EventRegister<T>;
|
|
29
|
+
/**
|
|
30
|
+
* @alias register AI喜欢用event
|
|
31
|
+
*/
|
|
32
|
+
readonly event: EventRegister<T>;
|
|
33
|
+
/**
|
|
34
|
+
* 注册一次性回调
|
|
35
|
+
* @param callback 回调函数
|
|
36
|
+
*/
|
|
37
|
+
once(callback: EventHandler<T>): IDisposable;
|
|
38
|
+
}
|
|
39
|
+
export type EventHandler<T> = (data: T) => void;
|
|
40
|
+
export interface EventRegister<T> {
|
|
41
|
+
(callback: EventHandler<T>): IDisposable;
|
|
42
|
+
once(callback: EventHandler<T>): IDisposable;
|
|
43
|
+
}
|
|
44
|
+
export type EventEmitterMap<T extends Record<string, unknown>> = {
|
|
45
|
+
[K in keyof T]: Emitter<T[K]>;
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/event/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,WAAW;IAC9D;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC;IAExB;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAEpB;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAEjC;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;CAC7C;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEhD,MAAM,WAAW,aAAa,CAAC,CAAC;IAC/B,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;CAC7C;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;KAC/D,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/lifecycle/event/type.ts"],"names":[],"mappings":""}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { IDisposable } from './lifecycle.js';
|
|
1
|
+
import type { IAsyncDisposable, IDisposable } from '../dispose/disposable.js';
|
|
3
2
|
/**
|
|
4
3
|
* Add object into global disposable store, it will be dispose when call to `disposeGlobal`
|
|
5
4
|
*/
|
|
6
|
-
export declare function registerGlobalLifecycle(object: IDisposable): void;
|
|
5
|
+
export declare function registerGlobalLifecycle(object: IDisposable | IAsyncDisposable): void;
|
|
7
6
|
/**
|
|
8
7
|
* Same as disposeGlobal, but do not throw by duplicate call
|
|
9
|
-
*
|
|
10
|
-
* Never throws when child object dispose failed
|
|
11
8
|
*/
|
|
12
9
|
export declare function ensureDisposeGlobal(): Promise<void>;
|
|
13
10
|
/**
|
|
@@ -17,13 +14,4 @@ export declare function ensureDisposeGlobal(): Promise<void>;
|
|
|
17
14
|
* @throws when call twice
|
|
18
15
|
*/
|
|
19
16
|
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
|
|
17
|
+
//# sourceMappingURL=global-lifecycle.d.ts.map
|