@adviser/cement 0.4.62 → 0.4.64-dev
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/cjs/app-context.cjs.map +1 -1
- package/cjs/app-context.d.ts.map +1 -1
- package/cjs/base-sys-abstraction.cjs.map +1 -1
- package/cjs/base-sys-abstraction.d.ts.map +1 -1
- package/cjs/bin2text.cjs.map +1 -1
- package/cjs/bin2text.d.ts.map +1 -1
- package/cjs/coerce-binary.cjs.map +1 -1
- package/cjs/coerce-binary.d.ts.map +1 -1
- package/cjs/crypto.cjs.map +1 -1
- package/cjs/crypto.d.ts.map +1 -1
- package/cjs/future.cjs.map +1 -1
- package/cjs/future.d.ts.map +1 -1
- package/cjs/http_header.cjs.map +1 -1
- package/cjs/http_header.d.ts.map +1 -1
- package/cjs/index.cjs +1 -0
- package/cjs/index.cjs.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.d.ts.map +1 -1
- package/cjs/is-json.cjs.map +1 -1
- package/cjs/is-json.d.ts.map +1 -1
- package/cjs/is-promise.cjs.map +1 -1
- package/cjs/is-promise.d.ts.map +1 -1
- package/cjs/keyed-ng.cjs +93 -0
- package/cjs/keyed-ng.cjs.map +1 -0
- package/cjs/keyed-ng.d.ts +51 -0
- package/cjs/keyed-ng.d.ts.map +1 -0
- package/cjs/keyed-ng.test.cjs +151 -0
- package/cjs/keyed-ng.test.cjs.map +1 -0
- package/cjs/keyed-ng.test.d.ts +2 -0
- package/cjs/keyed-ng.test.d.ts.map +1 -0
- package/cjs/lru-map-set.cjs +2 -1
- package/cjs/lru-map-set.cjs.map +1 -1
- package/cjs/lru-map-set.d.ts +4 -1
- package/cjs/lru-map-set.d.ts.map +1 -1
- package/cjs/on-func.cjs.map +1 -1
- package/cjs/on-func.d.ts.map +1 -1
- package/cjs/option.cjs.map +1 -1
- package/cjs/option.d.ts.map +1 -1
- package/cjs/poller.cjs +8 -3
- package/cjs/poller.cjs.map +1 -1
- package/cjs/poller.d.ts +9 -2
- package/cjs/poller.d.ts.map +1 -1
- package/cjs/promise-sleep.cjs.map +1 -1
- package/cjs/promise-sleep.d.ts.map +1 -1
- package/cjs/resolve-once.cjs +84 -43
- package/cjs/resolve-once.cjs.map +1 -1
- package/cjs/resolve-once.d.ts +31 -34
- package/cjs/resolve-once.d.ts.map +1 -1
- package/cjs/resolve-once.test.cjs +119 -31
- package/cjs/resolve-once.test.cjs.map +1 -1
- package/cjs/result.cjs.map +1 -1
- package/cjs/result.d.ts.map +1 -1
- package/cjs/runtime.cjs.map +1 -1
- package/cjs/runtime.d.ts.map +1 -1
- package/cjs/sys-env.cjs.map +1 -1
- package/cjs/sys-env.d.ts.map +1 -1
- package/cjs/timeouted.cjs.map +1 -1
- package/cjs/timeouted.d.ts.map +1 -1
- package/cjs/tracer.cjs.map +1 -1
- package/cjs/tracer.d.ts.map +1 -1
- package/cjs/txt-en-decoder.cjs +2 -5
- package/cjs/txt-en-decoder.cjs.map +1 -1
- package/cjs/txt-en-decoder.d.ts +1 -1
- package/cjs/txt-en-decoder.d.ts.map +1 -1
- package/cjs/uri.cjs.map +1 -1
- package/cjs/uri.d.ts.map +1 -1
- package/cjs/utils/coerce-uint8.cjs.map +1 -1
- package/cjs/utils/coerce-uint8.d.ts.map +1 -1
- package/cjs/utils/console-write-stream.cjs.map +1 -1
- package/cjs/utils/console-write-stream.d.ts.map +1 -1
- package/cjs/utils/consume.cjs.map +1 -1
- package/cjs/utils/consume.d.ts.map +1 -1
- package/cjs/utils/fanout-write-stream.cjs.map +1 -1
- package/cjs/utils/fanout-write-stream.d.ts.map +1 -1
- package/cjs/utils/get-params-result.cjs.map +1 -1
- package/cjs/utils/get-params-result.d.ts.map +1 -1
- package/cjs/utils/rebuffer.cjs.map +1 -1
- package/cjs/utils/rebuffer.d.ts.map +1 -1
- package/cjs/utils/relative-path.cjs.map +1 -1
- package/cjs/utils/relative-path.d.ts.map +1 -1
- package/cjs/utils/sorted-object.cjs.map +1 -1
- package/cjs/utils/sorted-object.d.ts.map +1 -1
- package/cjs/utils/stream-map.cjs.map +1 -1
- package/cjs/utils/stream-map.d.ts.map +1 -1
- package/cjs/utils/stream2string.cjs.map +1 -1
- package/cjs/utils/stream2string.d.ts.map +1 -1
- package/cjs/utils/string2stream.cjs.map +1 -1
- package/cjs/utils/string2stream.d.ts.map +1 -1
- package/cjs/utils/stripper.cjs.map +1 -1
- package/cjs/utils/stripper.d.ts.map +1 -1
- package/cjs/utils/to-sorted.cjs.map +1 -1
- package/cjs/utils/to-sorted.d.ts.map +1 -1
- package/cjs/utils/uint8array-equal.cjs.map +1 -1
- package/cjs/utils/uint8array-equal.d.ts.map +1 -1
- package/cjs/version.cjs +1 -1
- package/cjs/version.cjs.map +1 -1
- package/cjs/version.d.ts.map +1 -1
- package/deno.json +1 -1
- package/esm/app-context.d.ts.map +1 -1
- package/esm/app-context.js.map +1 -1
- package/esm/base-sys-abstraction.d.ts.map +1 -1
- package/esm/base-sys-abstraction.js.map +1 -1
- package/esm/bin2text.d.ts.map +1 -1
- package/esm/bin2text.js.map +1 -1
- package/esm/coerce-binary.d.ts.map +1 -1
- package/esm/coerce-binary.js.map +1 -1
- package/esm/crypto.d.ts.map +1 -1
- package/esm/crypto.js.map +1 -1
- package/esm/future.d.ts.map +1 -1
- package/esm/future.js.map +1 -1
- package/esm/http_header.d.ts.map +1 -1
- package/esm/http_header.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/is-json.d.ts.map +1 -1
- package/esm/is-json.js.map +1 -1
- package/esm/is-promise.d.ts.map +1 -1
- package/esm/is-promise.js.map +1 -1
- package/esm/keyed-ng.d.ts +51 -0
- package/esm/keyed-ng.d.ts.map +1 -0
- package/esm/keyed-ng.js +89 -0
- package/esm/keyed-ng.js.map +1 -0
- package/esm/keyed-ng.test.d.ts +2 -0
- package/esm/keyed-ng.test.d.ts.map +1 -0
- package/esm/keyed-ng.test.js +149 -0
- package/esm/keyed-ng.test.js.map +1 -0
- package/esm/lru-map-set.d.ts +4 -1
- package/esm/lru-map-set.d.ts.map +1 -1
- package/esm/lru-map-set.js +2 -1
- package/esm/lru-map-set.js.map +1 -1
- package/esm/on-func.d.ts.map +1 -1
- package/esm/on-func.js.map +1 -1
- package/esm/option.d.ts.map +1 -1
- package/esm/option.js.map +1 -1
- package/esm/poller.d.ts +9 -2
- package/esm/poller.d.ts.map +1 -1
- package/esm/poller.js +8 -3
- package/esm/poller.js.map +1 -1
- package/esm/promise-sleep.d.ts.map +1 -1
- package/esm/promise-sleep.js.map +1 -1
- package/esm/resolve-once.d.ts +31 -34
- package/esm/resolve-once.d.ts.map +1 -1
- package/esm/resolve-once.js +83 -41
- package/esm/resolve-once.js.map +1 -1
- package/esm/resolve-once.test.js +119 -31
- package/esm/resolve-once.test.js.map +1 -1
- package/esm/result.d.ts.map +1 -1
- package/esm/result.js.map +1 -1
- package/esm/runtime.d.ts.map +1 -1
- package/esm/runtime.js.map +1 -1
- package/esm/sys-env.d.ts.map +1 -1
- package/esm/sys-env.js.map +1 -1
- package/esm/timeouted.d.ts.map +1 -1
- package/esm/timeouted.js.map +1 -1
- package/esm/tracer.d.ts.map +1 -1
- package/esm/tracer.js.map +1 -1
- package/esm/txt-en-decoder.d.ts +1 -1
- package/esm/txt-en-decoder.d.ts.map +1 -1
- package/esm/txt-en-decoder.js +2 -5
- package/esm/txt-en-decoder.js.map +1 -1
- package/esm/uri.d.ts.map +1 -1
- package/esm/uri.js.map +1 -1
- package/esm/utils/coerce-uint8.d.ts.map +1 -1
- package/esm/utils/coerce-uint8.js.map +1 -1
- package/esm/utils/console-write-stream.d.ts.map +1 -1
- package/esm/utils/console-write-stream.js.map +1 -1
- package/esm/utils/consume.d.ts.map +1 -1
- package/esm/utils/consume.js.map +1 -1
- package/esm/utils/fanout-write-stream.d.ts.map +1 -1
- package/esm/utils/fanout-write-stream.js.map +1 -1
- package/esm/utils/get-params-result.d.ts.map +1 -1
- package/esm/utils/get-params-result.js.map +1 -1
- package/esm/utils/rebuffer.d.ts.map +1 -1
- package/esm/utils/rebuffer.js.map +1 -1
- package/esm/utils/relative-path.d.ts.map +1 -1
- package/esm/utils/relative-path.js.map +1 -1
- package/esm/utils/sorted-object.d.ts.map +1 -1
- package/esm/utils/sorted-object.js.map +1 -1
- package/esm/utils/stream-map.d.ts.map +1 -1
- package/esm/utils/stream-map.js.map +1 -1
- package/esm/utils/stream2string.d.ts.map +1 -1
- package/esm/utils/stream2string.js.map +1 -1
- package/esm/utils/string2stream.d.ts.map +1 -1
- package/esm/utils/string2stream.js.map +1 -1
- package/esm/utils/stripper.d.ts.map +1 -1
- package/esm/utils/stripper.js.map +1 -1
- package/esm/utils/to-sorted.d.ts.map +1 -1
- package/esm/utils/to-sorted.js.map +1 -1
- package/esm/utils/uint8array-equal.d.ts.map +1 -1
- package/esm/utils/uint8array-equal.js.map +1 -1
- package/esm/version.d.ts.map +1 -1
- package/esm/version.js +1 -1
- package/esm/version.js.map +1 -1
- package/package.json +7 -4
- package/src/app-context.ts +111 -5
- package/src/base-sys-abstraction.ts +244 -0
- package/src/bin2text.ts +37 -0
- package/src/coerce-binary.ts +41 -0
- package/src/crypto.ts +35 -0
- package/src/future.ts +45 -1
- package/src/http_header.ts +277 -1
- package/src/index.ts +1 -0
- package/src/is-json.ts +21 -0
- package/src/is-promise.ts +26 -0
- package/src/keyed-ng.ts +628 -0
- package/src/lru-map-set.ts +52 -2
- package/src/on-func.ts +38 -0
- package/src/option.ts +27 -0
- package/src/poller.ts +65 -17
- package/src/promise-sleep.ts +32 -4
- package/src/resolve-once.ts +596 -93
- package/src/result.ts +50 -0
- package/src/runtime.ts +75 -2
- package/src/sys-env.ts +57 -0
- package/src/timeouted.ts +92 -0
- package/src/tracer.ts +41 -0
- package/src/txt-en-decoder.ts +2 -5
- package/src/uri.ts +76 -4
- package/src/utils/coerce-uint8.ts +60 -0
- package/src/utils/console-write-stream.ts +34 -0
- package/src/utils/consume.ts +106 -0
- package/src/utils/fanout-write-stream.ts +45 -0
- package/src/utils/get-params-result.ts +37 -0
- package/src/utils/rebuffer.ts +42 -0
- package/src/utils/relative-path.ts +108 -0
- package/src/utils/sorted-object.ts +50 -0
- package/src/utils/stream-map.ts +90 -0
- package/src/utils/stream2string.ts +35 -0
- package/src/utils/string2stream.ts +30 -0
- package/src/utils/stripper.ts +34 -0
- package/src/utils/to-sorted.ts +34 -0
- package/src/utils/uint8array-equal.ts +20 -0
- package/ts/cjs/app-context.d.ts.map +1 -1
- package/ts/cjs/app-context.js.map +1 -1
- package/ts/cjs/base-sys-abstraction.d.ts.map +1 -1
- package/ts/cjs/base-sys-abstraction.js.map +1 -1
- package/ts/cjs/bin2text.d.ts.map +1 -1
- package/ts/cjs/bin2text.js.map +1 -1
- package/ts/cjs/coerce-binary.d.ts.map +1 -1
- package/ts/cjs/coerce-binary.js.map +1 -1
- package/ts/cjs/crypto.d.ts.map +1 -1
- package/ts/cjs/crypto.js.map +1 -1
- package/ts/cjs/future.d.ts.map +1 -1
- package/ts/cjs/future.js.map +1 -1
- package/ts/cjs/http_header.d.ts.map +1 -1
- package/ts/cjs/http_header.js.map +1 -1
- package/ts/cjs/index.d.ts +1 -0
- package/ts/cjs/index.d.ts.map +1 -1
- package/ts/cjs/index.js +1 -0
- package/ts/cjs/index.js.map +1 -1
- package/ts/cjs/is-json.d.ts.map +1 -1
- package/ts/cjs/is-json.js.map +1 -1
- package/ts/cjs/is-promise.d.ts.map +1 -1
- package/ts/cjs/is-promise.js.map +1 -1
- package/ts/cjs/keyed-ng.d.ts +51 -0
- package/ts/cjs/keyed-ng.d.ts.map +1 -0
- package/ts/cjs/keyed-ng.js +93 -0
- package/ts/cjs/keyed-ng.js.map +1 -0
- package/ts/cjs/keyed-ng.test.d.ts +2 -0
- package/ts/cjs/keyed-ng.test.d.ts.map +1 -0
- package/ts/cjs/keyed-ng.test.js +151 -0
- package/ts/cjs/keyed-ng.test.js.map +1 -0
- package/ts/cjs/lru-map-set.d.ts +4 -1
- package/ts/cjs/lru-map-set.d.ts.map +1 -1
- package/ts/cjs/lru-map-set.js +2 -1
- package/ts/cjs/lru-map-set.js.map +1 -1
- package/ts/cjs/on-func.d.ts.map +1 -1
- package/ts/cjs/on-func.js.map +1 -1
- package/ts/cjs/option.d.ts.map +1 -1
- package/ts/cjs/option.js.map +1 -1
- package/ts/cjs/poller.d.ts +9 -2
- package/ts/cjs/poller.d.ts.map +1 -1
- package/ts/cjs/poller.js +8 -3
- package/ts/cjs/poller.js.map +1 -1
- package/ts/cjs/promise-sleep.d.ts.map +1 -1
- package/ts/cjs/promise-sleep.js.map +1 -1
- package/ts/cjs/resolve-once.d.ts +31 -34
- package/ts/cjs/resolve-once.d.ts.map +1 -1
- package/ts/cjs/resolve-once.js +84 -43
- package/ts/cjs/resolve-once.js.map +1 -1
- package/ts/cjs/resolve-once.test.js +119 -31
- package/ts/cjs/resolve-once.test.js.map +1 -1
- package/ts/cjs/result.d.ts.map +1 -1
- package/ts/cjs/result.js.map +1 -1
- package/ts/cjs/runtime.d.ts.map +1 -1
- package/ts/cjs/runtime.js.map +1 -1
- package/ts/cjs/sys-env.d.ts.map +1 -1
- package/ts/cjs/sys-env.js.map +1 -1
- package/ts/cjs/timeouted.d.ts.map +1 -1
- package/ts/cjs/timeouted.js.map +1 -1
- package/ts/cjs/tracer.d.ts.map +1 -1
- package/ts/cjs/tracer.js.map +1 -1
- package/ts/cjs/txt-en-decoder.d.ts +1 -1
- package/ts/cjs/txt-en-decoder.d.ts.map +1 -1
- package/ts/cjs/txt-en-decoder.js +2 -5
- package/ts/cjs/txt-en-decoder.js.map +1 -1
- package/ts/cjs/uri.d.ts.map +1 -1
- package/ts/cjs/uri.js.map +1 -1
- package/ts/cjs/utils/coerce-uint8.d.ts.map +1 -1
- package/ts/cjs/utils/coerce-uint8.js.map +1 -1
- package/ts/cjs/utils/console-write-stream.d.ts.map +1 -1
- package/ts/cjs/utils/console-write-stream.js.map +1 -1
- package/ts/cjs/utils/consume.d.ts.map +1 -1
- package/ts/cjs/utils/consume.js.map +1 -1
- package/ts/cjs/utils/fanout-write-stream.d.ts.map +1 -1
- package/ts/cjs/utils/fanout-write-stream.js.map +1 -1
- package/ts/cjs/utils/get-params-result.d.ts.map +1 -1
- package/ts/cjs/utils/get-params-result.js.map +1 -1
- package/ts/cjs/utils/rebuffer.d.ts.map +1 -1
- package/ts/cjs/utils/rebuffer.js.map +1 -1
- package/ts/cjs/utils/relative-path.d.ts.map +1 -1
- package/ts/cjs/utils/relative-path.js.map +1 -1
- package/ts/cjs/utils/sorted-object.d.ts.map +1 -1
- package/ts/cjs/utils/sorted-object.js.map +1 -1
- package/ts/cjs/utils/stream-map.d.ts.map +1 -1
- package/ts/cjs/utils/stream-map.js.map +1 -1
- package/ts/cjs/utils/stream2string.d.ts.map +1 -1
- package/ts/cjs/utils/stream2string.js.map +1 -1
- package/ts/cjs/utils/string2stream.d.ts.map +1 -1
- package/ts/cjs/utils/string2stream.js.map +1 -1
- package/ts/cjs/utils/stripper.d.ts.map +1 -1
- package/ts/cjs/utils/stripper.js.map +1 -1
- package/ts/cjs/utils/to-sorted.d.ts.map +1 -1
- package/ts/cjs/utils/to-sorted.js.map +1 -1
- package/ts/cjs/utils/uint8array-equal.d.ts.map +1 -1
- package/ts/cjs/utils/uint8array-equal.js.map +1 -1
- package/ts/cjs/version.d.ts.map +1 -1
- package/ts/cjs/version.js +1 -1
- package/ts/cjs/version.js.map +1 -1
- package/ts/esm/app-context.d.ts.map +1 -1
- package/ts/esm/app-context.js.map +1 -1
- package/ts/esm/base-sys-abstraction.d.ts.map +1 -1
- package/ts/esm/base-sys-abstraction.js.map +1 -1
- package/ts/esm/bin2text.d.ts.map +1 -1
- package/ts/esm/bin2text.js.map +1 -1
- package/ts/esm/coerce-binary.d.ts.map +1 -1
- package/ts/esm/coerce-binary.js.map +1 -1
- package/ts/esm/crypto.d.ts.map +1 -1
- package/ts/esm/crypto.js.map +1 -1
- package/ts/esm/future.d.ts.map +1 -1
- package/ts/esm/future.js.map +1 -1
- package/ts/esm/http_header.d.ts.map +1 -1
- package/ts/esm/http_header.js.map +1 -1
- package/ts/esm/index.d.ts +1 -0
- package/ts/esm/index.d.ts.map +1 -1
- package/ts/esm/index.js +1 -0
- package/ts/esm/index.js.map +1 -1
- package/ts/esm/is-json.d.ts.map +1 -1
- package/ts/esm/is-json.js.map +1 -1
- package/ts/esm/is-promise.d.ts.map +1 -1
- package/ts/esm/is-promise.js.map +1 -1
- package/ts/esm/keyed-ng.d.ts +51 -0
- package/ts/esm/keyed-ng.d.ts.map +1 -0
- package/ts/esm/keyed-ng.js +89 -0
- package/ts/esm/keyed-ng.js.map +1 -0
- package/ts/esm/keyed-ng.test.d.ts +2 -0
- package/ts/esm/keyed-ng.test.d.ts.map +1 -0
- package/ts/esm/keyed-ng.test.js +149 -0
- package/ts/esm/keyed-ng.test.js.map +1 -0
- package/ts/esm/lru-map-set.d.ts +4 -1
- package/ts/esm/lru-map-set.d.ts.map +1 -1
- package/ts/esm/lru-map-set.js +2 -1
- package/ts/esm/lru-map-set.js.map +1 -1
- package/ts/esm/on-func.d.ts.map +1 -1
- package/ts/esm/on-func.js.map +1 -1
- package/ts/esm/option.d.ts.map +1 -1
- package/ts/esm/option.js.map +1 -1
- package/ts/esm/poller.d.ts +9 -2
- package/ts/esm/poller.d.ts.map +1 -1
- package/ts/esm/poller.js +8 -3
- package/ts/esm/poller.js.map +1 -1
- package/ts/esm/promise-sleep.d.ts.map +1 -1
- package/ts/esm/promise-sleep.js.map +1 -1
- package/ts/esm/resolve-once.d.ts +31 -34
- package/ts/esm/resolve-once.d.ts.map +1 -1
- package/ts/esm/resolve-once.js +83 -41
- package/ts/esm/resolve-once.js.map +1 -1
- package/ts/esm/resolve-once.test.js +119 -31
- package/ts/esm/resolve-once.test.js.map +1 -1
- package/ts/esm/result.d.ts.map +1 -1
- package/ts/esm/result.js.map +1 -1
- package/ts/esm/runtime.d.ts.map +1 -1
- package/ts/esm/runtime.js.map +1 -1
- package/ts/esm/sys-env.d.ts.map +1 -1
- package/ts/esm/sys-env.js.map +1 -1
- package/ts/esm/timeouted.d.ts.map +1 -1
- package/ts/esm/timeouted.js.map +1 -1
- package/ts/esm/tracer.d.ts.map +1 -1
- package/ts/esm/tracer.js.map +1 -1
- package/ts/esm/txt-en-decoder.d.ts +1 -1
- package/ts/esm/txt-en-decoder.d.ts.map +1 -1
- package/ts/esm/txt-en-decoder.js +2 -5
- package/ts/esm/txt-en-decoder.js.map +1 -1
- package/ts/esm/uri.d.ts.map +1 -1
- package/ts/esm/uri.js.map +1 -1
- package/ts/esm/utils/coerce-uint8.d.ts.map +1 -1
- package/ts/esm/utils/coerce-uint8.js.map +1 -1
- package/ts/esm/utils/console-write-stream.d.ts.map +1 -1
- package/ts/esm/utils/console-write-stream.js.map +1 -1
- package/ts/esm/utils/consume.d.ts.map +1 -1
- package/ts/esm/utils/consume.js.map +1 -1
- package/ts/esm/utils/fanout-write-stream.d.ts.map +1 -1
- package/ts/esm/utils/fanout-write-stream.js.map +1 -1
- package/ts/esm/utils/get-params-result.d.ts.map +1 -1
- package/ts/esm/utils/get-params-result.js.map +1 -1
- package/ts/esm/utils/rebuffer.d.ts.map +1 -1
- package/ts/esm/utils/rebuffer.js.map +1 -1
- package/ts/esm/utils/relative-path.d.ts.map +1 -1
- package/ts/esm/utils/relative-path.js.map +1 -1
- package/ts/esm/utils/sorted-object.d.ts.map +1 -1
- package/ts/esm/utils/sorted-object.js.map +1 -1
- package/ts/esm/utils/stream-map.d.ts.map +1 -1
- package/ts/esm/utils/stream-map.js.map +1 -1
- package/ts/esm/utils/stream2string.d.ts.map +1 -1
- package/ts/esm/utils/stream2string.js.map +1 -1
- package/ts/esm/utils/string2stream.d.ts.map +1 -1
- package/ts/esm/utils/string2stream.js.map +1 -1
- package/ts/esm/utils/stripper.d.ts.map +1 -1
- package/ts/esm/utils/stripper.js.map +1 -1
- package/ts/esm/utils/to-sorted.d.ts.map +1 -1
- package/ts/esm/utils/to-sorted.js.map +1 -1
- package/ts/esm/utils/uint8array-equal.d.ts.map +1 -1
- package/ts/esm/utils/uint8array-equal.js.map +1 -1
- package/ts/esm/version.d.ts.map +1 -1
- package/ts/esm/version.js +1 -1
- package/ts/esm/version.js.map +1 -1
package/src/on-func.ts
CHANGED
|
@@ -38,6 +38,44 @@ interface ReturnOnFunc<Args extends any[]> {
|
|
|
38
38
|
|
|
39
39
|
type ExtractArgs<T> = T extends (...args: infer A) => unknown ? A : never;
|
|
40
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Creates a type-safe event emitter for a specific function signature.
|
|
43
|
+
*
|
|
44
|
+
* OnFunc provides a simple pub/sub pattern where multiple listeners can be
|
|
45
|
+
* registered for a specific function signature. All listeners are invoked
|
|
46
|
+
* when the event is triggered, with errors caught and ignored. Supports
|
|
47
|
+
* both synchronous and asynchronous invocation.
|
|
48
|
+
*
|
|
49
|
+
* @template Fn - The function signature that listeners must match
|
|
50
|
+
* @returns Event emitter with register, invoke, invokeAsync, and clear methods
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* // Create emitter for specific function signature
|
|
55
|
+
* const onUserLogin = OnFunc<(userId: string, timestamp: Date) => void>();
|
|
56
|
+
*
|
|
57
|
+
* // Register listeners (returns unregister function)
|
|
58
|
+
* const unsubscribe1 = onUserLogin((userId, timestamp) => {
|
|
59
|
+
* console.log(`User ${userId} logged in at ${timestamp}`);
|
|
60
|
+
* });
|
|
61
|
+
*
|
|
62
|
+
* const unsubscribe2 = onUserLogin((userId) => {
|
|
63
|
+
* trackAnalytics('login', userId);
|
|
64
|
+
* });
|
|
65
|
+
*
|
|
66
|
+
* // Trigger all listeners
|
|
67
|
+
* onUserLogin.invoke('user123', new Date());
|
|
68
|
+
*
|
|
69
|
+
* // Async invocation
|
|
70
|
+
* await onUserLogin.invokeAsync('user456', new Date());
|
|
71
|
+
*
|
|
72
|
+
* // Unregister specific listener
|
|
73
|
+
* unsubscribe1();
|
|
74
|
+
*
|
|
75
|
+
* // Clear all listeners
|
|
76
|
+
* onUserLogin.clear();
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
41
79
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
42
80
|
export function OnFunc<Fn extends (...args: any[]) => unknown>(): ReturnOnFunc<ExtractArgs<Fn>> {
|
|
43
81
|
const instance = new OnFuncInstance<ExtractArgs<Fn>>();
|
package/src/option.ts
CHANGED
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Option type for representing values that may or may not exist.
|
|
3
|
+
*
|
|
4
|
+
* Option is a type-safe way to handle nullable values, similar to Rust's Option type.
|
|
5
|
+
* It forces explicit handling of both present (Some) and absent (None) cases without
|
|
6
|
+
* using null or undefined.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of the value when present
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* function findUser(id: string): Option<User> {
|
|
13
|
+
* const user = users.find(u => u.id === id);
|
|
14
|
+
* return user ? Option.Some(user) : Option.None();
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* const result = findUser('123');
|
|
18
|
+
* if (result.IsSome()) {
|
|
19
|
+
* console.log('Found user:', result.Unwrap());
|
|
20
|
+
* } else {
|
|
21
|
+
* console.log('User not found');
|
|
22
|
+
* }
|
|
23
|
+
*
|
|
24
|
+
* // Or use From to convert from nullable
|
|
25
|
+
* const maybeUser = Option.From(users[0]); // Some if exists, None if undefined
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
1
28
|
export abstract class Option<T> {
|
|
2
29
|
static Some<T>(t: T): Option<T> {
|
|
3
30
|
return new Some(t);
|
package/src/poller.ts
CHANGED
|
@@ -52,15 +52,23 @@ export type PollActionResult<T> =
|
|
|
52
52
|
| PurPollAbortActionResult;
|
|
53
53
|
|
|
54
54
|
export const FOREVER = 2147483647; // Maximum setTimeout delay
|
|
55
|
-
export interface PollerOptions {
|
|
55
|
+
export interface PollerOptions<CTX> {
|
|
56
56
|
readonly intervalMs: number;
|
|
57
57
|
readonly actionTimeoutMs: number; // not -1 it means if a timeout occures the action is retried in the next interval
|
|
58
58
|
readonly timeoutMs: number;
|
|
59
59
|
readonly exponentialBackoff: boolean;
|
|
60
60
|
readonly abortSignal?: AbortSignal;
|
|
61
|
+
readonly ctx: CTX;
|
|
61
62
|
}
|
|
62
63
|
|
|
63
64
|
export type PollerResult<T> = PollSuccessActionResult<T> | PollErrorActionResult | PollTimeoutActionResult | PollAbortActionResult;
|
|
65
|
+
export interface PollerCtx<CTX> {
|
|
66
|
+
readonly ctx: CTX;
|
|
67
|
+
readonly stats: PollerStats;
|
|
68
|
+
readonly abortSignal: AbortSignal;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export type PollerFunc<T, CTX> = (state: PollerCtx<CTX>) => Promise<PollActionResult<T>>;
|
|
64
72
|
|
|
65
73
|
function doneStats(stats: Writable<PollerStats> & { startTime: number }): PollerStats {
|
|
66
74
|
stats.totalElapsedMs = Date.now() - stats.startTime;
|
|
@@ -71,12 +79,12 @@ function doneStats(stats: Writable<PollerStats> & { startTime: number }): Poller
|
|
|
71
79
|
};
|
|
72
80
|
}
|
|
73
81
|
|
|
74
|
-
async function interPoller<
|
|
75
|
-
fn:
|
|
76
|
-
options: Writable<Omit<PollerOptions
|
|
82
|
+
async function interPoller<R, CTX>(
|
|
83
|
+
fn: PollerFunc<R, CTX>,
|
|
84
|
+
options: Writable<Omit<PollerOptions<CTX>, "abortSignal">>,
|
|
77
85
|
stats: Writable<PollerStats> & { readonly startTime: number },
|
|
78
86
|
abortController: AbortController,
|
|
79
|
-
): Promise<PollerResult<
|
|
87
|
+
): Promise<PollerResult<R>> {
|
|
80
88
|
do {
|
|
81
89
|
// let result: PollActionResult<T>;
|
|
82
90
|
try {
|
|
@@ -92,19 +100,23 @@ async function interPoller<T>(
|
|
|
92
100
|
const fnAbortController = new AbortController();
|
|
93
101
|
fnAbortController.signal.addEventListener("abort", onAbort, { once: true });
|
|
94
102
|
|
|
95
|
-
const races = [
|
|
96
|
-
fn(
|
|
103
|
+
const races: Promise<PollActionResult<R>>[] = [
|
|
104
|
+
fn({
|
|
105
|
+
ctx: options.ctx,
|
|
106
|
+
stats,
|
|
107
|
+
abortSignal: fnAbortController.signal,
|
|
108
|
+
}).finally(() => {
|
|
97
109
|
// abort all other waits
|
|
98
|
-
fnAbortController.abort();
|
|
110
|
+
fnAbortController.abort("action: kill other waits");
|
|
99
111
|
}),
|
|
100
112
|
abortCheck.asPromise().finally(() => {
|
|
101
113
|
// abort all other waits
|
|
102
|
-
fnAbortController.abort();
|
|
114
|
+
fnAbortController.abort("abortcheck: kill other waits");
|
|
103
115
|
}),
|
|
104
116
|
];
|
|
105
117
|
if (options.actionTimeoutMs > 0) {
|
|
106
118
|
races.push(
|
|
107
|
-
sleep(options.actionTimeoutMs, fnAbortController.signal).then((res): PollActionResult<
|
|
119
|
+
sleep(options.actionTimeoutMs, fnAbortController.signal).then((res): PollActionResult<R> => {
|
|
108
120
|
// abort all other waits
|
|
109
121
|
fnAbortController.abort(new Error("poller action timeout"));
|
|
110
122
|
switch (res.state) {
|
|
@@ -120,7 +132,7 @@ async function interPoller<T>(
|
|
|
120
132
|
}),
|
|
121
133
|
);
|
|
122
134
|
}
|
|
123
|
-
const result = await Promise.race<PollActionResult<
|
|
135
|
+
const result = await Promise.race<PollActionResult<R>>(races).finally(() => {
|
|
124
136
|
fnAbortController.signal.removeEventListener("abort", onAbort);
|
|
125
137
|
});
|
|
126
138
|
switch (result.state) {
|
|
@@ -173,14 +185,50 @@ async function interPoller<T>(
|
|
|
173
185
|
} while (true);
|
|
174
186
|
}
|
|
175
187
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
188
|
+
/**
|
|
189
|
+
* Repeatedly polls an asynchronous function until a terminal state is reached.
|
|
190
|
+
*
|
|
191
|
+
* The poller executes the provided function at regular intervals and supports:
|
|
192
|
+
* - Exponential backoff for retry intervals
|
|
193
|
+
* - Timeouts for individual actions and overall polling
|
|
194
|
+
* - Abort signal for cancellation
|
|
195
|
+
* - Detailed statistics tracking (attempts, intervals, elapsed time)
|
|
196
|
+
*
|
|
197
|
+
* @template R - The type of the successful result value
|
|
198
|
+
* @param fn - Function to poll that returns a PollActionResult indicating whether to continue waiting, succeed, error, timeout, or abort
|
|
199
|
+
* @param ioptions - Optional configuration:
|
|
200
|
+
* - intervalMs: Time between poll attempts in milliseconds (default: 1000)
|
|
201
|
+
* - timeoutMs: Total timeout in milliseconds, -1 for forever (default: 30000)
|
|
202
|
+
* - actionTimeoutMs: Timeout for each individual action attempt, -1 for forever (default: -1)
|
|
203
|
+
* - exponentialBackoff: Whether to double the interval after each attempt (default: auto-enabled if timeoutMs is FOREVER)
|
|
204
|
+
* - abortSignal: Optional AbortSignal to cancel polling
|
|
205
|
+
*
|
|
206
|
+
* @returns Promise resolving to a PollerResult with state, statistics, and result/error/reason depending on the outcome
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```typescript
|
|
210
|
+
* const result = await poller(async () => {
|
|
211
|
+
* const status = await checkStatus();
|
|
212
|
+
* if (status.ready) {
|
|
213
|
+
* return { state: 'success', result: status.data };
|
|
214
|
+
* }
|
|
215
|
+
* return { state: 'waiting' };
|
|
216
|
+
* }, { intervalMs: 2000, timeoutMs: 60000 });
|
|
217
|
+
*
|
|
218
|
+
* if (result.state === 'success') {
|
|
219
|
+
* console.log('Got result:', result.result);
|
|
220
|
+
* }
|
|
221
|
+
* ```
|
|
222
|
+
*/
|
|
223
|
+
export async function poller<R, CTX = void>(
|
|
224
|
+
fn: PollerFunc<R, CTX>,
|
|
225
|
+
ioptions: Partial<PollerOptions<CTX>> = {},
|
|
226
|
+
): Promise<PollerResult<R>> {
|
|
227
|
+
const options: PollerOptions<CTX> = {
|
|
181
228
|
intervalMs: 1000,
|
|
182
229
|
timeoutMs: 30000, // -1 means forever
|
|
183
230
|
actionTimeoutMs: -1, // forever
|
|
231
|
+
ctx: undefined as unknown as CTX,
|
|
184
232
|
...ioptions,
|
|
185
233
|
exponentialBackoff:
|
|
186
234
|
typeof ioptions.exponentialBackoff === "boolean" ? ioptions.exponentialBackoff : ioptions.timeoutMs === FOREVER,
|
|
@@ -206,7 +254,7 @@ export async function poller<T>(
|
|
|
206
254
|
options.abortSignal.addEventListener("abort", dispatchAbort, { once: true });
|
|
207
255
|
}
|
|
208
256
|
}
|
|
209
|
-
const races = [interPoller(fn, options, stats, abortController)];
|
|
257
|
+
const races = [interPoller<R, CTX>(fn, options, stats, abortController)];
|
|
210
258
|
if (options.timeoutMs > 0) {
|
|
211
259
|
races.push(
|
|
212
260
|
sleep(options.timeoutMs, abortController.signal)
|
package/src/promise-sleep.ts
CHANGED
|
@@ -33,12 +33,40 @@ export interface SleepAbort extends SleepBase {
|
|
|
33
33
|
export type SleepResult = SleepOk | SleepErr | SleepAbort;
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
36
|
+
* Pauses execution for a specified duration with optional abort support.
|
|
37
37
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
38
|
+
* Returns a SleepResult discriminated union indicating success, error, or abort.
|
|
39
|
+
* Unlike a plain setTimeout promise, this provides detailed state information
|
|
40
|
+
* through the result object. Negative durations resolve immediately as success.
|
|
41
|
+
* When aborted via AbortSignal, cleans up the timer and returns abort state.
|
|
40
42
|
*
|
|
41
|
-
*
|
|
43
|
+
* @param ms - Duration to sleep in milliseconds (negative values resolve immediately)
|
|
44
|
+
* @param signal - Optional AbortSignal to cancel the sleep early
|
|
45
|
+
* @returns Promise resolving to SleepResult with state information
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* // Basic sleep
|
|
50
|
+
* const result = await sleep(500);
|
|
51
|
+
* if (result.isOk) {
|
|
52
|
+
* console.log('Slept for 500ms');
|
|
53
|
+
* }
|
|
54
|
+
*
|
|
55
|
+
* // With abort signal
|
|
56
|
+
* const controller = new AbortController();
|
|
57
|
+
* setTimeout(() => controller.abort(), 100);
|
|
58
|
+
*
|
|
59
|
+
* const result = await sleep(1000, controller.signal);
|
|
60
|
+
* if (result.isAborted) {
|
|
61
|
+
* console.log('Sleep was aborted:', result.reason);
|
|
62
|
+
* }
|
|
63
|
+
*
|
|
64
|
+
* // Check if already aborted
|
|
65
|
+
* const aborted = new AbortController();
|
|
66
|
+
* aborted.abort();
|
|
67
|
+
* const result = await sleep(1000, aborted.signal);
|
|
68
|
+
* // Immediately returns with isAborted: true
|
|
69
|
+
* ```
|
|
42
70
|
*/
|
|
43
71
|
export async function sleep(ms: number, signal?: AbortSignal): Promise<SleepResult> {
|
|
44
72
|
if (ms < 0) {
|