@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
|
@@ -74,27 +74,25 @@ export namespace humanDate {
|
|
|
74
74
|
|
|
75
75
|
/**
|
|
76
76
|
* format time delta (in ms) to string, like: '1d'
|
|
77
|
-
* when
|
|
77
|
+
* when delta<=0, returns '0s'
|
|
78
78
|
*
|
|
79
79
|
* format can set by `setLocaleFormatter`
|
|
80
80
|
* day is the largest unit
|
|
81
81
|
*/
|
|
82
82
|
export function deltaTiny(from: number, to: number): string;
|
|
83
83
|
export function deltaTiny(ms: number): string;
|
|
84
|
-
export function deltaTiny(
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if (
|
|
89
|
-
return formatters.
|
|
90
|
-
} else if (
|
|
91
|
-
return formatters.
|
|
92
|
-
} else if (
|
|
93
|
-
return formatters.
|
|
94
|
-
} else if (
|
|
95
|
-
return formatters.
|
|
96
|
-
} else if (ms > 0) {
|
|
97
|
-
return formatters.ms(ms);
|
|
84
|
+
export function deltaTiny(from: number, to?: number) {
|
|
85
|
+
const delta = to !== undefined ? from - to : from;
|
|
86
|
+
if (delta > oneDay) {
|
|
87
|
+
return formatters.d(Math.floor(delta / oneDay));
|
|
88
|
+
} else if (delta > oneHour) {
|
|
89
|
+
return formatters.h(Math.floor(delta / oneHour));
|
|
90
|
+
} else if (delta > oneMinute) {
|
|
91
|
+
return formatters.m(Math.floor(delta / oneMinute));
|
|
92
|
+
} else if (delta > oneSecond) {
|
|
93
|
+
return formatters.s(Math.floor(delta / oneSecond));
|
|
94
|
+
} else if (delta > 0) {
|
|
95
|
+
return formatters.ms(Math.floor(delta));
|
|
98
96
|
} else {
|
|
99
97
|
return '0s';
|
|
100
98
|
}
|
|
@@ -102,27 +100,21 @@ export namespace humanDate {
|
|
|
102
100
|
|
|
103
101
|
/**
|
|
104
102
|
* format time delta (in ms) to string, like: '1d10m42s'
|
|
105
|
-
* only return XXXms when
|
|
106
|
-
* when
|
|
103
|
+
* only return XXXms when delta<1min
|
|
104
|
+
* when delta<=0, returns '0s'
|
|
107
105
|
*
|
|
108
106
|
* format can set by `setLocaleFormatter`
|
|
109
107
|
* day is the largest unit
|
|
110
108
|
*/
|
|
111
109
|
export function delta(from: number, to: number): string;
|
|
112
|
-
export function delta(
|
|
113
|
-
export function delta(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
117
|
-
if (ms <= 0) {
|
|
110
|
+
export function delta(deltaMs: number): string;
|
|
111
|
+
export function delta(from: number, to?: number) {
|
|
112
|
+
const delta = to !== undefined ? from - to : from;
|
|
113
|
+
if (delta <= 0) {
|
|
118
114
|
return '0s';
|
|
119
115
|
}
|
|
120
116
|
|
|
121
|
-
|
|
122
|
-
if (ms < oneSecond) {
|
|
123
|
-
return formatters.ms(ms);
|
|
124
|
-
}
|
|
125
|
-
|
|
117
|
+
let ms = delta;
|
|
126
118
|
let ret = '';
|
|
127
119
|
if (ms > oneDay) {
|
|
128
120
|
ret += formatters.d(Math.floor(ms / oneDay));
|
|
@@ -136,7 +128,14 @@ export namespace humanDate {
|
|
|
136
128
|
ret += formatters.m(Math.floor(ms / oneMinute));
|
|
137
129
|
ms = ms % oneMinute;
|
|
138
130
|
}
|
|
139
|
-
|
|
131
|
+
if (ms > oneSecond) {
|
|
132
|
+
ret += formatters.s(Math.floor(ms / oneSecond));
|
|
133
|
+
ms = ms % oneSecond;
|
|
134
|
+
}
|
|
135
|
+
if (ms > 0 && delta < oneMinute) {
|
|
136
|
+
ret += formatters.ms(Math.floor(ms));
|
|
137
|
+
}
|
|
138
|
+
|
|
140
139
|
return ret;
|
|
141
140
|
}
|
|
142
141
|
}
|
|
@@ -16,7 +16,7 @@ function tryGetSymbol() {
|
|
|
16
16
|
* try to call `inspect` method of an object, if not exists, call `toString`.
|
|
17
17
|
* @returns {string}
|
|
18
18
|
*/
|
|
19
|
-
export function tryInspect(object: any) {
|
|
19
|
+
export function tryInspect(object: any): string {
|
|
20
20
|
if (!object || typeof object !== 'object') {
|
|
21
21
|
return JSON.stringify(object);
|
|
22
22
|
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { definePrivateConstant } from '../autoindex.js';
|
|
2
|
+
|
|
3
|
+
export interface NamedObject {
|
|
4
|
+
displayName: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Get displayName/name of a object
|
|
9
|
+
*/
|
|
10
|
+
export function objectName<T = unknown>(func: NonNullable<T>) {
|
|
11
|
+
return (func as MaybeNamed).displayName || (func as MaybeNamed).name;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Set displayName of a object
|
|
16
|
+
*/
|
|
17
|
+
export function nameObject<T extends {} = any>(name: string, object: T): T & NamedObject {
|
|
18
|
+
if (typeof object === 'function') {
|
|
19
|
+
definePrivateConstant(object, 'name', name);
|
|
20
|
+
} else if ('name' in object) {
|
|
21
|
+
definePrivateConstant(object, 'displayName', name);
|
|
22
|
+
} else {
|
|
23
|
+
definePrivateConstant(object, 'name', name);
|
|
24
|
+
}
|
|
25
|
+
definePrivateConstant(object, Symbol.toStringTag, `${object.constructor.name}: ${name}`);
|
|
26
|
+
return object as any;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface MaybeNamed {
|
|
30
|
+
readonly name?: string;
|
|
31
|
+
readonly displayName?: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Assert function must have oneof displayName/name property
|
|
36
|
+
*/
|
|
37
|
+
export function assertObjectHasName<T = unknown>(func: NonNullable<T>): asserts func is T & NamedObject {
|
|
38
|
+
if (!(func as MaybeNamed).displayName && !(func as MaybeNamed).name) {
|
|
39
|
+
console.error(func);
|
|
40
|
+
throw new TypeError('object must have name!');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Function with displayName
|
|
46
|
+
*/
|
|
47
|
+
export interface NamedFunction extends Function {
|
|
48
|
+
displayName: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Function with displayName
|
|
52
|
+
*/
|
|
53
|
+
export interface MaybeNamedFunction extends Function {
|
|
54
|
+
displayName?: string;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** like objectName but return <anonymous> */
|
|
58
|
+
export function functionName(func: Function) {
|
|
59
|
+
return objectName(func) || '<anonymous>';
|
|
60
|
+
}
|
|
61
|
+
/** @deprecated use nameObject */
|
|
62
|
+
export const nameFunction = nameObject;
|
|
63
|
+
/** @deprecated use assertObjectHasName */
|
|
64
|
+
export const assertFunctionHasName = assertObjectHasName;
|
|
@@ -32,11 +32,11 @@ export function isSerializable(value: any): SerializableKind {
|
|
|
32
32
|
const t = typeof value;
|
|
33
33
|
switch (t) {
|
|
34
34
|
case 'bigint':
|
|
35
|
-
// @ts-expect-error
|
|
36
35
|
case 'number':
|
|
37
36
|
if (Number.isNaN(value) || Number.POSITIVE_INFINITY === value || Number.NEGATIVE_INFINITY === value) {
|
|
38
37
|
return SerializableKind.Invalid;
|
|
39
38
|
}
|
|
39
|
+
return SerializableKind.Primitive;
|
|
40
40
|
case 'boolean':
|
|
41
41
|
case 'string':
|
|
42
42
|
case 'undefined':
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { getErrorFrame } from './get-frame.js';
|
|
2
|
+
|
|
3
|
+
export function convertCaughtError(e: unknown): Error {
|
|
4
|
+
if (e instanceof Error) {
|
|
5
|
+
return e;
|
|
6
|
+
}
|
|
7
|
+
console.error('Caught invalid error at %s, type %s, value %s.', getErrorFrame(new Error(), 1), typeof e, e);
|
|
8
|
+
return new Error(`Invalid: ${e}`);
|
|
9
|
+
}
|
|
@@ -3,7 +3,7 @@ import { relativePath } from '../path/normalizePath.js';
|
|
|
3
3
|
import { globalObject } from '../platform/globalObject.js';
|
|
4
4
|
import { isNative } from '../platform/os.js';
|
|
5
5
|
import { vscEscapeValue } from './pretty.vscode.js';
|
|
6
|
-
import { createStackTraceHolder } from './
|
|
6
|
+
import { createStackTraceHolder } from './stack-trace.js';
|
|
7
7
|
|
|
8
8
|
const process = globalObject.process;
|
|
9
9
|
const window = globalObject.window;
|
|
@@ -338,13 +338,14 @@ const regErrorClassName = /^(\S+):/;
|
|
|
338
338
|
|
|
339
339
|
/**
|
|
340
340
|
* Pretty formats an error object.
|
|
341
|
+
* only meanfull in nodejs
|
|
341
342
|
* @param e The error object to format.
|
|
342
343
|
* @param withMessage Whether to include the error message.
|
|
343
344
|
*/
|
|
344
345
|
export function prettyFormatError<ErrorType extends IError = IError>(e: ErrorType, withMessage?: boolean): string;
|
|
345
346
|
/** @internal */
|
|
346
347
|
export function prettyFormatError<ErrorType extends IError = IError>(e: ErrorType, withMessage?: boolean, boundary?: CallableFunction): string;
|
|
347
|
-
export function prettyFormatError<ErrorType extends IError = IError>(e: ErrorType, withMessage = true, boundary: CallableFunction =
|
|
348
|
+
export function prettyFormatError<ErrorType extends IError = IError>(e: ErrorType, withMessage = true, boundary: CallableFunction = prettyFormatError) {
|
|
348
349
|
if (!e || !e.stack) {
|
|
349
350
|
if (withMessage) {
|
|
350
351
|
const msg = e?.message || 'Unknown Error';
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { nameFunction } from './functionName.js';
|
|
2
|
-
|
|
3
1
|
export interface MyAsyncCallback<Argument extends unknown[]> {
|
|
4
2
|
displayName?: string;
|
|
5
3
|
|
|
@@ -7,7 +5,7 @@ export interface MyAsyncCallback<Argument extends unknown[]> {
|
|
|
7
5
|
}
|
|
8
6
|
|
|
9
7
|
/**
|
|
10
|
-
* like CallbackList, but async
|
|
8
|
+
* like CallbackList, but async run one by one
|
|
11
9
|
*/
|
|
12
10
|
export class AsyncCallbackList<Argument extends unknown[]> {
|
|
13
11
|
protected list: MyAsyncCallback<Argument>[] = [];
|
|
@@ -32,13 +30,10 @@ export class AsyncCallbackList<Argument extends unknown[]> {
|
|
|
32
30
|
* @param name optional name of `item` (will assign displayName to `item`)
|
|
33
31
|
* @returns function list length
|
|
34
32
|
*/
|
|
35
|
-
add(item: MyAsyncCallback<Argument
|
|
33
|
+
add(item: MyAsyncCallback<Argument>): number {
|
|
36
34
|
if (this.running) {
|
|
37
35
|
throw new Error("Can not add callback when it's running.");
|
|
38
36
|
}
|
|
39
|
-
if (name) {
|
|
40
|
-
nameFunction(name, item);
|
|
41
|
-
}
|
|
42
37
|
return this.list.push(item);
|
|
43
38
|
}
|
|
44
39
|
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface MyDelayCallback<Argument extends unknown[]> {
|
|
2
|
+
displayName?: string;
|
|
3
|
+
(...param: Argument): void;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* remember arguments after run
|
|
8
|
+
* run all later added function with memorized argument
|
|
9
|
+
*/
|
|
10
|
+
export class MemorizedOnceCallbackList<Argument extends unknown[]> {
|
|
11
|
+
protected list: MyDelayCallback<Argument>[] = [];
|
|
12
|
+
|
|
13
|
+
count() {
|
|
14
|
+
return this.list.length;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
add(item: MyDelayCallback<Argument>) {
|
|
18
|
+
this.list.push(item);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
run(...args: Argument) {
|
|
22
|
+
this.add = (item) => {
|
|
23
|
+
item(...args);
|
|
24
|
+
};
|
|
25
|
+
for (const item of this.list) {
|
|
26
|
+
item(...args);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function noop() {}
|
package/src/global.d.ts
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
1
|
/// <reference types="@idlebox/itypes" />
|
|
2
2
|
/// <reference types="debug" />
|
|
3
|
+
|
|
4
|
+
declare interface ErrorConstructor {
|
|
5
|
+
captureStackTrace: any;
|
|
6
|
+
stackTraceLimit: number;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare namespace NodeJS {
|
|
10
|
+
type Signals = string;
|
|
11
|
+
interface ErrnoException extends Error {}
|
|
12
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { convertCaughtError } from '../error/convert-unknown.js';
|
|
2
|
+
import { functionToDisposable } from '../lifecycle/dispose/bridges/function.js';
|
|
3
|
+
import { EnhancedAsyncDisposable } from '../lifecycle/dispose/async-disposable.js';
|
|
4
|
+
import { EnhancedDisposable } from '../lifecycle/dispose/sync-disposable.js';
|
|
5
|
+
|
|
6
|
+
/** @deprecated use functionToDisposable */
|
|
7
|
+
export const toDisposable = functionToDisposable;
|
|
8
|
+
|
|
9
|
+
/** @deprecated use EnhancedAsyncDisposable */
|
|
10
|
+
export const AsyncDisposable = EnhancedAsyncDisposable;
|
|
11
|
+
/** @deprecated use EnhancedDisposable */
|
|
12
|
+
export const Disposable = EnhancedDisposable;
|
|
13
|
+
|
|
14
|
+
/** @deprecated use convertCaughtError */
|
|
15
|
+
export const convertCatchedError = convertCaughtError;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type { EventHandler } from '
|
|
2
|
-
|
|
1
|
+
import type { EventHandler } from '../event/type.js';
|
|
3
2
|
import type { CancellationDriver, __CancellationToken } from './source.js';
|
|
4
3
|
|
|
5
|
-
declare const AbortController: any;
|
|
6
|
-
declare type AbortController = any;
|
|
4
|
+
declare const AbortController: any;
|
|
5
|
+
declare type AbortController = any;
|
|
7
6
|
|
|
8
7
|
/** @internal */
|
|
9
8
|
export class CancellationDriverBrowser implements CancellationDriver {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { IDisposable } from '
|
|
2
|
-
import { Emitter
|
|
1
|
+
import type { IDisposable } from '../dispose/disposable.js';
|
|
2
|
+
import { Emitter } from '../event/event.js';
|
|
3
|
+
import type { EventHandler } from '../event/type.js';
|
|
3
4
|
|
|
4
5
|
import type { CancellationDriver, __CancellationToken } from './source.js';
|
|
5
6
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { globalObject } from '
|
|
2
|
-
import type { IDisposable } from '
|
|
3
|
-
import { DisposableOnce } from '
|
|
4
|
-
import type { EventHandler } from '
|
|
1
|
+
import { globalObject } from '../../platform/globalObject.js';
|
|
2
|
+
import type { IDisposable } from '../dispose/disposable.js';
|
|
3
|
+
import { DisposableOnce } from '../dispose/sync-disposable.js';
|
|
4
|
+
import type { EventHandler } from '../event/type.js';
|
|
5
5
|
import { CancellationDriverBrowser } from './driver.browser.js';
|
|
6
6
|
import { CancellationDriverCommon } from './driver.common.js';
|
|
7
7
|
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { convertCaughtError } from '../../autoindex.js';
|
|
2
|
+
import { dispose_name } from './debug.js';
|
|
3
|
+
import { AbstractEnhancedDisposable, type IAsyncDisposable } from './disposable.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Async version of Disposable
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export class EnhancedAsyncDisposable extends AbstractEnhancedDisposable<true> implements IAsyncDisposable {
|
|
10
|
+
protected override async _dispose(disposables: readonly IAsyncDisposable[]): Promise<void> {
|
|
11
|
+
for (const d of disposables) {
|
|
12
|
+
try {
|
|
13
|
+
if (this._logger.enabled) this._logger(`dispose ${dispose_name(d)}`);
|
|
14
|
+
await d.dispose();
|
|
15
|
+
} catch (e) {
|
|
16
|
+
this._onDisposeError.fireNoError(convertCaughtError(e));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
[Symbol.asyncDispose] = this.dispose;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Disposable everything in same time
|
|
26
|
+
* @public
|
|
27
|
+
*/
|
|
28
|
+
export class UnorderedAsyncDisposable extends EnhancedAsyncDisposable {
|
|
29
|
+
protected override async _dispose(disposables: readonly IAsyncDisposable[]) {
|
|
30
|
+
const ps = disposables.map(async (d) => {
|
|
31
|
+
try {
|
|
32
|
+
if (this._logger.enabled) this._logger(`dispose ${dispose_name(d)}`);
|
|
33
|
+
await d.dispose();
|
|
34
|
+
} catch (e) {
|
|
35
|
+
this._onDisposeError.fireNoError(convertCaughtError(e));
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
await Promise.allSettled(ps);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { functionName, nameObject } from '../../../debugging/object-with-name.js';
|
|
2
|
+
import { dispose_name } from '../debug.js';
|
|
3
|
+
import type { IAsyncDisposable, IDisposable } from '../disposable.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Convert "dispose function" to disposable object
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export function functionToDisposable<RT>(fn: () => RT): RT extends Promise<any> ? IAsyncDisposable : IDisposable {
|
|
10
|
+
return {
|
|
11
|
+
get displayName() {
|
|
12
|
+
return `disposeFn(${functionName(fn)})`;
|
|
13
|
+
},
|
|
14
|
+
dispose: fn,
|
|
15
|
+
} as any;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* convert disposable object to function
|
|
20
|
+
* eg.
|
|
21
|
+
*
|
|
22
|
+
* useEffect(() => {
|
|
23
|
+
* const disposable = new Xyz();
|
|
24
|
+
* return toFunction(disposable);
|
|
25
|
+
* }, [])
|
|
26
|
+
*/
|
|
27
|
+
export function disposerFunction<T extends IDisposable | IAsyncDisposable>(obj: T): T extends IAsyncDisposable ? () => Promise<void> : () => void {
|
|
28
|
+
return nameObject(dispose_name(obj), () => {
|
|
29
|
+
obj.dispose();
|
|
30
|
+
}) as any;
|
|
31
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { IAsyncDisposable, IDisposable } from '../disposable.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 把原生的Disposable/AsyncDisposable对象转换为本包可以使用的版本
|
|
5
|
+
*/
|
|
6
|
+
export function fromNativeDisposable<T extends AsyncDisposable>(disposable: T): T & IAsyncDisposable;
|
|
7
|
+
export function fromNativeDisposable<T extends Disposable>(disposable: T): T & IDisposable;
|
|
8
|
+
export function fromNativeDisposable<T extends AsyncDisposable | Disposable>(disposable: T): T & IAsyncDisposable & IDisposable;
|
|
9
|
+
export function fromNativeDisposable(disposable: any): any {
|
|
10
|
+
if (!('dispose' in disposable)) {
|
|
11
|
+
Object.assign(disposable, { dispose: disposable[Symbol.asyncDispose] ?? disposable[Symbol.dispose] });
|
|
12
|
+
}
|
|
13
|
+
return disposable as any;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function toNativeDisposable(disposable: IAsyncDisposable): AsyncDisposable;
|
|
17
|
+
export function toNativeDisposable(disposable: IDisposable): Disposable;
|
|
18
|
+
export function toNativeDisposable(disposable: any): any {
|
|
19
|
+
if (!('dispose' in disposable)) {
|
|
20
|
+
Object.assign(disposable, { dispose: disposable[Symbol.asyncDispose] ?? disposable[Symbol.dispose] });
|
|
21
|
+
}
|
|
22
|
+
return disposable as any;
|
|
23
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { objectName } from '../../../debugging/object-with-name.js';
|
|
2
|
+
import type { IAsyncDisposable } from '../disposable.js';
|
|
3
|
+
|
|
4
|
+
type ClosableAsync = {
|
|
5
|
+
close(): Promise<any>;
|
|
6
|
+
close(cb: (e?: Error) => void): void;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Convert "dispose function" to disposable object
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export function closableToDisposable<T extends ClosableAsync>(closable: T): IAsyncDisposable {
|
|
14
|
+
const promised = closable.close.length === 0;
|
|
15
|
+
|
|
16
|
+
return {
|
|
17
|
+
get displayName() {
|
|
18
|
+
return `closable(${objectName(closable) || 'unknown'})`;
|
|
19
|
+
},
|
|
20
|
+
dispose() {
|
|
21
|
+
if (promised) {
|
|
22
|
+
return closable.close();
|
|
23
|
+
} else {
|
|
24
|
+
return new Promise<void>((resolve, reject) => {
|
|
25
|
+
return closable.close((error) => {
|
|
26
|
+
if (error) {
|
|
27
|
+
reject(error);
|
|
28
|
+
} else {
|
|
29
|
+
resolve();
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
type EndableAsync = {
|
|
39
|
+
end(): Promise<any>;
|
|
40
|
+
end(cb: (e?: Error) => void): void;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Convert "dispose function" to disposable object
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
export function endableToDisposable<T extends EndableAsync>(endable: T): IAsyncDisposable {
|
|
48
|
+
const promised = endable.end.length === 0;
|
|
49
|
+
|
|
50
|
+
return {
|
|
51
|
+
get displayName() {
|
|
52
|
+
return `endable(${objectName(endable) || 'unknown'})`;
|
|
53
|
+
},
|
|
54
|
+
dispose() {
|
|
55
|
+
if (promised) {
|
|
56
|
+
return endable.end();
|
|
57
|
+
} else {
|
|
58
|
+
return new Promise<void>((resolve, reject) => {
|
|
59
|
+
return endable.end((error) => {
|
|
60
|
+
if (error) {
|
|
61
|
+
reject(error);
|
|
62
|
+
} else {
|
|
63
|
+
resolve();
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
@@ -1,17 +1,35 @@
|
|
|
1
1
|
import debug from 'debug';
|
|
2
|
-
import type { IAsyncDisposable, IDisposable } from './
|
|
2
|
+
import type { IAsyncDisposable, IDisposable } from './disposable.js';
|
|
3
3
|
|
|
4
4
|
/** @internal */
|
|
5
5
|
export const _debug_dispose = debug('dispose');
|
|
6
6
|
|
|
7
7
|
/** @internal */
|
|
8
|
-
export function dispose_name(
|
|
9
|
-
|
|
8
|
+
export function dispose_name(disposable: IDisposable | IAsyncDisposable | AsyncDisposable | Disposable, defaultName = '<unknown>'): string {
|
|
9
|
+
const dis = disposable as any;
|
|
10
|
+
return (
|
|
11
|
+
dis.displayName ||
|
|
12
|
+
dis.name ||
|
|
13
|
+
name_of_func(dis.constructor) ||
|
|
14
|
+
name_of_func(dis.dispose) ||
|
|
15
|
+
name_of_func(dis[Symbol.dispose]) ||
|
|
16
|
+
name_of_func(dis[Symbol.asyncDispose]) ||
|
|
17
|
+
defaultName
|
|
18
|
+
);
|
|
10
19
|
}
|
|
11
20
|
function name_of_func(obj: any) {
|
|
12
21
|
const name: string = obj.name;
|
|
13
22
|
|
|
14
|
-
if (
|
|
23
|
+
if (
|
|
24
|
+
name === 'Object' ||
|
|
25
|
+
name === 'Function' ||
|
|
26
|
+
name === 'AsyncFunction' ||
|
|
27
|
+
name === 'GeneratorFunction' ||
|
|
28
|
+
name === 'AsyncGeneratorFunction' ||
|
|
29
|
+
name === 'Disposable' ||
|
|
30
|
+
name === 'AsyncDisposable' ||
|
|
31
|
+
name.toLowerCase() === 'dispose'
|
|
32
|
+
) {
|
|
15
33
|
return '';
|
|
16
34
|
}
|
|
17
35
|
|