@adviser/cement 0.5.2 → 0.5.4
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/base-basic-sys-abstraction.test.cjs +12 -13
- package/cjs/base-basic-sys-abstraction.test.cjs.map +1 -1
- package/cjs/bin2text.test.cjs +15 -14
- package/cjs/bin2text.test.cjs.map +1 -1
- package/cjs/coerce-binary.test.cjs +16 -15
- package/cjs/coerce-binary.test.cjs.map +1 -1
- package/cjs/crypto.test.cjs +9 -8
- package/cjs/crypto.test.cjs.map +1 -1
- package/cjs/future.test.cjs +12 -11
- package/cjs/future.test.cjs.map +1 -1
- package/cjs/http_header.test.cjs +13 -13
- package/cjs/http_header.test.cjs.map +1 -1
- package/cjs/index.cjs +3 -0
- package/cjs/index.cjs.map +1 -1
- package/cjs/index.d.ts +3 -0
- package/cjs/index.d.ts.map +1 -1
- package/cjs/is-json.test.cjs +59 -58
- package/cjs/is-json.test.cjs.map +1 -1
- package/cjs/is-promise.test.cjs +19 -19
- package/cjs/is-promise.test.cjs.map +1 -1
- package/cjs/json-en-decoder.test.cjs +13 -12
- package/cjs/json-en-decoder.test.cjs.map +1 -1
- package/cjs/keyed-ng.test.cjs +27 -26
- package/cjs/keyed-ng.test.cjs.map +1 -1
- package/cjs/logger.test.cjs +178 -179
- package/cjs/logger.test.cjs.map +1 -1
- package/cjs/lru-map-set.test.cjs +67 -66
- package/cjs/lru-map-set.test.cjs.map +1 -1
- package/cjs/mutable-url.test.cjs +44 -44
- package/cjs/mutable-url.test.cjs.map +1 -1
- package/cjs/node-fs/mock-file-service.test.cjs +7 -6
- package/cjs/node-fs/mock-file-service.test.cjs.map +1 -1
- package/cjs/node-fs/node-sys-abstraction.test.cjs +13 -12
- package/cjs/node-fs/node-sys-abstraction.test.cjs.map +1 -1
- package/cjs/on-func.cjs +15 -1
- package/cjs/on-func.cjs.map +1 -1
- package/cjs/on-func.d.ts +1 -0
- package/cjs/on-func.d.ts.map +1 -1
- package/cjs/on-func.test.cjs +62 -29
- package/cjs/on-func.test.cjs.map +1 -1
- package/cjs/on-func.test.d.ts.map +1 -1
- package/cjs/option.cjs +2 -2
- package/cjs/option.cjs.map +1 -1
- package/cjs/option.d.ts +1 -1
- package/cjs/option.d.ts.map +1 -1
- package/cjs/path-ops.test.cjs +40 -39
- package/cjs/path-ops.test.cjs.map +1 -1
- package/cjs/poller.test.cjs +51 -51
- package/cjs/poller.test.cjs.map +1 -1
- package/cjs/promise-sleep.test.cjs +35 -34
- package/cjs/promise-sleep.test.cjs.map +1 -1
- package/cjs/resolve-once.cjs +58 -39
- package/cjs/resolve-once.cjs.map +1 -1
- package/cjs/resolve-once.d.ts +32 -25
- package/cjs/resolve-once.d.ts.map +1 -1
- package/cjs/resolve-once.test.cjs +337 -309
- package/cjs/resolve-once.test.cjs.map +1 -1
- package/cjs/result.cjs +6 -0
- package/cjs/result.cjs.map +1 -1
- package/cjs/result.d.ts +2 -0
- package/cjs/result.d.ts.map +1 -1
- package/cjs/result.test.cjs +68 -44
- package/cjs/result.test.cjs.map +1 -1
- package/cjs/sys-env.test.cjs +67 -66
- package/cjs/sys-env.test.cjs.map +1 -1
- package/cjs/test/mock-logger.test.cjs +14 -13
- package/cjs/test/mock-logger.test.cjs.map +1 -1
- package/cjs/timeouted.cjs +13 -18
- package/cjs/timeouted.cjs.map +1 -1
- package/cjs/timeouted.d.ts +23 -27
- package/cjs/timeouted.d.ts.map +1 -1
- package/cjs/timeouted.test.cjs +337 -307
- package/cjs/timeouted.test.cjs.map +1 -1
- package/cjs/tracer.test.cjs +32 -31
- package/cjs/tracer.test.cjs.map +1 -1
- package/cjs/txt-en-decoder.test.cjs +31 -31
- package/cjs/txt-en-decoder.test.cjs.map +1 -1
- package/cjs/uri.test.cjs +239 -239
- package/cjs/uri.test.cjs.map +1 -1
- package/cjs/utils/consume.test.cjs +22 -22
- package/cjs/utils/consume.test.cjs.map +1 -1
- package/cjs/utils/rebuffer.test.cjs +40 -39
- package/cjs/utils/rebuffer.test.cjs.map +1 -1
- package/cjs/utils/relative-path.test.cjs +125 -124
- package/cjs/utils/relative-path.test.cjs.map +1 -1
- package/cjs/utils/sorted-object.test.cjs +8 -7
- package/cjs/utils/sorted-object.test.cjs.map +1 -1
- package/cjs/utils/stream-map.test.cjs +32 -31
- package/cjs/utils/stream-map.test.cjs.map +1 -1
- package/cjs/utils/stream2string.test.cjs +5 -5
- package/cjs/utils/stream2string.test.cjs.map +1 -1
- package/cjs/utils/string2stream.test.cjs +5 -5
- package/cjs/utils/string2stream.test.cjs.map +1 -1
- package/cjs/utils/stripper.test.cjs +21 -20
- package/cjs/utils/stripper.test.cjs.map +1 -1
- package/cjs/utils/to-sorted.d.ts +1 -1
- package/cjs/utils/to-sorted.d.ts.map +1 -1
- package/cjs/utils/to-sorted.test.cjs +27 -27
- package/cjs/utils/to-sorted.test.cjs.map +1 -1
- package/cjs/version.cjs +1 -1
- package/cjs/wait-for-value.cjs +49 -0
- package/cjs/wait-for-value.cjs.map +1 -0
- package/cjs/wait-for-value.d.ts +13 -0
- package/cjs/wait-for-value.d.ts.map +1 -0
- package/cjs/wait-for-value.test.cjs +86 -0
- package/cjs/wait-for-value.test.cjs.map +1 -0
- package/cjs/wait-for-value.test.d.ts +2 -0
- package/cjs/wait-for-value.test.d.ts.map +1 -0
- package/deno.json +1 -1
- package/esm/base-basic-sys-abstraction.test.js +1 -2
- package/esm/base-basic-sys-abstraction.test.js.map +1 -1
- package/esm/bin2text.test.js +2 -1
- package/esm/bin2text.test.js.map +1 -1
- package/esm/coerce-binary.test.js +1 -0
- package/esm/coerce-binary.test.js.map +1 -1
- package/esm/crypto.test.js +2 -1
- package/esm/crypto.test.js.map +1 -1
- package/esm/future.test.js +1 -0
- package/esm/future.test.js.map +1 -1
- package/esm/http_header.test.js +1 -1
- package/esm/http_header.test.js.map +1 -1
- package/esm/index.d.ts +3 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -0
- package/esm/index.js.map +1 -1
- package/esm/is-json.test.js +2 -1
- package/esm/is-json.test.js.map +1 -1
- package/esm/is-promise.test.js +2 -2
- package/esm/is-promise.test.js.map +1 -1
- package/esm/json-en-decoder.test.js +2 -1
- package/esm/json-en-decoder.test.js.map +1 -1
- package/esm/keyed-ng.test.js +8 -7
- package/esm/keyed-ng.test.js.map +1 -1
- package/esm/load-asset.test.js +2 -3
- package/esm/load-asset.test.js.map +1 -1
- package/esm/logger.test.js +2 -3
- package/esm/logger.test.js.map +1 -1
- package/esm/lru-map-set.test.js +1 -0
- package/esm/lru-map-set.test.js.map +1 -1
- package/esm/mutable-url.test.js +1 -1
- package/esm/mutable-url.test.js.map +1 -1
- package/esm/node-fs/mock-file-service.test.js +1 -0
- package/esm/node-fs/mock-file-service.test.js.map +1 -1
- package/esm/node-fs/node-sys-abstraction.test.js +1 -0
- package/esm/node-fs/node-sys-abstraction.test.js.map +1 -1
- package/esm/on-func.d.ts +1 -0
- package/esm/on-func.d.ts.map +1 -1
- package/esm/on-func.js +15 -1
- package/esm/on-func.js.map +1 -1
- package/esm/on-func.test.d.ts.map +1 -1
- package/esm/on-func.test.js +36 -3
- package/esm/on-func.test.js.map +1 -1
- package/esm/option.d.ts +1 -1
- package/esm/option.d.ts.map +1 -1
- package/esm/option.js +2 -2
- package/esm/option.js.map +1 -1
- package/esm/path-ops.test.js +2 -1
- package/esm/path-ops.test.js.map +1 -1
- package/esm/poller.test.js +2 -2
- package/esm/poller.test.js.map +1 -1
- package/esm/promise-sleep.test.js +2 -1
- package/esm/promise-sleep.test.js.map +1 -1
- package/esm/resolve-once.d.ts +32 -25
- package/esm/resolve-once.d.ts.map +1 -1
- package/esm/resolve-once.js +58 -39
- package/esm/resolve-once.js.map +1 -1
- package/esm/resolve-once.test.js +59 -31
- package/esm/resolve-once.test.js.map +1 -1
- package/esm/result.d.ts +2 -0
- package/esm/result.d.ts.map +1 -1
- package/esm/result.js +6 -0
- package/esm/result.js.map +1 -1
- package/esm/result.test.js +25 -1
- package/esm/result.test.js.map +1 -1
- package/esm/sys-env.test.js +1 -0
- package/esm/sys-env.test.js.map +1 -1
- package/esm/test/mock-logger.test.js +1 -0
- package/esm/test/mock-logger.test.js.map +1 -1
- package/esm/timeouted.d.ts +23 -27
- package/esm/timeouted.d.ts.map +1 -1
- package/esm/timeouted.js +13 -18
- package/esm/timeouted.js.map +1 -1
- package/esm/timeouted.test.js +33 -3
- package/esm/timeouted.test.js.map +1 -1
- package/esm/tracer.test.js +1 -0
- package/esm/tracer.test.js.map +1 -1
- package/esm/txt-en-decoder.test.js +2 -2
- package/esm/txt-en-decoder.test.js.map +1 -1
- package/esm/uri.test.js +2 -2
- package/esm/uri.test.js.map +1 -1
- package/esm/utils/consume.test.js +2 -2
- package/esm/utils/consume.test.js.map +1 -1
- package/esm/utils/rebuffer.test.js +2 -1
- package/esm/utils/rebuffer.test.js.map +1 -1
- package/esm/utils/relative-path.test.js +2 -1
- package/esm/utils/relative-path.test.js.map +1 -1
- package/esm/utils/sorted-object.test.js +2 -1
- package/esm/utils/sorted-object.test.js.map +1 -1
- package/esm/utils/stream-map.test.js +2 -1
- package/esm/utils/stream-map.test.js.map +1 -1
- package/esm/utils/stream2string.test.js +2 -2
- package/esm/utils/stream2string.test.js.map +1 -1
- package/esm/utils/string2stream.test.js +2 -2
- package/esm/utils/string2stream.test.js.map +1 -1
- package/esm/utils/stripper.test.js +2 -1
- package/esm/utils/stripper.test.js.map +1 -1
- package/esm/utils/to-sorted.d.ts +1 -1
- package/esm/utils/to-sorted.d.ts.map +1 -1
- package/esm/utils/to-sorted.test.js +2 -2
- package/esm/utils/to-sorted.test.js.map +1 -1
- package/esm/version.js +1 -1
- package/esm/wait-for-value.d.ts +13 -0
- package/esm/wait-for-value.d.ts.map +1 -0
- package/esm/wait-for-value.js +45 -0
- package/esm/wait-for-value.js.map +1 -0
- package/esm/wait-for-value.test.d.ts +2 -0
- package/esm/wait-for-value.test.d.ts.map +1 -0
- package/esm/wait-for-value.test.js +84 -0
- package/esm/wait-for-value.test.js.map +1 -0
- package/package.json +2 -2
- package/src/index.ts +3 -0
- package/src/on-func.ts +39 -1
- package/src/option.ts +2 -2
- package/src/resolve-once.ts +166 -139
- package/src/result.ts +7 -0
- package/src/timeouted.ts +39 -65
- package/src/utils/to-sorted.ts +1 -1
- package/src/wait-for-value.ts +111 -0
- package/ts/cjs/base-basic-sys-abstraction.test.js +12 -13
- package/ts/cjs/base-basic-sys-abstraction.test.js.map +1 -1
- package/ts/cjs/bin2text.test.js +15 -14
- package/ts/cjs/bin2text.test.js.map +1 -1
- package/ts/cjs/coerce-binary.test.js +16 -15
- package/ts/cjs/coerce-binary.test.js.map +1 -1
- package/ts/cjs/crypto.test.js +9 -8
- package/ts/cjs/crypto.test.js.map +1 -1
- package/ts/cjs/future.test.js +12 -11
- package/ts/cjs/future.test.js.map +1 -1
- package/ts/cjs/http_header.test.js +13 -13
- package/ts/cjs/http_header.test.js.map +1 -1
- package/ts/cjs/index.d.ts +3 -0
- package/ts/cjs/index.d.ts.map +1 -1
- package/ts/cjs/index.js +3 -0
- package/ts/cjs/index.js.map +1 -1
- package/ts/cjs/is-json.test.js +59 -58
- package/ts/cjs/is-json.test.js.map +1 -1
- package/ts/cjs/is-promise.test.js +19 -19
- package/ts/cjs/is-promise.test.js.map +1 -1
- package/ts/cjs/json-en-decoder.test.js +13 -12
- package/ts/cjs/json-en-decoder.test.js.map +1 -1
- package/ts/cjs/keyed-ng.test.js +27 -26
- package/ts/cjs/keyed-ng.test.js.map +1 -1
- package/ts/cjs/logger.test.js +178 -179
- package/ts/cjs/logger.test.js.map +1 -1
- package/ts/cjs/lru-map-set.test.js +67 -66
- package/ts/cjs/lru-map-set.test.js.map +1 -1
- package/ts/cjs/mutable-url.test.js +44 -44
- package/ts/cjs/mutable-url.test.js.map +1 -1
- package/ts/cjs/node-fs/mock-file-service.test.js +7 -6
- package/ts/cjs/node-fs/mock-file-service.test.js.map +1 -1
- package/ts/cjs/node-fs/node-sys-abstraction.test.js +13 -12
- package/ts/cjs/node-fs/node-sys-abstraction.test.js.map +1 -1
- package/ts/cjs/on-func.d.ts +1 -0
- package/ts/cjs/on-func.d.ts.map +1 -1
- package/ts/cjs/on-func.js +15 -1
- package/ts/cjs/on-func.js.map +1 -1
- package/ts/cjs/on-func.test.d.ts.map +1 -1
- package/ts/cjs/on-func.test.js +62 -29
- package/ts/cjs/on-func.test.js.map +1 -1
- package/ts/cjs/option.d.ts +1 -1
- package/ts/cjs/option.d.ts.map +1 -1
- package/ts/cjs/option.js +2 -2
- package/ts/cjs/option.js.map +1 -1
- package/ts/cjs/path-ops.test.js +40 -39
- package/ts/cjs/path-ops.test.js.map +1 -1
- package/ts/cjs/poller.test.js +51 -51
- package/ts/cjs/poller.test.js.map +1 -1
- package/ts/cjs/promise-sleep.test.js +35 -34
- package/ts/cjs/promise-sleep.test.js.map +1 -1
- package/ts/cjs/resolve-once.d.ts +32 -25
- package/ts/cjs/resolve-once.d.ts.map +1 -1
- package/ts/cjs/resolve-once.js +58 -39
- package/ts/cjs/resolve-once.js.map +1 -1
- package/ts/cjs/resolve-once.test.js +337 -309
- package/ts/cjs/resolve-once.test.js.map +1 -1
- package/ts/cjs/result.d.ts +2 -0
- package/ts/cjs/result.d.ts.map +1 -1
- package/ts/cjs/result.js +6 -0
- package/ts/cjs/result.js.map +1 -1
- package/ts/cjs/result.test.js +68 -44
- package/ts/cjs/result.test.js.map +1 -1
- package/ts/cjs/sys-env.test.js +67 -66
- package/ts/cjs/sys-env.test.js.map +1 -1
- package/ts/cjs/test/mock-logger.test.js +14 -13
- package/ts/cjs/test/mock-logger.test.js.map +1 -1
- package/ts/cjs/timeouted.d.ts +23 -27
- package/ts/cjs/timeouted.d.ts.map +1 -1
- package/ts/cjs/timeouted.js +13 -18
- package/ts/cjs/timeouted.js.map +1 -1
- package/ts/cjs/timeouted.test.js +337 -307
- package/ts/cjs/timeouted.test.js.map +1 -1
- package/ts/cjs/tracer.test.js +32 -31
- package/ts/cjs/tracer.test.js.map +1 -1
- package/ts/cjs/txt-en-decoder.test.js +31 -31
- package/ts/cjs/txt-en-decoder.test.js.map +1 -1
- package/ts/cjs/uri.test.js +239 -239
- package/ts/cjs/uri.test.js.map +1 -1
- package/ts/cjs/utils/consume.test.js +22 -22
- package/ts/cjs/utils/consume.test.js.map +1 -1
- package/ts/cjs/utils/rebuffer.test.js +40 -39
- package/ts/cjs/utils/rebuffer.test.js.map +1 -1
- package/ts/cjs/utils/relative-path.test.js +125 -124
- package/ts/cjs/utils/relative-path.test.js.map +1 -1
- package/ts/cjs/utils/sorted-object.test.js +8 -7
- package/ts/cjs/utils/sorted-object.test.js.map +1 -1
- package/ts/cjs/utils/stream-map.test.js +32 -31
- package/ts/cjs/utils/stream-map.test.js.map +1 -1
- package/ts/cjs/utils/stream2string.test.js +5 -5
- package/ts/cjs/utils/stream2string.test.js.map +1 -1
- package/ts/cjs/utils/string2stream.test.js +5 -5
- package/ts/cjs/utils/string2stream.test.js.map +1 -1
- package/ts/cjs/utils/stripper.test.js +21 -20
- package/ts/cjs/utils/stripper.test.js.map +1 -1
- package/ts/cjs/utils/to-sorted.d.ts +1 -1
- package/ts/cjs/utils/to-sorted.d.ts.map +1 -1
- package/ts/cjs/utils/to-sorted.test.js +27 -27
- package/ts/cjs/utils/to-sorted.test.js.map +1 -1
- package/ts/cjs/version.js +1 -1
- package/ts/cjs/wait-for-value.d.ts +13 -0
- package/ts/cjs/wait-for-value.d.ts.map +1 -0
- package/ts/cjs/wait-for-value.js +49 -0
- package/ts/cjs/wait-for-value.js.map +1 -0
- package/ts/cjs/wait-for-value.test.d.ts +2 -0
- package/ts/cjs/wait-for-value.test.d.ts.map +1 -0
- package/ts/cjs/wait-for-value.test.js +86 -0
- package/ts/cjs/wait-for-value.test.js.map +1 -0
- package/ts/esm/base-basic-sys-abstraction.test.js +1 -2
- package/ts/esm/base-basic-sys-abstraction.test.js.map +1 -1
- package/ts/esm/bin2text.test.js +2 -1
- package/ts/esm/bin2text.test.js.map +1 -1
- package/ts/esm/coerce-binary.test.js +1 -0
- package/ts/esm/coerce-binary.test.js.map +1 -1
- package/ts/esm/crypto.test.js +2 -1
- package/ts/esm/crypto.test.js.map +1 -1
- package/ts/esm/future.test.js +1 -0
- package/ts/esm/future.test.js.map +1 -1
- package/ts/esm/http_header.test.js +1 -1
- package/ts/esm/http_header.test.js.map +1 -1
- package/ts/esm/index.d.ts +3 -0
- package/ts/esm/index.d.ts.map +1 -1
- package/ts/esm/index.js +3 -0
- package/ts/esm/index.js.map +1 -1
- package/ts/esm/is-json.test.js +2 -1
- package/ts/esm/is-json.test.js.map +1 -1
- package/ts/esm/is-promise.test.js +2 -2
- package/ts/esm/is-promise.test.js.map +1 -1
- package/ts/esm/json-en-decoder.test.js +2 -1
- package/ts/esm/json-en-decoder.test.js.map +1 -1
- package/ts/esm/keyed-ng.test.js +8 -7
- package/ts/esm/keyed-ng.test.js.map +1 -1
- package/ts/esm/load-asset.test.js +2 -3
- package/ts/esm/load-asset.test.js.map +1 -1
- package/ts/esm/logger.test.js +2 -3
- package/ts/esm/logger.test.js.map +1 -1
- package/ts/esm/lru-map-set.test.js +1 -0
- package/ts/esm/lru-map-set.test.js.map +1 -1
- package/ts/esm/mutable-url.test.js +1 -1
- package/ts/esm/mutable-url.test.js.map +1 -1
- package/ts/esm/node-fs/mock-file-service.test.js +1 -0
- package/ts/esm/node-fs/mock-file-service.test.js.map +1 -1
- package/ts/esm/node-fs/node-sys-abstraction.test.js +1 -0
- package/ts/esm/node-fs/node-sys-abstraction.test.js.map +1 -1
- package/ts/esm/on-func.d.ts +1 -0
- package/ts/esm/on-func.d.ts.map +1 -1
- package/ts/esm/on-func.js +15 -1
- package/ts/esm/on-func.js.map +1 -1
- package/ts/esm/on-func.test.d.ts.map +1 -1
- package/ts/esm/on-func.test.js +36 -3
- package/ts/esm/on-func.test.js.map +1 -1
- package/ts/esm/option.d.ts +1 -1
- package/ts/esm/option.d.ts.map +1 -1
- package/ts/esm/option.js +2 -2
- package/ts/esm/option.js.map +1 -1
- package/ts/esm/path-ops.test.js +2 -1
- package/ts/esm/path-ops.test.js.map +1 -1
- package/ts/esm/poller.test.js +2 -2
- package/ts/esm/poller.test.js.map +1 -1
- package/ts/esm/promise-sleep.test.js +2 -1
- package/ts/esm/promise-sleep.test.js.map +1 -1
- package/ts/esm/resolve-once.d.ts +32 -25
- package/ts/esm/resolve-once.d.ts.map +1 -1
- package/ts/esm/resolve-once.js +58 -39
- package/ts/esm/resolve-once.js.map +1 -1
- package/ts/esm/resolve-once.test.js +59 -31
- package/ts/esm/resolve-once.test.js.map +1 -1
- package/ts/esm/result.d.ts +2 -0
- package/ts/esm/result.d.ts.map +1 -1
- package/ts/esm/result.js +6 -0
- package/ts/esm/result.js.map +1 -1
- package/ts/esm/result.test.js +25 -1
- package/ts/esm/result.test.js.map +1 -1
- package/ts/esm/sys-env.test.js +1 -0
- package/ts/esm/sys-env.test.js.map +1 -1
- package/ts/esm/test/mock-logger.test.js +1 -0
- package/ts/esm/test/mock-logger.test.js.map +1 -1
- package/ts/esm/timeouted.d.ts +23 -27
- package/ts/esm/timeouted.d.ts.map +1 -1
- package/ts/esm/timeouted.js +13 -18
- package/ts/esm/timeouted.js.map +1 -1
- package/ts/esm/timeouted.test.js +33 -3
- package/ts/esm/timeouted.test.js.map +1 -1
- package/ts/esm/tracer.test.js +1 -0
- package/ts/esm/tracer.test.js.map +1 -1
- package/ts/esm/txt-en-decoder.test.js +2 -2
- package/ts/esm/txt-en-decoder.test.js.map +1 -1
- package/ts/esm/uri.test.js +2 -2
- package/ts/esm/uri.test.js.map +1 -1
- package/ts/esm/utils/consume.test.js +2 -2
- package/ts/esm/utils/consume.test.js.map +1 -1
- package/ts/esm/utils/rebuffer.test.js +2 -1
- package/ts/esm/utils/rebuffer.test.js.map +1 -1
- package/ts/esm/utils/relative-path.test.js +2 -1
- package/ts/esm/utils/relative-path.test.js.map +1 -1
- package/ts/esm/utils/sorted-object.test.js +2 -1
- package/ts/esm/utils/sorted-object.test.js.map +1 -1
- package/ts/esm/utils/stream-map.test.js +2 -1
- package/ts/esm/utils/stream-map.test.js.map +1 -1
- package/ts/esm/utils/stream2string.test.js +2 -2
- package/ts/esm/utils/stream2string.test.js.map +1 -1
- package/ts/esm/utils/string2stream.test.js +2 -2
- package/ts/esm/utils/string2stream.test.js.map +1 -1
- package/ts/esm/utils/stripper.test.js +2 -1
- package/ts/esm/utils/stripper.test.js.map +1 -1
- package/ts/esm/utils/to-sorted.d.ts +1 -1
- package/ts/esm/utils/to-sorted.d.ts.map +1 -1
- package/ts/esm/utils/to-sorted.test.js +2 -2
- package/ts/esm/utils/to-sorted.test.js.map +1 -1
- package/ts/esm/version.js +1 -1
- package/ts/esm/wait-for-value.d.ts +13 -0
- package/ts/esm/wait-for-value.d.ts.map +1 -0
- package/ts/esm/wait-for-value.js +45 -0
- package/ts/esm/wait-for-value.js.map +1 -0
- package/ts/esm/wait-for-value.test.d.ts +2 -0
- package/ts/esm/wait-for-value.test.d.ts.map +1 -0
- package/ts/esm/wait-for-value.test.js +84 -0
- package/ts/esm/wait-for-value.test.js.map +1 -0
- package/tsconfig.json +1 -1
package/cjs/timeouted.test.cjs
CHANGED
|
@@ -33,79 +33,79 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
const
|
|
37
|
-
const
|
|
36
|
+
const vitest_1 = require("vitest");
|
|
37
|
+
const cement_1 = require("@adviser/cement");
|
|
38
38
|
const timeouted_js_1 = require("./timeouted.cjs");
|
|
39
|
-
describe("timeoutAction - Success Cases", () => {
|
|
40
|
-
it("should return success for a fast promise", async () => {
|
|
39
|
+
(0, vitest_1.describe)("timeoutAction - Success Cases", () => {
|
|
40
|
+
(0, vitest_1.it)("should return success for a fast promise", async () => {
|
|
41
41
|
const result = await (0, timeouted_js_1.timeouted)(Promise.resolve("hello"), { timeout: 1000 });
|
|
42
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
43
|
-
expect(result.state).toBe("success");
|
|
42
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
43
|
+
(0, vitest_1.expect)(result.state).toBe("success");
|
|
44
44
|
if ((0, timeouted_js_1.isSuccess)(result)) {
|
|
45
|
-
expect(result.value).toBe("hello");
|
|
45
|
+
(0, vitest_1.expect)(result.value).toBe("hello");
|
|
46
46
|
}
|
|
47
|
-
expect(result.duration).toBeLessThan(100);
|
|
47
|
+
(0, vitest_1.expect)(result.duration).toBeLessThan(100);
|
|
48
48
|
});
|
|
49
|
-
it("should return success for a fast action function", async () => {
|
|
49
|
+
(0, vitest_1.it)("should return success for a fast action function", async () => {
|
|
50
50
|
const result = await (0, timeouted_js_1.timeouted)((ctrl) => {
|
|
51
|
-
expect(ctrl).toBeInstanceOf(AbortController);
|
|
51
|
+
(0, vitest_1.expect)(ctrl).toBeInstanceOf(AbortController);
|
|
52
52
|
return Promise.resolve("world");
|
|
53
53
|
}, { timeout: 1000 });
|
|
54
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
54
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
55
55
|
if ((0, timeouted_js_1.isSuccess)(result)) {
|
|
56
|
-
expect(result.value).toBe("world");
|
|
56
|
+
(0, vitest_1.expect)(result.value).toBe("world");
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
|
-
it("should return success with custom context", async () => {
|
|
59
|
+
(0, vitest_1.it)("should return success with custom context", async () => {
|
|
60
60
|
const ctx = { userId: "user123", requestId: 42 };
|
|
61
61
|
const result = await (0, timeouted_js_1.timeouted)(Promise.resolve("data"), { timeout: 1000, ctx });
|
|
62
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
63
|
-
expect(result.ctx).toEqual(ctx);
|
|
62
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
63
|
+
(0, vitest_1.expect)(result.ctx).toEqual(ctx);
|
|
64
64
|
});
|
|
65
|
-
it("should not call onAbortAction on success", async () => {
|
|
66
|
-
const onAbort = vi.fn();
|
|
65
|
+
(0, vitest_1.it)("should not call onAbortAction on success", async () => {
|
|
66
|
+
const onAbort = vitest_1.vi.fn();
|
|
67
67
|
const result = await (0, timeouted_js_1.timeouted)(Promise.resolve("success"), { timeout: 1000, onAbort });
|
|
68
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
69
|
-
expect(onAbort).not.toHaveBeenCalled();
|
|
68
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
69
|
+
(0, vitest_1.expect)(onAbort).not.toHaveBeenCalled();
|
|
70
70
|
});
|
|
71
|
-
it("should cleanup event listeners on success", async () => {
|
|
71
|
+
(0, vitest_1.it)("should cleanup event listeners on success", async () => {
|
|
72
72
|
const controller = new AbortController();
|
|
73
73
|
const result = await (0, timeouted_js_1.timeouted)(Promise.resolve("success"), { timeout: 1000, signal: controller.signal });
|
|
74
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
74
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
75
75
|
controller.abort();
|
|
76
|
-
expect(controller.signal.aborted).toBe(true);
|
|
76
|
+
(0, vitest_1.expect)(controller.signal.aborted).toBe(true);
|
|
77
77
|
});
|
|
78
78
|
});
|
|
79
|
-
describe("timeoutAction - Timeout Cases", () => {
|
|
80
|
-
it("should timeout when action takes too long", async () => {
|
|
79
|
+
(0, vitest_1.describe)("timeoutAction - Timeout Cases", () => {
|
|
80
|
+
(0, vitest_1.it)("should timeout when action takes too long", async () => {
|
|
81
81
|
const result = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("too slow"), 200)), { timeout: 50 });
|
|
82
|
-
expect((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
83
|
-
expect(result.state).toBe("timeout");
|
|
84
|
-
expect(result.duration).toBeGreaterThanOrEqual(45);
|
|
85
|
-
expect(result.duration).toBeLessThan(100);
|
|
82
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
83
|
+
(0, vitest_1.expect)(result.state).toBe("timeout");
|
|
84
|
+
(0, vitest_1.expect)(result.duration).toBeGreaterThanOrEqual(45);
|
|
85
|
+
(0, vitest_1.expect)(result.duration).toBeLessThan(100);
|
|
86
86
|
});
|
|
87
|
-
it("should call onTimeout callback on timeout", async () => {
|
|
88
|
-
const onTimeout = vi.fn();
|
|
87
|
+
(0, vitest_1.it)("should call onTimeout callback on timeout", async () => {
|
|
88
|
+
const onTimeout = vitest_1.vi.fn();
|
|
89
89
|
const result = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("slow"), 200)), { timeout: 50, onTimeout });
|
|
90
|
-
expect((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
91
|
-
expect(onTimeout).toHaveBeenCalledTimes(1);
|
|
90
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
91
|
+
(0, vitest_1.expect)(onTimeout).toHaveBeenCalledTimes(1);
|
|
92
92
|
});
|
|
93
|
-
it("should call onAbortAction on timeout", async () => {
|
|
94
|
-
const onAbort = vi.fn();
|
|
93
|
+
(0, vitest_1.it)("should call onAbortAction on timeout", async () => {
|
|
94
|
+
const onAbort = vitest_1.vi.fn();
|
|
95
95
|
const result = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("slow"), 200)), {
|
|
96
96
|
timeout: 50,
|
|
97
97
|
onAbort,
|
|
98
98
|
});
|
|
99
|
-
expect((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
100
|
-
expect(onAbort).toHaveBeenCalledTimes(0);
|
|
99
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
100
|
+
(0, vitest_1.expect)(onAbort).toHaveBeenCalledTimes(0);
|
|
101
101
|
});
|
|
102
|
-
it("should abort the controller on timeout", async () => {
|
|
102
|
+
(0, vitest_1.it)("should abort the controller on timeout", async () => {
|
|
103
103
|
const controller = new AbortController();
|
|
104
104
|
const result = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("slow"), 200)), { timeout: 50, controller });
|
|
105
|
-
expect((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
106
|
-
expect(controller.signal.aborted).toBe(false);
|
|
105
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
106
|
+
(0, vitest_1.expect)(controller.signal.aborted).toBe(false);
|
|
107
107
|
});
|
|
108
|
-
it("should allow action to use abort signal on timeout", async () => {
|
|
108
|
+
(0, vitest_1.it)("should allow action to use abort signal on timeout", async () => {
|
|
109
109
|
let wasAborted = false;
|
|
110
110
|
const result = await (0, timeouted_js_1.timeouted)(async (ctrl) => {
|
|
111
111
|
return new Promise((resolve) => {
|
|
@@ -115,13 +115,13 @@ describe("timeoutAction - Timeout Cases", () => {
|
|
|
115
115
|
setTimeout(() => resolve("done"), 200);
|
|
116
116
|
});
|
|
117
117
|
}, { timeout: 50 });
|
|
118
|
-
expect((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
118
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
119
119
|
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
120
|
-
expect(wasAborted).toBe(false);
|
|
120
|
+
(0, vitest_1.expect)(wasAborted).toBe(false);
|
|
121
121
|
});
|
|
122
122
|
});
|
|
123
|
-
describe("timeoutAction - Abort Cases", () => {
|
|
124
|
-
it("should abort when external signal is triggered", async () => {
|
|
123
|
+
(0, vitest_1.describe)("timeoutAction - Abort Cases", () => {
|
|
124
|
+
(0, vitest_1.it)("should abort when external signal is triggered", async () => {
|
|
125
125
|
const controller = new AbortController();
|
|
126
126
|
const promise = (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("data"), 200)), {
|
|
127
127
|
timeout: 1000,
|
|
@@ -129,14 +129,14 @@ describe("timeoutAction - Abort Cases", () => {
|
|
|
129
129
|
});
|
|
130
130
|
setTimeout(() => controller.abort("user cancelled"), 50);
|
|
131
131
|
const result = await promise;
|
|
132
|
-
expect((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
133
|
-
expect(result.state).toBe("aborted");
|
|
132
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
133
|
+
(0, vitest_1.expect)(result.state).toBe("aborted");
|
|
134
134
|
if ((0, timeouted_js_1.isAborted)(result)) {
|
|
135
|
-
expect(result.reason).toBe("user cancelled");
|
|
135
|
+
(0, vitest_1.expect)(result.reason).toBe("user cancelled");
|
|
136
136
|
}
|
|
137
137
|
});
|
|
138
|
-
it("should call onAbort callback with reason", async () => {
|
|
139
|
-
const onAbort = vi.fn();
|
|
138
|
+
(0, vitest_1.it)("should call onAbort callback with reason", async () => {
|
|
139
|
+
const onAbort = vitest_1.vi.fn();
|
|
140
140
|
const controller = new AbortController();
|
|
141
141
|
const abortReason = new Error("User initiated abort");
|
|
142
142
|
const promise = (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("data"), 200)), {
|
|
@@ -146,15 +146,15 @@ describe("timeoutAction - Abort Cases", () => {
|
|
|
146
146
|
});
|
|
147
147
|
setTimeout(() => controller.abort(abortReason), 50);
|
|
148
148
|
const result = await promise;
|
|
149
|
-
expect((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
150
|
-
expect(onAbort).toHaveBeenCalledTimes(1);
|
|
151
|
-
expect(onAbort).toHaveBeenCalledWith(abortReason);
|
|
149
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
150
|
+
(0, vitest_1.expect)(onAbort).toHaveBeenCalledTimes(1);
|
|
151
|
+
(0, vitest_1.expect)(onAbort).toHaveBeenCalledWith(abortReason);
|
|
152
152
|
});
|
|
153
|
-
it("should propagate abort to internal controller", async () => {
|
|
153
|
+
(0, vitest_1.it)("should propagate abort to internal controller", async () => {
|
|
154
154
|
const externalController = new AbortController();
|
|
155
155
|
const internalController = new AbortController();
|
|
156
156
|
const promise = (0, timeouted_js_1.timeouted)(async (ctrl) => {
|
|
157
|
-
expect(ctrl).toBe(internalController);
|
|
157
|
+
(0, vitest_1.expect)(ctrl).toBe(internalController);
|
|
158
158
|
return new Promise((resolve) => {
|
|
159
159
|
setTimeout(() => resolve("data"), 200);
|
|
160
160
|
});
|
|
@@ -165,10 +165,10 @@ describe("timeoutAction - Abort Cases", () => {
|
|
|
165
165
|
});
|
|
166
166
|
setTimeout(() => externalController.abort("cancelled"), 50);
|
|
167
167
|
const result = await promise;
|
|
168
|
-
expect((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
169
|
-
expect(internalController.signal.aborted).toBe(true);
|
|
168
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
169
|
+
(0, vitest_1.expect)(internalController.signal.aborted).toBe(true);
|
|
170
170
|
});
|
|
171
|
-
it("should cleanup event listeners on abort", async () => {
|
|
171
|
+
(0, vitest_1.it)("should cleanup event listeners on abort", async () => {
|
|
172
172
|
const controller = new AbortController();
|
|
173
173
|
const promise = (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("data"), 200)), {
|
|
174
174
|
timeout: 1000,
|
|
@@ -176,11 +176,11 @@ describe("timeoutAction - Abort Cases", () => {
|
|
|
176
176
|
});
|
|
177
177
|
setTimeout(() => controller.abort(), 50);
|
|
178
178
|
const result = await promise;
|
|
179
|
-
expect((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
179
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
180
180
|
});
|
|
181
|
-
it("should handle abort with undefined reason", async () => {
|
|
181
|
+
(0, vitest_1.it)("should handle abort with undefined reason", async () => {
|
|
182
182
|
const controller = new AbortController();
|
|
183
|
-
const onAbort = vi.fn();
|
|
183
|
+
const onAbort = vitest_1.vi.fn();
|
|
184
184
|
const promise = (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("data"), 200)), {
|
|
185
185
|
timeout: 1000,
|
|
186
186
|
signal: controller.signal,
|
|
@@ -188,87 +188,87 @@ describe("timeoutAction - Abort Cases", () => {
|
|
|
188
188
|
});
|
|
189
189
|
setTimeout(() => controller.abort(), 50);
|
|
190
190
|
const result = await promise;
|
|
191
|
-
expect((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
192
|
-
expect(onAbort.mock.calls[0][0].message).toContain("aborted");
|
|
191
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
192
|
+
(0, vitest_1.expect)(onAbort.mock.calls[0][0].message).toContain("aborted");
|
|
193
193
|
});
|
|
194
194
|
});
|
|
195
|
-
describe("timeoutAction - Error Cases", () => {
|
|
196
|
-
it("should handle promise rejection", async () => {
|
|
195
|
+
(0, vitest_1.describe)("timeoutAction - Error Cases", () => {
|
|
196
|
+
(0, vitest_1.it)("should handle promise rejection", async () => {
|
|
197
197
|
const testError = new Error("Something went wrong");
|
|
198
198
|
const result = await (0, timeouted_js_1.timeouted)(Promise.reject(testError), { timeout: 1000 });
|
|
199
|
-
expect((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
200
|
-
expect(result.state).toBe("error");
|
|
199
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
200
|
+
(0, vitest_1.expect)(result.state).toBe("error");
|
|
201
201
|
if ((0, timeouted_js_1.isError)(result)) {
|
|
202
|
-
expect(result.error).toBe(testError);
|
|
202
|
+
(0, vitest_1.expect)(result.error).toBe(testError);
|
|
203
203
|
}
|
|
204
204
|
});
|
|
205
|
-
it("should handle action function throwing synchronously", async () => {
|
|
205
|
+
(0, vitest_1.it)("should handle action function throwing synchronously", async () => {
|
|
206
206
|
const testError = new Error("Sync error");
|
|
207
207
|
const result = await (0, timeouted_js_1.timeouted)(() => {
|
|
208
208
|
throw testError;
|
|
209
209
|
}, { timeout: 1000 });
|
|
210
|
-
expect((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
210
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
211
211
|
if ((0, timeouted_js_1.isError)(result)) {
|
|
212
|
-
expect(result.error).toBe(testError);
|
|
212
|
+
(0, vitest_1.expect)(result.error).toBe(testError);
|
|
213
213
|
}
|
|
214
214
|
});
|
|
215
|
-
it("should handle action function rejecting asynchronously", async () => {
|
|
215
|
+
(0, vitest_1.it)("should handle action function rejecting asynchronously", async () => {
|
|
216
216
|
const testError = new Error("Async error");
|
|
217
217
|
const result = await (0, timeouted_js_1.timeouted)(() => {
|
|
218
218
|
throw testError;
|
|
219
219
|
}, { timeout: 1000 });
|
|
220
|
-
expect((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
220
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
221
221
|
if ((0, timeouted_js_1.isError)(result)) {
|
|
222
|
-
expect(result.error).toBe(testError);
|
|
222
|
+
(0, vitest_1.expect)(result.error).toBe(testError);
|
|
223
223
|
}
|
|
224
224
|
});
|
|
225
|
-
it("should call onError callback on error", async () => {
|
|
226
|
-
const onError = vi.fn();
|
|
225
|
+
(0, vitest_1.it)("should call onError callback on error", async () => {
|
|
226
|
+
const onError = vitest_1.vi.fn();
|
|
227
227
|
const testError = new Error("Test error");
|
|
228
228
|
const result = await (0, timeouted_js_1.timeouted)(Promise.reject(testError), { timeout: 1000, onError });
|
|
229
|
-
expect((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
230
|
-
expect(onError).toHaveBeenCalledTimes(1);
|
|
231
|
-
expect(onError).toHaveBeenCalledWith(testError);
|
|
229
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
230
|
+
(0, vitest_1.expect)(onError).toHaveBeenCalledTimes(1);
|
|
231
|
+
(0, vitest_1.expect)(onError).toHaveBeenCalledWith(testError);
|
|
232
232
|
});
|
|
233
|
-
it("should call onAbortAction on error", async () => {
|
|
233
|
+
(0, vitest_1.it)("should call onAbortAction on error", async () => {
|
|
234
234
|
const testError = new Error("Test error");
|
|
235
|
-
const onAbort = vi.fn();
|
|
235
|
+
const onAbort = vitest_1.vi.fn();
|
|
236
236
|
const result = await (0, timeouted_js_1.timeouted)(Promise.reject(testError), { timeout: 1000, onAbort });
|
|
237
|
-
expect((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
238
|
-
expect(onAbort).toHaveBeenCalledTimes(0);
|
|
237
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
238
|
+
(0, vitest_1.expect)(onAbort).toHaveBeenCalledTimes(0);
|
|
239
239
|
});
|
|
240
|
-
it("should convert non-Error rejection to Error", async () => {
|
|
240
|
+
(0, vitest_1.it)("should convert non-Error rejection to Error", async () => {
|
|
241
241
|
const result = await (0, timeouted_js_1.timeouted)(Promise.reject(new Error("string error")), { timeout: 1000 });
|
|
242
|
-
expect((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
242
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
243
243
|
if ((0, timeouted_js_1.isError)(result)) {
|
|
244
|
-
expect(result.error).toBeInstanceOf(Error);
|
|
244
|
+
(0, vitest_1.expect)(result.error).toBeInstanceOf(Error);
|
|
245
245
|
}
|
|
246
246
|
});
|
|
247
|
-
it("should handle synchronous throw of non-Error value", async () => {
|
|
247
|
+
(0, vitest_1.it)("should handle synchronous throw of non-Error value", async () => {
|
|
248
248
|
const result = await (0, timeouted_js_1.timeouted)(() => {
|
|
249
249
|
throw new Error("string throw");
|
|
250
250
|
}, { timeout: 1000 });
|
|
251
|
-
expect((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
251
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
252
252
|
if ((0, timeouted_js_1.isError)(result)) {
|
|
253
|
-
expect(result.error).toBeInstanceOf(Error);
|
|
254
|
-
expect(result.error.message).toBe("string throw");
|
|
253
|
+
(0, vitest_1.expect)(result.error).toBeInstanceOf(Error);
|
|
254
|
+
(0, vitest_1.expect)(result.error.message).toBe("string throw");
|
|
255
255
|
}
|
|
256
256
|
});
|
|
257
257
|
});
|
|
258
|
-
describe("Type Guards", () => {
|
|
259
|
-
it("isSuccess should work correctly", async () => {
|
|
258
|
+
(0, vitest_1.describe)("Type Guards", () => {
|
|
259
|
+
(0, vitest_1.it)("isSuccess should work correctly", async () => {
|
|
260
260
|
const successResult = await (0, timeouted_js_1.timeouted)(Promise.resolve(42), { timeout: 1000 });
|
|
261
261
|
const timeoutResult = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve(42), 200)), { timeout: 50 });
|
|
262
|
-
expect((0, timeouted_js_1.isSuccess)(successResult)).toBe(true);
|
|
263
|
-
expect((0, timeouted_js_1.isSuccess)(timeoutResult)).toBe(false);
|
|
262
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(successResult)).toBe(true);
|
|
263
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(timeoutResult)).toBe(false);
|
|
264
264
|
});
|
|
265
|
-
it("isTimeout should work correctly", async () => {
|
|
265
|
+
(0, vitest_1.it)("isTimeout should work correctly", async () => {
|
|
266
266
|
const successResult = await (0, timeouted_js_1.timeouted)(Promise.resolve(42), { timeout: 1000 });
|
|
267
267
|
const timeoutResult = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve(42), 200)), { timeout: 50 });
|
|
268
|
-
expect((0, timeouted_js_1.isTimeout)(successResult)).toBe(false);
|
|
269
|
-
expect((0, timeouted_js_1.isTimeout)(timeoutResult)).toBe(true);
|
|
268
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(successResult)).toBe(false);
|
|
269
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(timeoutResult)).toBe(true);
|
|
270
270
|
});
|
|
271
|
-
it("isAborted should work correctly", async () => {
|
|
271
|
+
(0, vitest_1.it)("isAborted should work correctly", async () => {
|
|
272
272
|
const controller = new AbortController();
|
|
273
273
|
const promise = (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve(42), 200)), {
|
|
274
274
|
timeout: 1000,
|
|
@@ -277,27 +277,27 @@ describe("Type Guards", () => {
|
|
|
277
277
|
setTimeout(() => controller.abort(), 50);
|
|
278
278
|
const abortedResult = await promise;
|
|
279
279
|
const successResult = await (0, timeouted_js_1.timeouted)(Promise.resolve(42), { timeout: 1000 });
|
|
280
|
-
expect((0, timeouted_js_1.isAborted)(successResult)).toBe(false);
|
|
281
|
-
expect((0, timeouted_js_1.isAborted)(abortedResult)).toBe(true);
|
|
280
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(successResult)).toBe(false);
|
|
281
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(abortedResult)).toBe(true);
|
|
282
282
|
});
|
|
283
|
-
it("isError should work correctly", async () => {
|
|
283
|
+
(0, vitest_1.it)("isError should work correctly", async () => {
|
|
284
284
|
const successResult = await (0, timeouted_js_1.timeouted)(Promise.resolve(42), { timeout: 1000 });
|
|
285
285
|
const errorResult = await (0, timeouted_js_1.timeouted)(Promise.reject(new Error("fail")), { timeout: 1000 });
|
|
286
|
-
expect((0, timeouted_js_1.isError)(successResult)).toBe(false);
|
|
287
|
-
expect((0, timeouted_js_1.isError)(errorResult)).toBe(true);
|
|
286
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(successResult)).toBe(false);
|
|
287
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(errorResult)).toBe(true);
|
|
288
288
|
});
|
|
289
289
|
});
|
|
290
|
-
describe("Helper Functions", () => {
|
|
291
|
-
describe("unwrap", () => {
|
|
292
|
-
it("should return value on success", async () => {
|
|
290
|
+
(0, vitest_1.describe)("Helper Functions", () => {
|
|
291
|
+
(0, vitest_1.describe)("unwrap", () => {
|
|
292
|
+
(0, vitest_1.it)("should return value on success", async () => {
|
|
293
293
|
const result = await (0, timeouted_js_1.timeouted)(Promise.resolve(42), { timeout: 1000 });
|
|
294
|
-
expect((0, timeouted_js_1.unwrap)(result)).toBe(42);
|
|
294
|
+
(0, vitest_1.expect)((0, timeouted_js_1.unwrap)(result)).toBe(42);
|
|
295
295
|
});
|
|
296
|
-
it("should throw on timeout", async () => {
|
|
296
|
+
(0, vitest_1.it)("should throw on timeout", async () => {
|
|
297
297
|
const result = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve(42), 200)), { timeout: 50 });
|
|
298
|
-
expect(() => (0, timeouted_js_1.unwrap)(result)).toThrow("TimeoutResult is not success: timeout");
|
|
298
|
+
(0, vitest_1.expect)(() => (0, timeouted_js_1.unwrap)(result)).toThrow("TimeoutResult is not success: timeout");
|
|
299
299
|
});
|
|
300
|
-
it("should throw on abort", async () => {
|
|
300
|
+
(0, vitest_1.it)("should throw on abort", async () => {
|
|
301
301
|
const controller = new AbortController();
|
|
302
302
|
const promise = (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve(42), 200)), {
|
|
303
303
|
timeout: 1000,
|
|
@@ -305,23 +305,23 @@ describe("Helper Functions", () => {
|
|
|
305
305
|
});
|
|
306
306
|
setTimeout(() => controller.abort(), 50);
|
|
307
307
|
const result = await promise;
|
|
308
|
-
expect(() => (0, timeouted_js_1.unwrap)(result)).toThrow("TimeoutResult is not success: aborted");
|
|
308
|
+
(0, vitest_1.expect)(() => (0, timeouted_js_1.unwrap)(result)).toThrow("TimeoutResult is not success: aborted");
|
|
309
309
|
});
|
|
310
|
-
it("should throw on error", async () => {
|
|
310
|
+
(0, vitest_1.it)("should throw on error", async () => {
|
|
311
311
|
const result = await (0, timeouted_js_1.timeouted)(Promise.reject(new Error("fail")), { timeout: 1000 });
|
|
312
|
-
expect(() => (0, timeouted_js_1.unwrap)(result)).toThrow("TimeoutResult is not success: error");
|
|
312
|
+
(0, vitest_1.expect)(() => (0, timeouted_js_1.unwrap)(result)).toThrow("TimeoutResult is not success: error");
|
|
313
313
|
});
|
|
314
314
|
});
|
|
315
|
-
describe("unwrapOr", () => {
|
|
316
|
-
it("should return value on success", async () => {
|
|
315
|
+
(0, vitest_1.describe)("unwrapOr", () => {
|
|
316
|
+
(0, vitest_1.it)("should return value on success", async () => {
|
|
317
317
|
const result = await (0, timeouted_js_1.timeouted)(Promise.resolve(42), { timeout: 1000 });
|
|
318
|
-
expect((0, timeouted_js_1.unwrapOr)(result, 0)).toBe(42);
|
|
318
|
+
(0, vitest_1.expect)((0, timeouted_js_1.unwrapOr)(result, 0)).toBe(42);
|
|
319
319
|
});
|
|
320
|
-
it("should return default on timeout", async () => {
|
|
320
|
+
(0, vitest_1.it)("should return default on timeout", async () => {
|
|
321
321
|
const result = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve(42), 200)), { timeout: 50 });
|
|
322
|
-
expect((0, timeouted_js_1.unwrapOr)(result, 999)).toBe(999);
|
|
322
|
+
(0, vitest_1.expect)((0, timeouted_js_1.unwrapOr)(result, 999)).toBe(999);
|
|
323
323
|
});
|
|
324
|
-
it("should return default on abort", async () => {
|
|
324
|
+
(0, vitest_1.it)("should return default on abort", async () => {
|
|
325
325
|
const controller = new AbortController();
|
|
326
326
|
const promise = (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve(42), 200)), {
|
|
327
327
|
timeout: 1000,
|
|
@@ -329,87 +329,87 @@ describe("Helper Functions", () => {
|
|
|
329
329
|
});
|
|
330
330
|
setTimeout(() => controller.abort(), 50);
|
|
331
331
|
const result = await promise;
|
|
332
|
-
expect((0, timeouted_js_1.unwrapOr)(result, -1)).toBe(-1);
|
|
332
|
+
(0, vitest_1.expect)((0, timeouted_js_1.unwrapOr)(result, -1)).toBe(-1);
|
|
333
333
|
});
|
|
334
|
-
it("should return default on error", async () => {
|
|
334
|
+
(0, vitest_1.it)("should return default on error", async () => {
|
|
335
335
|
const result = await (0, timeouted_js_1.timeouted)(Promise.reject(new Error("fail")), { timeout: 1000 });
|
|
336
|
-
expect((0, timeouted_js_1.unwrapOr)(result, 100)).toBe(100);
|
|
336
|
+
(0, vitest_1.expect)((0, timeouted_js_1.unwrapOr)(result, 100)).toBe(100);
|
|
337
337
|
});
|
|
338
338
|
});
|
|
339
339
|
});
|
|
340
|
-
describe("Edge Cases", () => {
|
|
341
|
-
it("should handle zero timeout", async () => {
|
|
340
|
+
(0, vitest_1.describe)("Edge Cases", () => {
|
|
341
|
+
(0, vitest_1.it)("should handle zero timeout", async () => {
|
|
342
342
|
const result = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("data"), 10)), { timeout: 0 });
|
|
343
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
344
|
-
expect((0, timeouted_js_1.unwrap)(result)).toBe("data");
|
|
343
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
344
|
+
(0, vitest_1.expect)((0, timeouted_js_1.unwrap)(result)).toBe("data");
|
|
345
345
|
});
|
|
346
|
-
it("should handle very short timeout", async () => {
|
|
346
|
+
(0, vitest_1.it)("should handle very short timeout", async () => {
|
|
347
347
|
const result = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("data"), 100)), { timeout: 1 });
|
|
348
|
-
expect((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
348
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
349
349
|
});
|
|
350
|
-
it("should handle action that completes exactly at timeout", async () => {
|
|
350
|
+
(0, vitest_1.it)("should handle action that completes exactly at timeout", async () => {
|
|
351
351
|
const result = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("data"), 50)), { timeout: 50 });
|
|
352
|
-
expect(["success", "timeout"]).toContain(result.state);
|
|
352
|
+
(0, vitest_1.expect)(["success", "timeout"]).toContain(result.state);
|
|
353
353
|
});
|
|
354
|
-
it("should track duration accurately", async () => {
|
|
354
|
+
(0, vitest_1.it)("should track duration accurately", async () => {
|
|
355
355
|
const start = Date.now();
|
|
356
356
|
const result = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("data"), 100)), { timeout: 1000 });
|
|
357
357
|
const actualDuration = Date.now() - start;
|
|
358
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
359
|
-
expect(result.duration).toBeGreaterThanOrEqual(95);
|
|
360
|
-
expect(result.duration).toBeLessThan(150);
|
|
361
|
-
expect(Math.abs(result.duration - actualDuration)).toBeLessThan(10);
|
|
358
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
359
|
+
(0, vitest_1.expect)(result.duration).toBeGreaterThanOrEqual(95);
|
|
360
|
+
(0, vitest_1.expect)(result.duration).toBeLessThan(150);
|
|
361
|
+
(0, vitest_1.expect)(Math.abs(result.duration - actualDuration)).toBeLessThan(10);
|
|
362
362
|
});
|
|
363
|
-
it("should handle default timeout value (30000ms)", async () => {
|
|
363
|
+
(0, vitest_1.it)("should handle default timeout value (30000ms)", async () => {
|
|
364
364
|
const result = await (0, timeouted_js_1.timeouted)(Promise.resolve("data"));
|
|
365
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
365
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
366
366
|
});
|
|
367
|
-
it("should handle undefined context", async () => {
|
|
367
|
+
(0, vitest_1.it)("should handle undefined context", async () => {
|
|
368
368
|
const result = await (0, timeouted_js_1.timeouted)(Promise.resolve("data"), { timeout: 1000 });
|
|
369
|
-
expect(result.ctx).toBeUndefined();
|
|
369
|
+
(0, vitest_1.expect)(result.ctx).toBeUndefined();
|
|
370
370
|
});
|
|
371
|
-
it("should pass abort controller to action function", async () => {
|
|
371
|
+
(0, vitest_1.it)("should pass abort controller to action function", async () => {
|
|
372
372
|
let receivedController = null;
|
|
373
373
|
const result = await (0, timeouted_js_1.timeouted)((ctrl) => {
|
|
374
374
|
receivedController = ctrl;
|
|
375
375
|
return Promise.resolve("data");
|
|
376
376
|
}, { timeout: 1000 });
|
|
377
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
378
|
-
expect(receivedController).toBeInstanceOf(AbortController);
|
|
377
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
378
|
+
(0, vitest_1.expect)(receivedController).toBeInstanceOf(AbortController);
|
|
379
379
|
});
|
|
380
|
-
it("should use external controller when provided", async () => {
|
|
380
|
+
(0, vitest_1.it)("should use external controller when provided", async () => {
|
|
381
381
|
const externalController = new AbortController();
|
|
382
382
|
const result = await (0, timeouted_js_1.timeouted)((ctrl) => {
|
|
383
|
-
expect(ctrl).toBe(externalController);
|
|
383
|
+
(0, vitest_1.expect)(ctrl).toBe(externalController);
|
|
384
384
|
return Promise.resolve("data");
|
|
385
385
|
}, { timeout: 1000, controller: externalController });
|
|
386
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
386
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
387
387
|
});
|
|
388
|
-
it("should handle negative timeout (treated as 30000ms default)", async () => {
|
|
388
|
+
(0, vitest_1.it)("should handle negative timeout (treated as 30000ms default)", async () => {
|
|
389
389
|
const result = await (0, timeouted_js_1.timeouted)(Promise.resolve("data"), { timeout: -100 });
|
|
390
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
390
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
391
391
|
});
|
|
392
392
|
});
|
|
393
|
-
describe("Callback Interactions", () => {
|
|
394
|
-
it("should call all appropriate callbacks on timeout", async () => {
|
|
395
|
-
const onTimeout = vi.fn();
|
|
396
|
-
const onAbort = vi.fn();
|
|
397
|
-
const onError = vi.fn();
|
|
393
|
+
(0, vitest_1.describe)("Callback Interactions", () => {
|
|
394
|
+
(0, vitest_1.it)("should call all appropriate callbacks on timeout", async () => {
|
|
395
|
+
const onTimeout = vitest_1.vi.fn();
|
|
396
|
+
const onAbort = vitest_1.vi.fn();
|
|
397
|
+
const onError = vitest_1.vi.fn();
|
|
398
398
|
const result = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("slow"), 200)), {
|
|
399
399
|
timeout: 50,
|
|
400
400
|
onTimeout,
|
|
401
401
|
onAbort,
|
|
402
402
|
onError,
|
|
403
403
|
});
|
|
404
|
-
expect((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
405
|
-
expect(onTimeout).toHaveBeenCalledTimes(1);
|
|
406
|
-
expect(onAbort).not.toHaveBeenCalled();
|
|
407
|
-
expect(onError).not.toHaveBeenCalled();
|
|
408
|
-
});
|
|
409
|
-
it("should call all appropriate callbacks on abort", async () => {
|
|
410
|
-
const onTimeout = vi.fn();
|
|
411
|
-
const onAbort = vi.fn();
|
|
412
|
-
const onError = vi.fn();
|
|
404
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
405
|
+
(0, vitest_1.expect)(onTimeout).toHaveBeenCalledTimes(1);
|
|
406
|
+
(0, vitest_1.expect)(onAbort).not.toHaveBeenCalled();
|
|
407
|
+
(0, vitest_1.expect)(onError).not.toHaveBeenCalled();
|
|
408
|
+
});
|
|
409
|
+
(0, vitest_1.it)("should call all appropriate callbacks on abort", async () => {
|
|
410
|
+
const onTimeout = vitest_1.vi.fn();
|
|
411
|
+
const onAbort = vitest_1.vi.fn();
|
|
412
|
+
const onError = vitest_1.vi.fn();
|
|
413
413
|
const controller = new AbortController();
|
|
414
414
|
const promise = (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("data"), 200)), {
|
|
415
415
|
timeout: 1000,
|
|
@@ -420,106 +420,106 @@ describe("Callback Interactions", () => {
|
|
|
420
420
|
});
|
|
421
421
|
setTimeout(() => controller.abort("user action"), 50);
|
|
422
422
|
const result = await promise;
|
|
423
|
-
expect((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
424
|
-
expect(onTimeout).not.toHaveBeenCalled();
|
|
425
|
-
expect(onAbort).toHaveBeenCalledTimes(1);
|
|
426
|
-
expect(onAbort).toHaveBeenCalledWith("user action");
|
|
427
|
-
expect(onError).not.toHaveBeenCalled();
|
|
428
|
-
});
|
|
429
|
-
it("should call all appropriate callbacks on error", async () => {
|
|
430
|
-
const onTimeout = vi.fn();
|
|
431
|
-
const onAbort = vi.fn();
|
|
432
|
-
const onError = vi.fn();
|
|
423
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
424
|
+
(0, vitest_1.expect)(onTimeout).not.toHaveBeenCalled();
|
|
425
|
+
(0, vitest_1.expect)(onAbort).toHaveBeenCalledTimes(1);
|
|
426
|
+
(0, vitest_1.expect)(onAbort).toHaveBeenCalledWith("user action");
|
|
427
|
+
(0, vitest_1.expect)(onError).not.toHaveBeenCalled();
|
|
428
|
+
});
|
|
429
|
+
(0, vitest_1.it)("should call all appropriate callbacks on error", async () => {
|
|
430
|
+
const onTimeout = vitest_1.vi.fn();
|
|
431
|
+
const onAbort = vitest_1.vi.fn();
|
|
432
|
+
const onError = vitest_1.vi.fn();
|
|
433
433
|
const testError = new Error("test");
|
|
434
434
|
const result = await (0, timeouted_js_1.timeouted)(Promise.reject(testError), { timeout: 1000, onTimeout, onAbort, onError });
|
|
435
|
-
expect((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
436
|
-
expect(onTimeout).not.toHaveBeenCalled();
|
|
437
|
-
expect(onAbort).not.toHaveBeenCalled();
|
|
438
|
-
expect(onError).toHaveBeenCalledTimes(1);
|
|
439
|
-
expect(onError).toHaveBeenCalledWith(testError);
|
|
440
|
-
});
|
|
441
|
-
it("should not call any error callbacks on success", async () => {
|
|
442
|
-
const onTimeout = vi.fn();
|
|
443
|
-
const onAbort = vi.fn();
|
|
444
|
-
const onError = vi.fn();
|
|
435
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
436
|
+
(0, vitest_1.expect)(onTimeout).not.toHaveBeenCalled();
|
|
437
|
+
(0, vitest_1.expect)(onAbort).not.toHaveBeenCalled();
|
|
438
|
+
(0, vitest_1.expect)(onError).toHaveBeenCalledTimes(1);
|
|
439
|
+
(0, vitest_1.expect)(onError).toHaveBeenCalledWith(testError);
|
|
440
|
+
});
|
|
441
|
+
(0, vitest_1.it)("should not call any error callbacks on success", async () => {
|
|
442
|
+
const onTimeout = vitest_1.vi.fn();
|
|
443
|
+
const onAbort = vitest_1.vi.fn();
|
|
444
|
+
const onError = vitest_1.vi.fn();
|
|
445
445
|
const result = await (0, timeouted_js_1.timeouted)(Promise.resolve("success"), { timeout: 1000, onTimeout, onAbort, onError });
|
|
446
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
447
|
-
expect(onTimeout).not.toHaveBeenCalled();
|
|
448
|
-
expect(onAbort).not.toHaveBeenCalled();
|
|
449
|
-
expect(onError).not.toHaveBeenCalled();
|
|
446
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
447
|
+
(0, vitest_1.expect)(onTimeout).not.toHaveBeenCalled();
|
|
448
|
+
(0, vitest_1.expect)(onAbort).not.toHaveBeenCalled();
|
|
449
|
+
(0, vitest_1.expect)(onError).not.toHaveBeenCalled();
|
|
450
450
|
});
|
|
451
451
|
});
|
|
452
|
-
describe("isTimeouted isTypeGuard Consistency", () => {
|
|
453
|
-
it("isSuccess", async () => {
|
|
452
|
+
(0, vitest_1.describe)("isTimeouted isTypeGuard Consistency", () => {
|
|
453
|
+
(0, vitest_1.it)("isSuccess", async () => {
|
|
454
454
|
const timed = await (0, timeouted_js_1.timeouted)(Promise.resolve("data"), { timeout: 1000 });
|
|
455
|
-
expect((0, timeouted_js_1.isSuccess)(timed)).toBe(true);
|
|
456
|
-
expect(timed.isSuccess()).toBe(true);
|
|
457
|
-
expect((0, timeouted_js_1.isTimeout)(timed)).toBe(false);
|
|
458
|
-
expect(timed.isTimeout()).toBe(false);
|
|
459
|
-
expect((0, timeouted_js_1.isAborted)(timed)).toBe(false);
|
|
460
|
-
expect(timed.isAborted()).toBe(false);
|
|
461
|
-
expect((0, timeouted_js_1.isError)(timed)).toBe(false);
|
|
462
|
-
expect(timed.isError()).toBe(false);
|
|
463
|
-
});
|
|
464
|
-
it("isTimeout", async () => {
|
|
465
|
-
const timed = await (0, timeouted_js_1.timeouted)((0,
|
|
466
|
-
expect((0, timeouted_js_1.isSuccess)(timed)).toBe(false);
|
|
467
|
-
expect(timed.isSuccess()).toBe(false);
|
|
468
|
-
expect((0, timeouted_js_1.isTimeout)(timed)).toBe(true);
|
|
469
|
-
expect(timed.isTimeout()).toBe(true);
|
|
470
|
-
expect((0, timeouted_js_1.isAborted)(timed)).toBe(false);
|
|
471
|
-
expect(timed.isAborted()).toBe(false);
|
|
472
|
-
expect((0, timeouted_js_1.isError)(timed)).toBe(false);
|
|
473
|
-
expect(timed.isError()).toBe(false);
|
|
474
|
-
});
|
|
475
|
-
it("isAbort controller", async () => {
|
|
455
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(timed)).toBe(true);
|
|
456
|
+
(0, vitest_1.expect)(timed.isSuccess()).toBe(true);
|
|
457
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(timed)).toBe(false);
|
|
458
|
+
(0, vitest_1.expect)(timed.isTimeout()).toBe(false);
|
|
459
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(timed)).toBe(false);
|
|
460
|
+
(0, vitest_1.expect)(timed.isAborted()).toBe(false);
|
|
461
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(timed)).toBe(false);
|
|
462
|
+
(0, vitest_1.expect)(timed.isError()).toBe(false);
|
|
463
|
+
});
|
|
464
|
+
(0, vitest_1.it)("isTimeout", async () => {
|
|
465
|
+
const timed = await (0, timeouted_js_1.timeouted)((0, cement_1.sleep)(10000), { timeout: 10 });
|
|
466
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(timed)).toBe(false);
|
|
467
|
+
(0, vitest_1.expect)(timed.isSuccess()).toBe(false);
|
|
468
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(timed)).toBe(true);
|
|
469
|
+
(0, vitest_1.expect)(timed.isTimeout()).toBe(true);
|
|
470
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(timed)).toBe(false);
|
|
471
|
+
(0, vitest_1.expect)(timed.isAborted()).toBe(false);
|
|
472
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(timed)).toBe(false);
|
|
473
|
+
(0, vitest_1.expect)(timed.isError()).toBe(false);
|
|
474
|
+
});
|
|
475
|
+
(0, vitest_1.it)("isAbort controller", async () => {
|
|
476
476
|
const controller = new AbortController();
|
|
477
477
|
setTimeout(() => controller.abort(), 10);
|
|
478
|
-
const timed = await (0, timeouted_js_1.timeouted)((0,
|
|
479
|
-
expect((0, timeouted_js_1.isSuccess)(timed)).toBe(false);
|
|
480
|
-
expect(timed.isSuccess()).toBe(false);
|
|
481
|
-
expect((0, timeouted_js_1.isTimeout)(timed)).toBe(false);
|
|
482
|
-
expect(timed.isTimeout()).toBe(false);
|
|
483
|
-
expect((0, timeouted_js_1.isAborted)(timed)).toBe(true);
|
|
484
|
-
expect(timed.isAborted()).toBe(true);
|
|
485
|
-
expect((0, timeouted_js_1.isError)(timed)).toBe(false);
|
|
486
|
-
expect(timed.isError()).toBe(false);
|
|
487
|
-
});
|
|
488
|
-
it("isAbort signal", async () => {
|
|
478
|
+
const timed = await (0, timeouted_js_1.timeouted)((0, cement_1.sleep)(10000), { timeout: 100000, controller: controller });
|
|
479
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(timed)).toBe(false);
|
|
480
|
+
(0, vitest_1.expect)(timed.isSuccess()).toBe(false);
|
|
481
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(timed)).toBe(false);
|
|
482
|
+
(0, vitest_1.expect)(timed.isTimeout()).toBe(false);
|
|
483
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(timed)).toBe(true);
|
|
484
|
+
(0, vitest_1.expect)(timed.isAborted()).toBe(true);
|
|
485
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(timed)).toBe(false);
|
|
486
|
+
(0, vitest_1.expect)(timed.isError()).toBe(false);
|
|
487
|
+
});
|
|
488
|
+
(0, vitest_1.it)("isAbort signal", async () => {
|
|
489
489
|
const controller = new AbortController();
|
|
490
490
|
setTimeout(() => controller.abort(), 10);
|
|
491
|
-
const timed = await (0, timeouted_js_1.timeouted)((0,
|
|
492
|
-
expect((0, timeouted_js_1.isSuccess)(timed)).toBe(false);
|
|
493
|
-
expect(timed.isSuccess()).toBe(false);
|
|
494
|
-
expect((0, timeouted_js_1.isTimeout)(timed)).toBe(false);
|
|
495
|
-
expect(timed.isTimeout()).toBe(false);
|
|
496
|
-
expect((0, timeouted_js_1.isAborted)(timed)).toBe(true);
|
|
497
|
-
expect(timed.isAborted()).toBe(true);
|
|
498
|
-
expect((0, timeouted_js_1.isError)(timed)).toBe(false);
|
|
499
|
-
expect(timed.isError()).toBe(false);
|
|
500
|
-
});
|
|
501
|
-
it("isError", async () => {
|
|
491
|
+
const timed = await (0, timeouted_js_1.timeouted)((0, cement_1.sleep)(10000), { timeout: 100000, signal: controller.signal });
|
|
492
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(timed)).toBe(false);
|
|
493
|
+
(0, vitest_1.expect)(timed.isSuccess()).toBe(false);
|
|
494
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(timed)).toBe(false);
|
|
495
|
+
(0, vitest_1.expect)(timed.isTimeout()).toBe(false);
|
|
496
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(timed)).toBe(true);
|
|
497
|
+
(0, vitest_1.expect)(timed.isAborted()).toBe(true);
|
|
498
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(timed)).toBe(false);
|
|
499
|
+
(0, vitest_1.expect)(timed.isError()).toBe(false);
|
|
500
|
+
});
|
|
501
|
+
(0, vitest_1.it)("isError", async () => {
|
|
502
502
|
const timed = await (0, timeouted_js_1.timeouted)(Promise.reject(new Error("data")), { timeout: 1000 });
|
|
503
|
-
expect((0, timeouted_js_1.isSuccess)(timed)).toBe(false);
|
|
504
|
-
expect(timed.isSuccess()).toBe(false);
|
|
505
|
-
expect((0, timeouted_js_1.isTimeout)(timed)).toBe(false);
|
|
506
|
-
expect(timed.isTimeout()).toBe(false);
|
|
507
|
-
expect((0, timeouted_js_1.isAborted)(timed)).toBe(false);
|
|
508
|
-
expect(timed.isAborted()).toBe(false);
|
|
509
|
-
expect((0, timeouted_js_1.isError)(timed)).toBe(true);
|
|
510
|
-
expect(timed.isError()).toBe(true);
|
|
503
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(timed)).toBe(false);
|
|
504
|
+
(0, vitest_1.expect)(timed.isSuccess()).toBe(false);
|
|
505
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(timed)).toBe(false);
|
|
506
|
+
(0, vitest_1.expect)(timed.isTimeout()).toBe(false);
|
|
507
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(timed)).toBe(false);
|
|
508
|
+
(0, vitest_1.expect)(timed.isAborted()).toBe(false);
|
|
509
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(timed)).toBe(true);
|
|
510
|
+
(0, vitest_1.expect)(timed.isError()).toBe(true);
|
|
511
511
|
});
|
|
512
512
|
});
|
|
513
|
-
describe("Race Conditions", () => {
|
|
514
|
-
it("should handle success that wins race against timeout", async () => {
|
|
513
|
+
(0, vitest_1.describe)("Race Conditions", () => {
|
|
514
|
+
(0, vitest_1.it)("should handle success that wins race against timeout", async () => {
|
|
515
515
|
const result = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("fast"), 10)), { timeout: 100 });
|
|
516
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
516
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
517
517
|
});
|
|
518
|
-
it("should handle timeout that wins race against slow promise", async () => {
|
|
518
|
+
(0, vitest_1.it)("should handle timeout that wins race against slow promise", async () => {
|
|
519
519
|
const result = await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("slow"), 100)), { timeout: 10 });
|
|
520
|
-
expect((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
520
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
521
521
|
});
|
|
522
|
-
it("should handle abort that wins race against slow promise", async () => {
|
|
522
|
+
(0, vitest_1.it)("should handle abort that wins race against slow promise", async () => {
|
|
523
523
|
const controller = new AbortController();
|
|
524
524
|
const promise = (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("slow"), 200)), {
|
|
525
525
|
timeout: 1000,
|
|
@@ -527,15 +527,15 @@ describe("Race Conditions", () => {
|
|
|
527
527
|
});
|
|
528
528
|
setTimeout(() => controller.abort(), 10);
|
|
529
529
|
const result = await promise;
|
|
530
|
-
expect((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
530
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
531
531
|
});
|
|
532
|
-
it("should handle error that wins race against timeout", async () => {
|
|
532
|
+
(0, vitest_1.it)("should handle error that wins race against timeout", async () => {
|
|
533
533
|
const result = await (0, timeouted_js_1.timeouted)(new Promise((_, reject) => setTimeout(() => reject(new Error("fast error")), 10)), {
|
|
534
534
|
timeout: 100,
|
|
535
535
|
});
|
|
536
|
-
expect((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
536
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
537
537
|
});
|
|
538
|
-
it("should handle abort that wins race against timeout", async () => {
|
|
538
|
+
(0, vitest_1.it)("should handle abort that wins race against timeout", async () => {
|
|
539
539
|
const controller = new AbortController();
|
|
540
540
|
const promise = (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("data"), 500)), {
|
|
541
541
|
timeout: 100,
|
|
@@ -543,15 +543,15 @@ describe("Race Conditions", () => {
|
|
|
543
543
|
});
|
|
544
544
|
setTimeout(() => controller.abort("quick abort"), 20);
|
|
545
545
|
const result = await promise;
|
|
546
|
-
expect((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
546
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
547
547
|
if ((0, timeouted_js_1.isAborted)(result)) {
|
|
548
|
-
expect(result.reason).toBe("quick abort");
|
|
548
|
+
(0, vitest_1.expect)(result.reason).toBe("quick abort");
|
|
549
549
|
}
|
|
550
|
-
expect(result.duration).toBeLessThan(50);
|
|
550
|
+
(0, vitest_1.expect)(result.duration).toBeLessThan(50);
|
|
551
551
|
});
|
|
552
552
|
});
|
|
553
|
-
describe("Real-World Scenarios", () => {
|
|
554
|
-
it("should handle fetch-like operation with timeout", async () => {
|
|
553
|
+
(0, vitest_1.describe)("Real-World Scenarios", () => {
|
|
554
|
+
(0, vitest_1.it)("should handle fetch-like operation with timeout", async () => {
|
|
555
555
|
const mockFetch = async (ctrl) => {
|
|
556
556
|
return new Promise((resolve, reject) => {
|
|
557
557
|
const timeoutId = setTimeout(() => resolve({ data: "response" }), 100);
|
|
@@ -562,22 +562,22 @@ describe("Real-World Scenarios", () => {
|
|
|
562
562
|
});
|
|
563
563
|
};
|
|
564
564
|
const result = await (0, timeouted_js_1.timeouted)(mockFetch, { timeout: 200 });
|
|
565
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
565
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
566
566
|
if ((0, timeouted_js_1.isSuccess)(result)) {
|
|
567
|
-
expect(result.value.data).toBe("response");
|
|
567
|
+
(0, vitest_1.expect)(result.value.data).toBe("response");
|
|
568
568
|
}
|
|
569
569
|
});
|
|
570
|
-
it("should handle fetch timeout scenario", async () => {
|
|
570
|
+
(0, vitest_1.it)("should handle fetch timeout scenario", async () => {
|
|
571
571
|
const mockSlowFetch = async () => {
|
|
572
572
|
await new Promise((resolve) => setTimeout(resolve, 200));
|
|
573
573
|
return { data: "slow response" };
|
|
574
574
|
};
|
|
575
575
|
const result = await (0, timeouted_js_1.timeouted)(mockSlowFetch, { timeout: 50 });
|
|
576
|
-
expect((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
576
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
577
577
|
});
|
|
578
|
-
it("should handle user cancellation during long operation", async () => {
|
|
578
|
+
(0, vitest_1.it)("should handle user cancellation during long operation", async () => {
|
|
579
579
|
const controller = new AbortController();
|
|
580
|
-
const onAbort = vi.fn();
|
|
580
|
+
const onAbort = vitest_1.vi.fn();
|
|
581
581
|
const promise = (0, timeouted_js_1.timeouted)(async (ctrl) => {
|
|
582
582
|
for (let i = 0; i < 10; i++) {
|
|
583
583
|
if (ctrl.signal.aborted) {
|
|
@@ -589,10 +589,10 @@ describe("Real-World Scenarios", () => {
|
|
|
589
589
|
}, { timeout: 10000, signal: controller.signal, onAbort });
|
|
590
590
|
setTimeout(() => controller.abort("User clicked cancel"), 100);
|
|
591
591
|
const result = await promise;
|
|
592
|
-
expect((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
593
|
-
expect(onAbort).toHaveBeenCalledWith("User clicked cancel");
|
|
592
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
593
|
+
(0, vitest_1.expect)(onAbort).toHaveBeenCalledWith("User clicked cancel");
|
|
594
594
|
});
|
|
595
|
-
it("should track request context throughout operation", async () => {
|
|
595
|
+
(0, vitest_1.it)("should track request context throughout operation", async () => {
|
|
596
596
|
const ctx = {
|
|
597
597
|
requestId: "req-123",
|
|
598
598
|
userId: "user-456",
|
|
@@ -602,11 +602,11 @@ describe("Real-World Scenarios", () => {
|
|
|
602
602
|
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
603
603
|
return { status: "ok" };
|
|
604
604
|
}, { timeout: 1000, ctx });
|
|
605
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
606
|
-
expect(result.ctx).toEqual(ctx);
|
|
607
|
-
expect(result.duration).toBeGreaterThan(0);
|
|
605
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
606
|
+
(0, vitest_1.expect)(result.ctx).toEqual(ctx);
|
|
607
|
+
(0, vitest_1.expect)(result.duration).toBeGreaterThan(0);
|
|
608
608
|
});
|
|
609
|
-
it("should handle retry logic pattern", async () => {
|
|
609
|
+
(0, vitest_1.it)("should handle retry logic pattern", async () => {
|
|
610
610
|
let attempts = 0;
|
|
611
611
|
const maxAttempts = 3;
|
|
612
612
|
async function attemptOperation() {
|
|
@@ -624,31 +624,31 @@ describe("Real-World Scenarios", () => {
|
|
|
624
624
|
return (0, timeouted_js_1.unwrapOr)(result, "failed");
|
|
625
625
|
}
|
|
626
626
|
const finalResult = await attemptOperation();
|
|
627
|
-
expect(finalResult).toBe("success");
|
|
628
|
-
expect(attempts).toBe(3);
|
|
627
|
+
(0, vitest_1.expect)(finalResult).toBe("success");
|
|
628
|
+
(0, vitest_1.expect)(attempts).toBe(3);
|
|
629
629
|
});
|
|
630
|
-
it("should handle parallel operations with different timeouts", async () => {
|
|
630
|
+
(0, vitest_1.it)("should handle parallel operations with different timeouts", async () => {
|
|
631
631
|
const results = await Promise.all([
|
|
632
632
|
(0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("fast"), 50)), { timeout: 100 }),
|
|
633
633
|
(0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("medium"), 150)), { timeout: 200 }),
|
|
634
634
|
(0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("slow"), 300)), { timeout: 100 }),
|
|
635
635
|
]);
|
|
636
|
-
expect((0, timeouted_js_1.isSuccess)(results[0])).toBe(true);
|
|
637
|
-
expect((0, timeouted_js_1.isSuccess)(results[1])).toBe(true);
|
|
638
|
-
expect((0, timeouted_js_1.isTimeout)(results[2])).toBe(true);
|
|
636
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(results[0])).toBe(true);
|
|
637
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(results[1])).toBe(true);
|
|
638
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(results[2])).toBe(true);
|
|
639
639
|
});
|
|
640
640
|
});
|
|
641
|
-
describe("Memory Leak Prevention", () => {
|
|
642
|
-
it("should not leak event listeners on success", async () => {
|
|
641
|
+
(0, vitest_1.describe)("Memory Leak Prevention", () => {
|
|
642
|
+
(0, vitest_1.it)("should not leak event listeners on success", async () => {
|
|
643
643
|
const controller = new AbortController();
|
|
644
644
|
await (0, timeouted_js_1.timeouted)(Promise.resolve("data"), { timeout: 1000, signal: controller.signal });
|
|
645
|
-
expect(controller.signal.aborted).toBe(false);
|
|
645
|
+
(0, vitest_1.expect)(controller.signal.aborted).toBe(false);
|
|
646
646
|
});
|
|
647
|
-
it("should not leak event listeners on timeout", async () => {
|
|
647
|
+
(0, vitest_1.it)("should not leak event listeners on timeout", async () => {
|
|
648
648
|
const controller = new AbortController();
|
|
649
649
|
await (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("slow"), 200)), { timeout: 50, signal: controller.signal });
|
|
650
650
|
});
|
|
651
|
-
it("should not leak event listeners on abort", async () => {
|
|
651
|
+
(0, vitest_1.it)("should not leak event listeners on abort", async () => {
|
|
652
652
|
const controller = new AbortController();
|
|
653
653
|
const promise = (0, timeouted_js_1.timeouted)(new Promise((resolve) => setTimeout(() => resolve("data"), 200)), {
|
|
654
654
|
timeout: 1000,
|
|
@@ -657,103 +657,133 @@ describe("Memory Leak Prevention", () => {
|
|
|
657
657
|
setTimeout(() => controller.abort(), 50);
|
|
658
658
|
await promise;
|
|
659
659
|
});
|
|
660
|
-
it("should cleanup on multiple rapid calls", async () => {
|
|
660
|
+
(0, vitest_1.it)("should cleanup on multiple rapid calls", async () => {
|
|
661
661
|
const controller = new AbortController();
|
|
662
662
|
const promises = Array.from({ length: 10 }, (_, i) => (0, timeouted_js_1.timeouted)(Promise.resolve(i), { timeout: 100, signal: controller.signal }));
|
|
663
663
|
const results = await Promise.all(promises);
|
|
664
|
-
expect(results.every(timeouted_js_1.isSuccess)).toBe(true);
|
|
664
|
+
(0, vitest_1.expect)(results.every(timeouted_js_1.isSuccess)).toBe(true);
|
|
665
665
|
});
|
|
666
666
|
});
|
|
667
|
-
describe("Node.js Exit Prevention", () => {
|
|
667
|
+
(0, vitest_1.describe)("Node.js Exit Prevention", () => {
|
|
668
668
|
let runtime = undefined;
|
|
669
|
-
if ((0,
|
|
669
|
+
if ((0, cement_1.runtimeFn)().isNodeIsh) {
|
|
670
670
|
runtime = ["tsx", "-e"];
|
|
671
671
|
}
|
|
672
|
-
if ((0,
|
|
672
|
+
if ((0, cement_1.runtimeFn)().isDeno) {
|
|
673
673
|
runtime = ["deno", "eval"];
|
|
674
674
|
}
|
|
675
|
-
it("not block node from exiting on success", async () => {
|
|
675
|
+
(0, vitest_1.it)("not block node from exiting on success", async () => {
|
|
676
676
|
if (runtime) {
|
|
677
677
|
const { $ } = await Promise.resolve().then(() => __importStar(require("zx")));
|
|
678
678
|
const start = Date.now();
|
|
679
679
|
await $ `${runtime} "import { timeouted } from './src/timeouted.ts'; import { sleep } from './src/promise-sleep.ts'; timeouted(sleep(200), { timeout: 10000 })"`;
|
|
680
680
|
const duration = Date.now() - start;
|
|
681
|
-
expect(duration).toBeLessThan(2000);
|
|
681
|
+
(0, vitest_1.expect)(duration).toBeLessThan(2000);
|
|
682
682
|
}
|
|
683
683
|
});
|
|
684
|
-
it("block node from exiting on error", async () => {
|
|
684
|
+
(0, vitest_1.it)("block node from exiting on error", async () => {
|
|
685
685
|
if (runtime) {
|
|
686
686
|
const { $ } = await Promise.resolve().then(() => __importStar(require("zx")));
|
|
687
687
|
const start = Date.now();
|
|
688
688
|
await $ `${runtime} "import { timeouted } from './src/timeouted.ts'; timeouted(Promise.reject(new Error('fail')), { timeout: 10000 })"`;
|
|
689
689
|
const duration = Date.now() - start;
|
|
690
|
-
expect(duration).toBeLessThan(2000);
|
|
690
|
+
(0, vitest_1.expect)(duration).toBeLessThan(2000);
|
|
691
691
|
}
|
|
692
692
|
});
|
|
693
|
-
it("block node from exiting on timeout", async () => {
|
|
693
|
+
(0, vitest_1.it)("block node from exiting on timeout", async () => {
|
|
694
694
|
if (runtime) {
|
|
695
695
|
const { $ } = await Promise.resolve().then(() => __importStar(require("zx")));
|
|
696
696
|
const start = Date.now();
|
|
697
697
|
await $ `${runtime} "import { timeouted } from './src/timeouted.ts'; timeouted(new Promise(() => {}), { timeout: 10 })"`;
|
|
698
698
|
const duration = Date.now() - start;
|
|
699
|
-
expect(duration).toBeLessThan(2000);
|
|
699
|
+
(0, vitest_1.expect)(duration).toBeLessThan(2000);
|
|
700
700
|
}
|
|
701
701
|
});
|
|
702
702
|
});
|
|
703
|
-
describe("createTimeoutResult", () => {
|
|
704
|
-
it("should create success result", () => {
|
|
703
|
+
(0, vitest_1.describe)("createTimeoutResult", () => {
|
|
704
|
+
(0, vitest_1.it)("should create success result", () => {
|
|
705
705
|
const result = (0, timeouted_js_1.createTimeoutResult)({
|
|
706
706
|
state: "success",
|
|
707
707
|
value: "data",
|
|
708
|
+
duration: 100,
|
|
709
|
+
ctx: undefined,
|
|
708
710
|
});
|
|
709
711
|
if ((0, timeouted_js_1.isSuccess)(result)) {
|
|
710
|
-
expect((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
711
|
-
expect(result.value).toBe("data");
|
|
712
|
-
expect(result.duration).toBeGreaterThanOrEqual(0);
|
|
712
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isSuccess)(result)).toBe(true);
|
|
713
|
+
(0, vitest_1.expect)(result.value).toBe("data");
|
|
714
|
+
(0, vitest_1.expect)(result.duration).toBeGreaterThanOrEqual(0);
|
|
713
715
|
}
|
|
714
716
|
else {
|
|
715
|
-
assert.fail("Result should be success");
|
|
717
|
+
vitest_1.assert.fail("Result should be success");
|
|
716
718
|
}
|
|
717
719
|
});
|
|
718
|
-
it("should create abort result", () => {
|
|
720
|
+
(0, vitest_1.it)("should create abort result", () => {
|
|
719
721
|
const result = (0, timeouted_js_1.createTimeoutResult)({
|
|
720
722
|
state: "aborted",
|
|
721
723
|
reason: "user abort",
|
|
724
|
+
duration: 100,
|
|
725
|
+
ctx: undefined,
|
|
722
726
|
});
|
|
723
727
|
if ((0, timeouted_js_1.isAborted)(result)) {
|
|
724
|
-
expect((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
725
|
-
expect(result.reason).toBe("user abort");
|
|
726
|
-
expect(result.duration).toBeGreaterThanOrEqual(0);
|
|
728
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isAborted)(result)).toBe(true);
|
|
729
|
+
(0, vitest_1.expect)(result.reason).toBe("user abort");
|
|
730
|
+
(0, vitest_1.expect)(result.duration).toBeGreaterThanOrEqual(0);
|
|
727
731
|
}
|
|
728
732
|
else {
|
|
729
|
-
assert.fail("Result should be aborted");
|
|
733
|
+
vitest_1.assert.fail("Result should be aborted");
|
|
730
734
|
}
|
|
731
735
|
});
|
|
732
|
-
it("should create error result", () => {
|
|
736
|
+
(0, vitest_1.it)("should create error result", () => {
|
|
733
737
|
const result = (0, timeouted_js_1.createTimeoutResult)({
|
|
734
738
|
state: "error",
|
|
735
739
|
error: new Error("user abort"),
|
|
740
|
+
duration: 100,
|
|
741
|
+
ctx: undefined,
|
|
736
742
|
});
|
|
737
743
|
if ((0, timeouted_js_1.isError)(result)) {
|
|
738
|
-
expect((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
739
|
-
expect(result.error.message).toBe("user abort");
|
|
740
|
-
expect(result.duration).toBeGreaterThanOrEqual(0);
|
|
744
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isError)(result)).toBe(true);
|
|
745
|
+
(0, vitest_1.expect)(result.error.message).toBe("user abort");
|
|
746
|
+
(0, vitest_1.expect)(result.duration).toBeGreaterThanOrEqual(0);
|
|
741
747
|
}
|
|
742
748
|
else {
|
|
743
|
-
assert.fail("Result should be error");
|
|
749
|
+
vitest_1.assert.fail("Result should be error");
|
|
744
750
|
}
|
|
745
751
|
});
|
|
746
|
-
it("should create timeout result", () => {
|
|
752
|
+
(0, vitest_1.it)("should create timeout result", () => {
|
|
747
753
|
const result = (0, timeouted_js_1.createTimeoutResult)({
|
|
748
754
|
state: "timeout",
|
|
755
|
+
duration: 100,
|
|
756
|
+
ctx: undefined,
|
|
749
757
|
});
|
|
750
758
|
if ((0, timeouted_js_1.isTimeout)(result)) {
|
|
751
|
-
expect((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
752
|
-
expect(result.duration).toBeGreaterThanOrEqual(0);
|
|
759
|
+
(0, vitest_1.expect)((0, timeouted_js_1.isTimeout)(result)).toBe(true);
|
|
760
|
+
(0, vitest_1.expect)(result.duration).toBeGreaterThanOrEqual(0);
|
|
753
761
|
}
|
|
754
762
|
else {
|
|
755
|
-
assert.fail("Result should be timeout");
|
|
763
|
+
vitest_1.assert.fail("Result should be timeout");
|
|
756
764
|
}
|
|
757
765
|
});
|
|
766
|
+
(0, vitest_1.it)("timeoutd return isTimeouted", async () => {
|
|
767
|
+
const result = await (0, timeouted_js_1.timeouted)(Promise.resolve("data"), { timeout: 1000 });
|
|
768
|
+
switch (true) {
|
|
769
|
+
case result.isSuccess(): {
|
|
770
|
+
(0, vitest_1.expectTypeOf)().toEqualTypeOf();
|
|
771
|
+
break;
|
|
772
|
+
}
|
|
773
|
+
case result.isTimeout(): {
|
|
774
|
+
(0, vitest_1.expectTypeOf)().toEqualTypeOf();
|
|
775
|
+
break;
|
|
776
|
+
}
|
|
777
|
+
case result.isAborted(): {
|
|
778
|
+
(0, vitest_1.expectTypeOf)().toEqualTypeOf();
|
|
779
|
+
break;
|
|
780
|
+
}
|
|
781
|
+
case result.isError(): {
|
|
782
|
+
(0, vitest_1.expectTypeOf)().toEqualTypeOf();
|
|
783
|
+
break;
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
(0, vitest_1.expectTypeOf)(result).toEqualTypeOf();
|
|
787
|
+
});
|
|
758
788
|
});
|
|
759
789
|
//# sourceMappingURL=timeouted.test.js.map
|