@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
|
@@ -34,12 +34,11 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
const cement_1 = require("@adviser/cement");
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
it("sequence", async () => {
|
|
37
|
+
const vitest_1 = require("vitest");
|
|
38
|
+
(0, vitest_1.describe)("resolve-once", () => {
|
|
39
|
+
(0, vitest_1.it)("sequence", async () => {
|
|
41
40
|
const once = new cement_1.ResolveOnce();
|
|
42
|
-
const reallyOnce = vi.fn(async () => {
|
|
41
|
+
const reallyOnce = vitest_1.vi.fn(async () => {
|
|
43
42
|
return new Promise((resolve) => {
|
|
44
43
|
setTimeout(() => {
|
|
45
44
|
resolve(42);
|
|
@@ -48,20 +47,20 @@ describe("resolve-once", () => {
|
|
|
48
47
|
});
|
|
49
48
|
const start = performance.now();
|
|
50
49
|
const fn = () => once.once(async () => reallyOnce());
|
|
51
|
-
expect(reallyOnce).toHaveBeenCalledTimes(0);
|
|
52
|
-
expect(await fn()).toBe(42);
|
|
53
|
-
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
|
54
|
-
expect(await fn()).toBe(42);
|
|
55
|
-
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
|
56
|
-
expect(await fn()).toBe(42);
|
|
57
|
-
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
|
50
|
+
(0, vitest_1.expect)(reallyOnce).toHaveBeenCalledTimes(0);
|
|
51
|
+
(0, vitest_1.expect)(await fn()).toBe(42);
|
|
52
|
+
(0, vitest_1.expect)(reallyOnce).toHaveBeenCalledTimes(1);
|
|
53
|
+
(0, vitest_1.expect)(await fn()).toBe(42);
|
|
54
|
+
(0, vitest_1.expect)(reallyOnce).toHaveBeenCalledTimes(1);
|
|
55
|
+
(0, vitest_1.expect)(await fn()).toBe(42);
|
|
56
|
+
(0, vitest_1.expect)(reallyOnce).toHaveBeenCalledTimes(1);
|
|
58
57
|
const diff = performance.now() - start;
|
|
59
|
-
expect(diff).toBeGreaterThanOrEqual(90);
|
|
60
|
-
expect(diff).toBeLessThan(150);
|
|
58
|
+
(0, vitest_1.expect)(diff).toBeGreaterThanOrEqual(90);
|
|
59
|
+
(0, vitest_1.expect)(diff).toBeLessThan(150);
|
|
61
60
|
});
|
|
62
|
-
it("parallel", async () => {
|
|
61
|
+
(0, vitest_1.it)("parallel", async () => {
|
|
63
62
|
const once = new cement_1.ResolveOnce();
|
|
64
|
-
const reallyOnce = vi.fn(async () => {
|
|
63
|
+
const reallyOnce = vitest_1.vi.fn(async () => {
|
|
65
64
|
return new Promise((resolve) => {
|
|
66
65
|
setTimeout(() => {
|
|
67
66
|
resolve(42);
|
|
@@ -70,18 +69,18 @@ describe("resolve-once", () => {
|
|
|
70
69
|
});
|
|
71
70
|
const fn = () => once.once(async () => reallyOnce());
|
|
72
71
|
const start = performance.now();
|
|
73
|
-
expect(await Promise.all(Array(100)
|
|
72
|
+
(0, vitest_1.expect)(await Promise.all(Array(100)
|
|
74
73
|
.fill(fn)
|
|
75
74
|
.map((fn) => fn()))).toEqual(Array(100).fill(42));
|
|
76
|
-
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
|
75
|
+
(0, vitest_1.expect)(reallyOnce).toHaveBeenCalledTimes(1);
|
|
77
76
|
const diff = performance.now() - start;
|
|
78
|
-
expect(diff).toBeGreaterThanOrEqual(95);
|
|
79
|
-
expect(diff).toBeLessThan(150);
|
|
77
|
+
(0, vitest_1.expect)(diff).toBeGreaterThanOrEqual(95);
|
|
78
|
+
(0, vitest_1.expect)(diff).toBeLessThan(150);
|
|
80
79
|
});
|
|
81
|
-
it("async works with void", async () => {
|
|
80
|
+
(0, vitest_1.it)("async works with void", async () => {
|
|
82
81
|
const cnt = 1;
|
|
83
82
|
const once = new cement_1.ResolveOnce();
|
|
84
|
-
const reallyOnce = vi.fn(async () => {
|
|
83
|
+
const reallyOnce = vitest_1.vi.fn(async () => {
|
|
85
84
|
return new Promise((resolve) => {
|
|
86
85
|
setTimeout(() => {
|
|
87
86
|
resolve();
|
|
@@ -92,26 +91,26 @@ describe("resolve-once", () => {
|
|
|
92
91
|
return reallyOnce();
|
|
93
92
|
});
|
|
94
93
|
const start = performance.now();
|
|
95
|
-
expect(await Promise.all(Array(cnt)
|
|
94
|
+
(0, vitest_1.expect)(await Promise.all(Array(cnt)
|
|
96
95
|
.fill(fn)
|
|
97
96
|
.map((fn) => fn()))).toEqual(Array(cnt).fill(undefined));
|
|
98
|
-
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
|
97
|
+
(0, vitest_1.expect)(reallyOnce).toHaveBeenCalledTimes(1);
|
|
99
98
|
const diff = performance.now() - start;
|
|
100
|
-
expect(diff).toBeGreaterThanOrEqual(95);
|
|
101
|
-
expect(diff).toBeLessThan(150);
|
|
99
|
+
(0, vitest_1.expect)(diff).toBeGreaterThanOrEqual(95);
|
|
100
|
+
(0, vitest_1.expect)(diff).toBeLessThan(150);
|
|
102
101
|
});
|
|
103
|
-
it("sync works with void", () => {
|
|
102
|
+
(0, vitest_1.it)("sync works with void", () => {
|
|
104
103
|
const once = new cement_1.ResolveOnce();
|
|
105
|
-
const reallyOnce = vi.fn(() => 19);
|
|
104
|
+
const reallyOnce = vitest_1.vi.fn(() => 19);
|
|
106
105
|
const val = once.once(() => {
|
|
107
106
|
reallyOnce();
|
|
108
107
|
});
|
|
109
|
-
expect(Array(100).fill(val)).toEqual(Array(100).fill(undefined));
|
|
110
|
-
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
|
108
|
+
(0, vitest_1.expect)(Array(100).fill(val)).toEqual(Array(100).fill(undefined));
|
|
109
|
+
(0, vitest_1.expect)(reallyOnce).toHaveBeenCalledTimes(1);
|
|
111
110
|
});
|
|
112
|
-
it("throws", async () => {
|
|
111
|
+
(0, vitest_1.it)("throws", async () => {
|
|
113
112
|
const once = new cement_1.ResolveOnce();
|
|
114
|
-
const reallyOnce = vi.fn(async () => {
|
|
113
|
+
const reallyOnce = vitest_1.vi.fn(async () => {
|
|
115
114
|
return new Promise((rs, rj) => {
|
|
116
115
|
setTimeout(() => {
|
|
117
116
|
rj(new Error("nope"));
|
|
@@ -124,11 +123,11 @@ describe("resolve-once", () => {
|
|
|
124
123
|
for (let i = 0; i < 100; i++) {
|
|
125
124
|
fn()
|
|
126
125
|
.then(() => {
|
|
127
|
-
assert.fail("should not happen");
|
|
126
|
+
vitest_1.assert.fail("should not happen");
|
|
128
127
|
})
|
|
129
128
|
.catch((e) => {
|
|
130
|
-
expect(e).toEqual(new Error("nope"));
|
|
131
|
-
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
|
129
|
+
(0, vitest_1.expect)(e).toEqual(new Error("nope"));
|
|
130
|
+
(0, vitest_1.expect)(reallyOnce).toHaveBeenCalledTimes(1);
|
|
132
131
|
if (i === 99) {
|
|
133
132
|
rs(undefined);
|
|
134
133
|
}
|
|
@@ -136,12 +135,12 @@ describe("resolve-once", () => {
|
|
|
136
135
|
}
|
|
137
136
|
});
|
|
138
137
|
const diff = performance.now() - start;
|
|
139
|
-
expect(diff).toBeGreaterThanOrEqual(99);
|
|
140
|
-
expect(diff).toBeLessThan(250);
|
|
138
|
+
(0, vitest_1.expect)(diff).toBeGreaterThanOrEqual(99);
|
|
139
|
+
(0, vitest_1.expect)(diff).toBeLessThan(250);
|
|
141
140
|
});
|
|
142
|
-
it("preserves order", async () => {
|
|
141
|
+
(0, vitest_1.it)("preserves order", async () => {
|
|
143
142
|
const once = new cement_1.ResolveOnce();
|
|
144
|
-
const reallyOnce = vi.fn(async () => {
|
|
143
|
+
const reallyOnce = vitest_1.vi.fn(async () => {
|
|
145
144
|
return new Promise((resolve) => {
|
|
146
145
|
setTimeout(() => {
|
|
147
146
|
resolve(42);
|
|
@@ -155,19 +154,19 @@ describe("resolve-once", () => {
|
|
|
155
154
|
return `${o}:${ret}`;
|
|
156
155
|
};
|
|
157
156
|
const start = performance.now();
|
|
158
|
-
expect(await Promise.all(Array(100)
|
|
157
|
+
(0, vitest_1.expect)(await Promise.all(Array(100)
|
|
159
158
|
.fill(fn)
|
|
160
159
|
.map((fn) => fn()))).toEqual(Array(100)
|
|
161
160
|
.fill(undefined)
|
|
162
161
|
.map((_, i) => `${i}:42`));
|
|
163
|
-
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
|
162
|
+
(0, vitest_1.expect)(reallyOnce).toHaveBeenCalledTimes(1);
|
|
164
163
|
const diff = performance.now() - start;
|
|
165
|
-
expect(diff).toBeGreaterThanOrEqual(95);
|
|
166
|
-
expect(diff).toBeLessThan(150);
|
|
164
|
+
(0, vitest_1.expect)(diff).toBeGreaterThanOrEqual(95);
|
|
165
|
+
(0, vitest_1.expect)(diff).toBeLessThan(150);
|
|
167
166
|
});
|
|
168
|
-
it("preserves call order to resolv order", async () => {
|
|
167
|
+
(0, vitest_1.it)("preserves call order to resolv order", async () => {
|
|
169
168
|
const once = new cement_1.ResolveOnce();
|
|
170
|
-
const reallyOnce = vi.fn(async () => {
|
|
169
|
+
const reallyOnce = vitest_1.vi.fn(async () => {
|
|
171
170
|
return new Promise((resolve) => {
|
|
172
171
|
setTimeout(() => {
|
|
173
172
|
resolve(42);
|
|
@@ -175,7 +174,7 @@ describe("resolve-once", () => {
|
|
|
175
174
|
});
|
|
176
175
|
});
|
|
177
176
|
const start = performance.now();
|
|
178
|
-
const orderFn = vi.fn();
|
|
177
|
+
const orderFn = vitest_1.vi.fn();
|
|
179
178
|
const fns = Array(100)
|
|
180
179
|
.fill(0)
|
|
181
180
|
.map((_, i) => {
|
|
@@ -186,21 +185,21 @@ describe("resolve-once", () => {
|
|
|
186
185
|
return `${i}:${once}`;
|
|
187
186
|
});
|
|
188
187
|
});
|
|
189
|
-
expect(await Promise.all(fns)).toEqual(Array(100)
|
|
188
|
+
(0, vitest_1.expect)(await Promise.all(fns)).toEqual(Array(100)
|
|
190
189
|
.fill(undefined)
|
|
191
190
|
.map((_, i) => `${i}:42`));
|
|
192
|
-
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
|
191
|
+
(0, vitest_1.expect)(reallyOnce).toHaveBeenCalledTimes(1);
|
|
193
192
|
const diff = performance.now() - start;
|
|
194
|
-
expect(diff).toBeGreaterThanOrEqual(95);
|
|
195
|
-
expect(diff).toBeLessThan(150);
|
|
196
|
-
expect(orderFn).toHaveBeenCalledTimes(100);
|
|
197
|
-
expect(orderFn.mock.calls.map(([i]) => i)).toEqual(Array(100)
|
|
193
|
+
(0, vitest_1.expect)(diff).toBeGreaterThanOrEqual(95);
|
|
194
|
+
(0, vitest_1.expect)(diff).toBeLessThan(150);
|
|
195
|
+
(0, vitest_1.expect)(orderFn).toHaveBeenCalledTimes(100);
|
|
196
|
+
(0, vitest_1.expect)(orderFn.mock.calls.map(([i]) => i)).toEqual(Array(100)
|
|
198
197
|
.fill(0)
|
|
199
198
|
.map((_, i) => i));
|
|
200
199
|
});
|
|
201
|
-
it("reset", async () => {
|
|
200
|
+
(0, vitest_1.it)("reset", async () => {
|
|
202
201
|
const once = new cement_1.ResolveOnce();
|
|
203
|
-
const orderFn = vi.fn(() => Promise.resolve(42));
|
|
202
|
+
const orderFn = vitest_1.vi.fn(() => Promise.resolve(42));
|
|
204
203
|
await once.once(orderFn);
|
|
205
204
|
await once.once(orderFn);
|
|
206
205
|
await once.once(orderFn);
|
|
@@ -211,105 +210,106 @@ describe("resolve-once", () => {
|
|
|
211
210
|
await once.once(orderFn);
|
|
212
211
|
await once.once(orderFn);
|
|
213
212
|
void once.reset();
|
|
214
|
-
expect(orderFn).toHaveBeenCalledTimes(3);
|
|
213
|
+
(0, vitest_1.expect)(orderFn).toHaveBeenCalledTimes(3);
|
|
215
214
|
});
|
|
216
|
-
it("keyed", async () => {
|
|
215
|
+
(0, vitest_1.it)("keyed", async () => {
|
|
217
216
|
const keyed = new cement_1.KeyedResolvOnce();
|
|
218
|
-
const a_orderFn = vi.fn(() => Promise.resolve(42));
|
|
219
|
-
const b_orderFn = vi.fn(() => Promise.resolve(42));
|
|
217
|
+
const a_orderFn = vitest_1.vi.fn(() => Promise.resolve(42));
|
|
218
|
+
const b_orderFn = vitest_1.vi.fn(() => Promise.resolve(42));
|
|
220
219
|
for (let i = 0; i < 5; i++) {
|
|
221
220
|
await keyed.get("a").once(a_orderFn);
|
|
222
221
|
await keyed.get(() => "a").once(a_orderFn);
|
|
223
222
|
await keyed.get("b").once(b_orderFn);
|
|
224
223
|
await keyed.get(() => "b").once(b_orderFn);
|
|
225
|
-
expect(a_orderFn).toHaveBeenCalledTimes(i + 1);
|
|
226
|
-
expect(b_orderFn).toHaveBeenCalledTimes(i + 1);
|
|
224
|
+
(0, vitest_1.expect)(a_orderFn).toHaveBeenCalledTimes(i + 1);
|
|
225
|
+
(0, vitest_1.expect)(b_orderFn).toHaveBeenCalledTimes(i + 1);
|
|
227
226
|
keyed.reset();
|
|
228
227
|
}
|
|
229
228
|
});
|
|
230
|
-
it("keyed with pass ctx", async () => {
|
|
229
|
+
(0, vitest_1.it)("keyed with pass ctx", async () => {
|
|
231
230
|
const keyed = new cement_1.KeyedResolvOnce();
|
|
232
|
-
const a_orderFn = vi.fn((key) => Promise.resolve(key));
|
|
233
|
-
const b_orderFn = vi.fn((key) => Promise.resolve(key));
|
|
231
|
+
const a_orderFn = vitest_1.vi.fn((key) => Promise.resolve(key));
|
|
232
|
+
const b_orderFn = vitest_1.vi.fn((key) => Promise.resolve(key));
|
|
234
233
|
await Promise.all([
|
|
235
234
|
keyed.get("a").once(a_orderFn),
|
|
236
235
|
keyed.get(() => "a").once(a_orderFn),
|
|
237
236
|
keyed.get("b").once(b_orderFn),
|
|
238
237
|
keyed.get(() => "b").once(b_orderFn),
|
|
239
238
|
]);
|
|
240
|
-
expect(a_orderFn).toHaveBeenCalledTimes(1);
|
|
241
|
-
expect(a_orderFn).
|
|
239
|
+
(0, vitest_1.expect)(a_orderFn).toHaveBeenCalledTimes(1);
|
|
240
|
+
(0, vitest_1.expect)(a_orderFn.mock.calls[0][0].ctx).toEqual({
|
|
242
241
|
refKey: "a",
|
|
243
242
|
givenKey: "a",
|
|
244
243
|
value: undefined,
|
|
245
244
|
ctx: {},
|
|
246
|
-
}
|
|
247
|
-
expect(b_orderFn).toHaveBeenCalledTimes(1);
|
|
248
|
-
expect(b_orderFn).
|
|
245
|
+
});
|
|
246
|
+
(0, vitest_1.expect)(b_orderFn).toHaveBeenCalledTimes(1);
|
|
247
|
+
(0, vitest_1.expect)(b_orderFn.mock.calls[0][0].ctx).toEqual({
|
|
249
248
|
refKey: "b",
|
|
250
249
|
givenKey: "b",
|
|
251
250
|
value: undefined,
|
|
252
251
|
ctx: {},
|
|
253
|
-
}
|
|
252
|
+
});
|
|
254
253
|
});
|
|
255
|
-
it("keyedResolvOnce with pass ctx & {key: K}", () => {
|
|
254
|
+
(0, vitest_1.it)("keyedResolvOnce with pass ctx & {key: K}", () => {
|
|
256
255
|
const my = new cement_1.KeyedResolvOnce({ ctx: { wurst: "world" } });
|
|
257
|
-
my.get(1).once((item) => {
|
|
258
|
-
assertType(item);
|
|
259
|
-
assertType(item);
|
|
260
|
-
assertType(item.givenKey);
|
|
261
|
-
assertType(item.ctx.wurst);
|
|
262
|
-
expect(item.givenKey).toBe(1);
|
|
263
|
-
expect(item.ctx.wurst).toBe("world");
|
|
256
|
+
my.get(1).once(({ ctx: item }) => {
|
|
257
|
+
(0, vitest_1.assertType)(item);
|
|
258
|
+
(0, vitest_1.assertType)(item);
|
|
259
|
+
(0, vitest_1.assertType)(item.givenKey);
|
|
260
|
+
(0, vitest_1.assertType)(item.ctx.wurst);
|
|
261
|
+
(0, vitest_1.expect)(item.givenKey).toBe(1);
|
|
262
|
+
(0, vitest_1.expect)(item.ctx.wurst).toBe("world");
|
|
264
263
|
return { hello: "world" };
|
|
265
264
|
});
|
|
266
265
|
});
|
|
267
|
-
it("keyedResolvSeq with pass ctx & {key: K}", () => {
|
|
266
|
+
(0, vitest_1.it)("keyedResolvSeq with pass ctx & {key: K}", () => {
|
|
268
267
|
const my = new cement_1.KeyedResolvSeq({ ctx: { wurst: "world" } });
|
|
269
268
|
my.get(1).add((item) => {
|
|
270
|
-
assertType(item);
|
|
271
|
-
assertType(item);
|
|
272
|
-
assertType(item.givenKey);
|
|
273
|
-
assertType(item.ctx.wurst);
|
|
274
|
-
expect(item.ctx.wurst).toBe("world");
|
|
275
|
-
expect(item.givenKey).toBe(1);
|
|
269
|
+
(0, vitest_1.assertType)(item);
|
|
270
|
+
(0, vitest_1.assertType)(item);
|
|
271
|
+
(0, vitest_1.assertType)(item.givenKey);
|
|
272
|
+
(0, vitest_1.assertType)(item.ctx.wurst);
|
|
273
|
+
(0, vitest_1.expect)(item.ctx.wurst).toBe("world");
|
|
274
|
+
(0, vitest_1.expect)(item.givenKey).toBe(1);
|
|
276
275
|
return { hello: "world" };
|
|
277
276
|
});
|
|
278
277
|
});
|
|
279
|
-
it("ResolveOnce plain", () => {
|
|
278
|
+
(0, vitest_1.it)("ResolveOnce plain", () => {
|
|
280
279
|
const my = new cement_1.ResolveOnce();
|
|
281
280
|
my.once(() => {
|
|
282
281
|
return { hello: "world" };
|
|
283
282
|
});
|
|
284
|
-
my.once((
|
|
285
|
-
return { hello:
|
|
283
|
+
my.once(({ ctx }) => {
|
|
284
|
+
return { hello: ctx.wurst };
|
|
286
285
|
});
|
|
287
286
|
});
|
|
288
|
-
it("keyedResolvOnce with pass decompose", () => {
|
|
287
|
+
(0, vitest_1.it)("keyedResolvOnce with pass decompose", () => {
|
|
289
288
|
const my = new cement_1.KeyedResolvOnce();
|
|
290
|
-
my.get("1").once(({
|
|
291
|
-
|
|
289
|
+
my.get("1").once(({ ctx }) => {
|
|
290
|
+
const { refKey } = ctx;
|
|
291
|
+
(0, vitest_1.assertType)(refKey);
|
|
292
292
|
return { hello: "world" };
|
|
293
293
|
});
|
|
294
294
|
my.get("2").once(() => {
|
|
295
295
|
return { hello: "world" };
|
|
296
296
|
});
|
|
297
|
-
my.get("3").once((ctx) => {
|
|
298
|
-
assertType(ctx);
|
|
297
|
+
my.get("3").once(({ ctx }) => {
|
|
298
|
+
(0, vitest_1.assertType)(ctx);
|
|
299
299
|
return { hello: "world" };
|
|
300
300
|
});
|
|
301
301
|
});
|
|
302
|
-
it("keyedResolvOnce with pass decompose", () => {
|
|
302
|
+
(0, vitest_1.it)("keyedResolvOnce with pass decompose", () => {
|
|
303
303
|
const my = new cement_1.KeyedResolvSeq();
|
|
304
304
|
my.get("1").add(({ refKey: key }) => {
|
|
305
|
-
assertType(key);
|
|
305
|
+
(0, vitest_1.assertType)(key);
|
|
306
306
|
return { hello: "world" };
|
|
307
307
|
});
|
|
308
308
|
});
|
|
309
|
-
it("keyed asyncGet", async () => {
|
|
309
|
+
(0, vitest_1.it)("keyed asyncGet", async () => {
|
|
310
310
|
const keyed = new cement_1.KeyedResolvOnce();
|
|
311
|
-
const a_orderFn = vi.fn((key) => Promise.resolve(key));
|
|
312
|
-
const b_orderFn = vi.fn((key) => Promise.resolve(key));
|
|
311
|
+
const a_orderFn = vitest_1.vi.fn((key) => Promise.resolve(key));
|
|
312
|
+
const b_orderFn = vitest_1.vi.fn((key) => Promise.resolve(key));
|
|
313
313
|
await Promise.all([
|
|
314
314
|
keyed
|
|
315
315
|
.asyncGet(async () => {
|
|
@@ -324,20 +324,20 @@ describe("resolve-once", () => {
|
|
|
324
324
|
})
|
|
325
325
|
.then((resolveOnce) => resolveOnce.once(b_orderFn)),
|
|
326
326
|
]);
|
|
327
|
-
expect(a_orderFn).toHaveBeenCalledTimes(1);
|
|
328
|
-
expect(a_orderFn).
|
|
327
|
+
(0, vitest_1.expect)(a_orderFn).toHaveBeenCalledTimes(1);
|
|
328
|
+
(0, vitest_1.expect)(a_orderFn.mock.calls[0][0].ctx).toEqual({
|
|
329
329
|
ctx: {},
|
|
330
330
|
givenKey: "a",
|
|
331
331
|
refKey: "a",
|
|
332
332
|
value: undefined,
|
|
333
|
-
}
|
|
334
|
-
expect(b_orderFn).toHaveBeenCalledTimes(1);
|
|
335
|
-
expect(b_orderFn).
|
|
333
|
+
});
|
|
334
|
+
(0, vitest_1.expect)(b_orderFn).toHaveBeenCalledTimes(1);
|
|
335
|
+
(0, vitest_1.expect)(b_orderFn.mock.calls[0][0].ctx).toEqual({
|
|
336
336
|
ctx: {},
|
|
337
337
|
givenKey: "b",
|
|
338
338
|
refKey: "b",
|
|
339
339
|
value: undefined,
|
|
340
|
-
}
|
|
340
|
+
});
|
|
341
341
|
});
|
|
342
342
|
function shuffle(array) {
|
|
343
343
|
let currentIndex = array.length;
|
|
@@ -348,7 +348,7 @@ describe("resolve-once", () => {
|
|
|
348
348
|
}
|
|
349
349
|
return array;
|
|
350
350
|
}
|
|
351
|
-
it("ResolveSeq", async () => {
|
|
351
|
+
(0, vitest_1.it)("ResolveSeq", async () => {
|
|
352
352
|
const seq = new cement_1.ResolveSeq();
|
|
353
353
|
let enter = 0;
|
|
354
354
|
let leave = 0;
|
|
@@ -356,20 +356,20 @@ describe("resolve-once", () => {
|
|
|
356
356
|
.fill(0)
|
|
357
357
|
.map((_, i) => {
|
|
358
358
|
return seq.add(async () => {
|
|
359
|
-
expect(enter++).toBe(i);
|
|
359
|
+
(0, vitest_1.expect)(enter++).toBe(i);
|
|
360
360
|
await new Promise((resolve) => setTimeout(resolve, i * 3));
|
|
361
361
|
await new Promise((resolve) => setTimeout(resolve, i * 2));
|
|
362
|
-
expect(leave++).toBe(i);
|
|
363
|
-
expect(leave).toBe(enter);
|
|
362
|
+
(0, vitest_1.expect)(leave++).toBe(i);
|
|
363
|
+
(0, vitest_1.expect)(leave).toBe(enter);
|
|
364
364
|
return i;
|
|
365
365
|
}, i);
|
|
366
366
|
});
|
|
367
367
|
const ret = await Promise.all(shuffle(actions));
|
|
368
|
-
expect(ret.length).toBe(10);
|
|
369
|
-
expect(enter).toBe(10);
|
|
370
|
-
expect(leave).toBe(10);
|
|
368
|
+
(0, vitest_1.expect)(ret.length).toBe(10);
|
|
369
|
+
(0, vitest_1.expect)(enter).toBe(10);
|
|
370
|
+
(0, vitest_1.expect)(leave).toBe(10);
|
|
371
371
|
});
|
|
372
|
-
it("with promise", async () => {
|
|
372
|
+
(0, vitest_1.it)("with promise", async () => {
|
|
373
373
|
const once = new cement_1.ResolveOnce();
|
|
374
374
|
let val = 42;
|
|
375
375
|
const fn = async () => {
|
|
@@ -379,29 +379,29 @@ describe("resolve-once", () => {
|
|
|
379
379
|
}, 10);
|
|
380
380
|
});
|
|
381
381
|
};
|
|
382
|
-
expect(await once.once(fn)).toBe(42);
|
|
383
|
-
expect(await once.once(fn)).toBe(42);
|
|
382
|
+
(0, vitest_1.expect)(await once.once(fn)).toBe(42);
|
|
383
|
+
(0, vitest_1.expect)(await once.once(fn)).toBe(42);
|
|
384
384
|
});
|
|
385
|
-
it("without promise", () => {
|
|
385
|
+
(0, vitest_1.it)("without promise", () => {
|
|
386
386
|
const once = new cement_1.ResolveOnce();
|
|
387
387
|
let val = 42;
|
|
388
388
|
const fn = () => val++;
|
|
389
|
-
expect(once.once(fn)).toBe(42);
|
|
390
|
-
expect(once.once(fn)).toBe(42);
|
|
389
|
+
(0, vitest_1.expect)(once.once(fn)).toBe(42);
|
|
390
|
+
(0, vitest_1.expect)(once.once(fn)).toBe(42);
|
|
391
391
|
});
|
|
392
|
-
it("without promise but exception", () => {
|
|
392
|
+
(0, vitest_1.it)("without promise but exception", () => {
|
|
393
393
|
const once = new cement_1.ResolveOnce();
|
|
394
394
|
let val = 42;
|
|
395
395
|
const fn = () => {
|
|
396
396
|
throw new Error(`nope ${val++}`);
|
|
397
397
|
};
|
|
398
|
-
expect(() => once.once(fn)).toThrowError("nope 42");
|
|
399
|
-
expect(() => once.once(fn)).toThrowError("nope 42");
|
|
398
|
+
(0, vitest_1.expect)(() => once.once(fn)).toThrowError("nope 42");
|
|
399
|
+
(0, vitest_1.expect)(() => once.once(fn)).toThrowError("nope 42");
|
|
400
400
|
});
|
|
401
|
-
it.each([() => new Promise((resolve) => setTimeout(resolve, 10)), () => Promise.resolve()])("async with unget", async (sleeper) => {
|
|
401
|
+
vitest_1.it.each([() => new Promise((resolve) => setTimeout(resolve, 10)), () => Promise.resolve()])("async with unget", async (sleeper) => {
|
|
402
402
|
const once = new cement_1.KeyedResolvOnce();
|
|
403
403
|
let triggerUnget = true;
|
|
404
|
-
const fn = vitest.fn();
|
|
404
|
+
const fn = vitest_1.vitest.fn();
|
|
405
405
|
async function onceFn() {
|
|
406
406
|
await sleeper();
|
|
407
407
|
if (triggerUnget) {
|
|
@@ -412,23 +412,23 @@ describe("resolve-once", () => {
|
|
|
412
412
|
fn("second");
|
|
413
413
|
return await sleeper().then(() => "second");
|
|
414
414
|
}
|
|
415
|
-
expect(await once.get("a").once(onceFn)).toBe("first");
|
|
416
|
-
expect(fn).toHaveBeenCalledTimes(1);
|
|
417
|
-
expect(await once.get("a").once(onceFn)).toBe("first");
|
|
418
|
-
expect(fn).toHaveBeenCalledTimes(2);
|
|
415
|
+
(0, vitest_1.expect)(await once.get("a").once(onceFn)).toBe("first");
|
|
416
|
+
(0, vitest_1.expect)(fn).toHaveBeenCalledTimes(1);
|
|
417
|
+
(0, vitest_1.expect)(await once.get("a").once(onceFn)).toBe("first");
|
|
418
|
+
(0, vitest_1.expect)(fn).toHaveBeenCalledTimes(2);
|
|
419
419
|
triggerUnget = false;
|
|
420
|
-
expect(await once.get("a").once(onceFn)).toBe("second");
|
|
421
|
-
expect(fn).toHaveBeenCalledTimes(3);
|
|
422
|
-
expect(await once.get("a").once(onceFn)).toBe("second");
|
|
423
|
-
expect(fn).toHaveBeenCalledTimes(3);
|
|
420
|
+
(0, vitest_1.expect)(await once.get("a").once(onceFn)).toBe("second");
|
|
421
|
+
(0, vitest_1.expect)(fn).toHaveBeenCalledTimes(3);
|
|
422
|
+
(0, vitest_1.expect)(await once.get("a").once(onceFn)).toBe("second");
|
|
423
|
+
(0, vitest_1.expect)(fn).toHaveBeenCalledTimes(3);
|
|
424
424
|
once.unget("a");
|
|
425
|
-
expect(await once.get("a").once(onceFn)).toBe("second");
|
|
426
|
-
expect(fn).toHaveBeenCalledTimes(4);
|
|
425
|
+
(0, vitest_1.expect)(await once.get("a").once(onceFn)).toBe("second");
|
|
426
|
+
(0, vitest_1.expect)(fn).toHaveBeenCalledTimes(4);
|
|
427
427
|
});
|
|
428
|
-
it("sync with unget", () => {
|
|
428
|
+
(0, vitest_1.it)("sync with unget", () => {
|
|
429
429
|
const once = new cement_1.KeyedResolvOnce();
|
|
430
430
|
let triggerUnget = true;
|
|
431
|
-
const fn = vitest.fn();
|
|
431
|
+
const fn = vitest_1.vitest.fn();
|
|
432
432
|
function onceFn() {
|
|
433
433
|
if (triggerUnget) {
|
|
434
434
|
fn("first");
|
|
@@ -438,23 +438,23 @@ describe("resolve-once", () => {
|
|
|
438
438
|
fn("second");
|
|
439
439
|
return "second";
|
|
440
440
|
}
|
|
441
|
-
expect(once.get("a").once(onceFn)).toBe("first");
|
|
442
|
-
expect(fn).toHaveBeenCalledTimes(1);
|
|
443
|
-
expect(once.get("a").once(onceFn)).toBe("first");
|
|
444
|
-
expect(fn).toHaveBeenCalledTimes(2);
|
|
441
|
+
(0, vitest_1.expect)(once.get("a").once(onceFn)).toBe("first");
|
|
442
|
+
(0, vitest_1.expect)(fn).toHaveBeenCalledTimes(1);
|
|
443
|
+
(0, vitest_1.expect)(once.get("a").once(onceFn)).toBe("first");
|
|
444
|
+
(0, vitest_1.expect)(fn).toHaveBeenCalledTimes(2);
|
|
445
445
|
triggerUnget = false;
|
|
446
|
-
expect(once.get("a").once(onceFn)).toBe("second");
|
|
447
|
-
expect(fn).toHaveBeenCalledTimes(3);
|
|
448
|
-
expect(once.get("a").once(onceFn)).toBe("second");
|
|
449
|
-
expect(fn).toHaveBeenCalledTimes(3);
|
|
446
|
+
(0, vitest_1.expect)(once.get("a").once(onceFn)).toBe("second");
|
|
447
|
+
(0, vitest_1.expect)(fn).toHaveBeenCalledTimes(3);
|
|
448
|
+
(0, vitest_1.expect)(once.get("a").once(onceFn)).toBe("second");
|
|
449
|
+
(0, vitest_1.expect)(fn).toHaveBeenCalledTimes(3);
|
|
450
450
|
once.unget("a");
|
|
451
|
-
expect(once.get("a").once(onceFn)).toBe("second");
|
|
452
|
-
expect(fn).toHaveBeenCalledTimes(4);
|
|
451
|
+
(0, vitest_1.expect)(once.get("a").once(onceFn)).toBe("second");
|
|
452
|
+
(0, vitest_1.expect)(fn).toHaveBeenCalledTimes(4);
|
|
453
453
|
});
|
|
454
|
-
it("flush on seq", async () => {
|
|
454
|
+
(0, vitest_1.it)("flush on seq", async () => {
|
|
455
455
|
const seq = new cement_1.ResolveSeq();
|
|
456
456
|
let call = 42;
|
|
457
|
-
const fn = vitest.fn(async () => {
|
|
457
|
+
const fn = vitest_1.vitest.fn(async () => {
|
|
458
458
|
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
459
459
|
return call++;
|
|
460
460
|
});
|
|
@@ -463,32 +463,32 @@ describe("resolve-once", () => {
|
|
|
463
463
|
.map((_, i) => {
|
|
464
464
|
return seq.add(fn, i);
|
|
465
465
|
});
|
|
466
|
-
expect(seq._seqFutures.length).toBe(10);
|
|
466
|
+
(0, vitest_1.expect)(seq._seqFutures.length).toBe(10);
|
|
467
467
|
const flushes = [seq.flush(), seq.flush(), seq.flush(), seq.flush(), seq.flush()];
|
|
468
468
|
await Promise.all(flushes);
|
|
469
|
-
expect(seq._seqFutures.length).toBe(0);
|
|
470
|
-
expect(await Promise.all(results)).toEqual(Array(10)
|
|
469
|
+
(0, vitest_1.expect)(seq._seqFutures.length).toBe(0);
|
|
470
|
+
(0, vitest_1.expect)(await Promise.all(results)).toEqual(Array(10)
|
|
471
471
|
.fill(0)
|
|
472
472
|
.map((_, i) => 42 + i));
|
|
473
|
-
expect(fn).toHaveBeenCalledTimes(10);
|
|
473
|
+
(0, vitest_1.expect)(fn).toHaveBeenCalledTimes(10);
|
|
474
474
|
});
|
|
475
|
-
it("KeyedResolvOnce values", () => {
|
|
475
|
+
(0, vitest_1.it)("KeyedResolvOnce values", () => {
|
|
476
476
|
const keyed = new cement_1.KeyedResolvOnce();
|
|
477
|
-
expect(keyed.values()).toEqual([]);
|
|
477
|
+
(0, vitest_1.expect)(keyed.values()).toEqual([]);
|
|
478
478
|
const a = keyed.get("a");
|
|
479
|
-
expect(keyed.values()).toEqual([]);
|
|
479
|
+
(0, vitest_1.expect)(keyed.values()).toEqual([]);
|
|
480
480
|
a.once(() => 42);
|
|
481
|
-
expect(keyed.values()).toEqual([
|
|
481
|
+
(0, vitest_1.expect)(keyed.values()).toEqual([
|
|
482
482
|
{
|
|
483
483
|
key: "a",
|
|
484
484
|
value: cement_1.Result.Ok(42),
|
|
485
|
-
item: expect.objectContaining({ givenKey: "a", refKey: "a" }),
|
|
485
|
+
item: vitest_1.expect.objectContaining({ givenKey: "a", refKey: "a" }),
|
|
486
486
|
},
|
|
487
487
|
]);
|
|
488
488
|
keyed.get("b").once(() => 43);
|
|
489
|
-
expect(keyed.values()).toEqual([
|
|
490
|
-
{ key: "a", value: cement_1.Result.Ok(42), item: expect.objectContaining({ givenKey: "a", refKey: "a" }) },
|
|
491
|
-
{ key: "b", value: cement_1.Result.Ok(43), item: expect.objectContaining({ givenKey: "b", refKey: "b" }) },
|
|
489
|
+
(0, vitest_1.expect)(keyed.values()).toEqual([
|
|
490
|
+
{ key: "a", value: cement_1.Result.Ok(42), item: vitest_1.expect.objectContaining({ givenKey: "a", refKey: "a" }) },
|
|
491
|
+
{ key: "b", value: cement_1.Result.Ok(43), item: vitest_1.expect.objectContaining({ givenKey: "b", refKey: "b" }) },
|
|
492
492
|
]);
|
|
493
493
|
try {
|
|
494
494
|
keyed.get("c").once(() => {
|
|
@@ -496,28 +496,28 @@ describe("resolve-once", () => {
|
|
|
496
496
|
});
|
|
497
497
|
}
|
|
498
498
|
catch (e) {
|
|
499
|
-
expect(e).toEqual(new Error("nope"));
|
|
499
|
+
(0, vitest_1.expect)(e).toEqual(new Error("nope"));
|
|
500
500
|
}
|
|
501
|
-
expect(keyed.values()).toEqual([
|
|
502
|
-
{ key: "a", value: cement_1.Result.Ok(42), item: expect.objectContaining({ givenKey: "a", refKey: "a" }) },
|
|
503
|
-
{ key: "b", value: cement_1.Result.Ok(43), item: expect.objectContaining({ givenKey: "b", refKey: "b" }) },
|
|
504
|
-
{ key: "c", value: cement_1.Result.Err(new Error("nope")), item: expect.objectContaining({ givenKey: "c", refKey: "c" }) },
|
|
501
|
+
(0, vitest_1.expect)(keyed.values()).toEqual([
|
|
502
|
+
{ key: "a", value: cement_1.Result.Ok(42), item: vitest_1.expect.objectContaining({ givenKey: "a", refKey: "a" }) },
|
|
503
|
+
{ key: "b", value: cement_1.Result.Ok(43), item: vitest_1.expect.objectContaining({ givenKey: "b", refKey: "b" }) },
|
|
504
|
+
{ key: "c", value: cement_1.Result.Err(new Error("nope")), item: vitest_1.expect.objectContaining({ givenKey: "c", refKey: "c" }) },
|
|
505
505
|
]);
|
|
506
506
|
keyed.unget("a");
|
|
507
507
|
keyed.unget("c");
|
|
508
|
-
expect(keyed.values()).toEqual([
|
|
509
|
-
{ key: "b", value: cement_1.Result.Ok(43), item: expect.objectContaining({ givenKey: "b", refKey: "b" }) },
|
|
508
|
+
(0, vitest_1.expect)(keyed.values()).toEqual([
|
|
509
|
+
{ key: "b", value: cement_1.Result.Ok(43), item: vitest_1.expect.objectContaining({ givenKey: "b", refKey: "b" }) },
|
|
510
510
|
]);
|
|
511
511
|
});
|
|
512
|
-
it("KeyedResolvOnce entries", () => {
|
|
512
|
+
(0, vitest_1.it)("KeyedResolvOnce entries", () => {
|
|
513
513
|
const keyed = new cement_1.KeyedResolvOnce();
|
|
514
|
-
expect(Array.from(keyed.entries())).toEqual([]);
|
|
514
|
+
(0, vitest_1.expect)(Array.from(keyed.entries())).toEqual([]);
|
|
515
515
|
const a = keyed.get("a");
|
|
516
|
-
expect(Array.from(keyed.entries())).toEqual([]);
|
|
516
|
+
(0, vitest_1.expect)(Array.from(keyed.entries())).toEqual([]);
|
|
517
517
|
a.once(() => 42);
|
|
518
|
-
expect(Array.from(keyed.entries())).toEqual([{ key: "a", value: cement_1.Result.Ok(42) }]);
|
|
518
|
+
(0, vitest_1.expect)(Array.from(keyed.entries())).toEqual([{ key: "a", value: cement_1.Result.Ok(42) }]);
|
|
519
519
|
keyed.get("b").once(() => 43);
|
|
520
|
-
expect(Array.from(keyed.entries())).toEqual([
|
|
520
|
+
(0, vitest_1.expect)(Array.from(keyed.entries())).toEqual([
|
|
521
521
|
{ key: "a", value: cement_1.Result.Ok(42) },
|
|
522
522
|
{ key: "b", value: cement_1.Result.Ok(43) },
|
|
523
523
|
]);
|
|
@@ -527,93 +527,93 @@ describe("resolve-once", () => {
|
|
|
527
527
|
});
|
|
528
528
|
}
|
|
529
529
|
catch (e) {
|
|
530
|
-
expect(e).toEqual(new Error("nope"));
|
|
530
|
+
(0, vitest_1.expect)(e).toEqual(new Error("nope"));
|
|
531
531
|
}
|
|
532
|
-
expect(Array.from(keyed.entries())).toEqual([
|
|
532
|
+
(0, vitest_1.expect)(Array.from(keyed.entries())).toEqual([
|
|
533
533
|
{ key: "a", value: cement_1.Result.Ok(42) },
|
|
534
534
|
{ key: "b", value: cement_1.Result.Ok(43) },
|
|
535
535
|
{ key: "c", value: cement_1.Result.Err(new Error("nope")) },
|
|
536
536
|
]);
|
|
537
537
|
keyed.unget("a");
|
|
538
538
|
keyed.unget("c");
|
|
539
|
-
expect(Array.from(keyed.entries())).toEqual([{ key: "b", value: cement_1.Result.Ok(43) }]);
|
|
539
|
+
(0, vitest_1.expect)(Array.from(keyed.entries())).toEqual([{ key: "b", value: cement_1.Result.Ok(43) }]);
|
|
540
540
|
});
|
|
541
|
-
it("uses lru cache", () => {
|
|
541
|
+
(0, vitest_1.it)("uses lru cache", () => {
|
|
542
542
|
const keyed = new cement_1.KeyedResolvOnce({ lru: { maxEntries: 2 } });
|
|
543
543
|
for (let i = 0; i < 10; i++) {
|
|
544
544
|
keyed.get(i.toString()).once(() => i);
|
|
545
545
|
}
|
|
546
|
-
expect(keyed.values()).toEqual([
|
|
547
|
-
{ key: "8", value: cement_1.Result.Ok(8), item: expect.objectContaining({ givenKey: "8", refKey: "8" }) },
|
|
548
|
-
{ key: "9", value: cement_1.Result.Ok(9), item: expect.objectContaining({ givenKey: "9", refKey: "9" }) },
|
|
546
|
+
(0, vitest_1.expect)(keyed.values()).toEqual([
|
|
547
|
+
{ key: "8", value: cement_1.Result.Ok(8), item: vitest_1.expect.objectContaining({ givenKey: "8", refKey: "8" }) },
|
|
548
|
+
{ key: "9", value: cement_1.Result.Ok(9), item: vitest_1.expect.objectContaining({ givenKey: "9", refKey: "9" }) },
|
|
549
549
|
]);
|
|
550
550
|
});
|
|
551
|
-
it("resolve once serves ready and value", () => {
|
|
551
|
+
(0, vitest_1.it)("resolve once serves ready and value", () => {
|
|
552
552
|
const once = new cement_1.ResolveOnce();
|
|
553
|
-
expect(once.ready).toBe(false);
|
|
554
|
-
expect(once.value).toBe(undefined);
|
|
553
|
+
(0, vitest_1.expect)(once.ready).toBe(false);
|
|
554
|
+
(0, vitest_1.expect)(once.value).toBe(undefined);
|
|
555
555
|
once.once(() => 42);
|
|
556
|
-
expect(once.ready).toBe(true);
|
|
557
|
-
expect(once.value).toBe(42);
|
|
556
|
+
(0, vitest_1.expect)(once.ready).toBe(true);
|
|
557
|
+
(0, vitest_1.expect)(once.value).toBe(42);
|
|
558
558
|
void once.reset();
|
|
559
|
-
expect(once.ready).toBe(false);
|
|
560
|
-
expect(once.value).toBe(undefined);
|
|
559
|
+
(0, vitest_1.expect)(once.ready).toBe(false);
|
|
560
|
+
(0, vitest_1.expect)(once.value).toBe(undefined);
|
|
561
561
|
});
|
|
562
|
-
it("async resolve once serves ready and value", async () => {
|
|
562
|
+
(0, vitest_1.it)("async resolve once serves ready and value", async () => {
|
|
563
563
|
const once = new cement_1.ResolveOnce();
|
|
564
|
-
expect(once.ready).toBe(false);
|
|
565
|
-
expect(once.value).toBe(undefined);
|
|
564
|
+
(0, vitest_1.expect)(once.ready).toBe(false);
|
|
565
|
+
(0, vitest_1.expect)(once.value).toBe(undefined);
|
|
566
566
|
await once.once(() => Promise.resolve(42));
|
|
567
|
-
expect(once.ready).toBe(true);
|
|
568
|
-
expect(once.value).toBe(42);
|
|
567
|
+
(0, vitest_1.expect)(once.ready).toBe(true);
|
|
568
|
+
(0, vitest_1.expect)(once.value).toBe(42);
|
|
569
569
|
void once.reset();
|
|
570
|
-
expect(once.ready).toBe(false);
|
|
571
|
-
expect(once.value).toBe(undefined);
|
|
570
|
+
(0, vitest_1.expect)(once.ready).toBe(false);
|
|
571
|
+
(0, vitest_1.expect)(once.value).toBe(undefined);
|
|
572
572
|
});
|
|
573
|
-
it("keyed expose onAdd on onDelete", () => {
|
|
573
|
+
(0, vitest_1.it)("keyed expose onAdd on onDelete", () => {
|
|
574
574
|
const k = new cement_1.KeyedResolvOnce();
|
|
575
|
-
const fn = vi.fn();
|
|
575
|
+
const fn = vitest_1.vi.fn();
|
|
576
576
|
k.onSet(fn)();
|
|
577
577
|
k.onDelete(fn)();
|
|
578
578
|
});
|
|
579
|
-
it("test async version of once", () => {
|
|
579
|
+
(0, vitest_1.it)("test async version of once", () => {
|
|
580
580
|
const r = new cement_1.ResolveOnce();
|
|
581
581
|
const x = r.once(() => Promise.resolve(1));
|
|
582
|
-
assertType(x);
|
|
582
|
+
(0, vitest_1.assertType)(x);
|
|
583
583
|
const rv = new cement_1.ResolveOnce();
|
|
584
584
|
const xv = rv.once(async () => {
|
|
585
585
|
});
|
|
586
|
-
assertType(xv);
|
|
586
|
+
(0, vitest_1.assertType)(xv);
|
|
587
587
|
});
|
|
588
|
-
it("test sync version of once", () => {
|
|
588
|
+
(0, vitest_1.it)("test sync version of once", () => {
|
|
589
589
|
const r = new cement_1.ResolveOnce();
|
|
590
590
|
const x = r.once(() => 1);
|
|
591
|
-
assertType(x);
|
|
591
|
+
(0, vitest_1.assertType)(x);
|
|
592
592
|
const rv = new cement_1.ResolveOnce();
|
|
593
593
|
const xv = rv.once(() => {
|
|
594
594
|
});
|
|
595
|
-
assertType(xv);
|
|
595
|
+
(0, vitest_1.assertType)(xv);
|
|
596
596
|
});
|
|
597
|
-
it("once return undefined", () => {
|
|
597
|
+
(0, vitest_1.it)("once return undefined", () => {
|
|
598
598
|
const once = new cement_1.ResolveOnce();
|
|
599
599
|
const x = once.once(() => {
|
|
600
600
|
return;
|
|
601
601
|
});
|
|
602
|
-
expect(x).toBe(undefined);
|
|
602
|
+
(0, vitest_1.expect)(x).toBe(undefined);
|
|
603
603
|
});
|
|
604
|
-
it("once return undefined", async () => {
|
|
604
|
+
(0, vitest_1.it)("once return undefined", async () => {
|
|
605
605
|
const once = new cement_1.ResolveOnce();
|
|
606
606
|
const x = once.once(() => {
|
|
607
607
|
return Promise.resolve();
|
|
608
608
|
});
|
|
609
|
-
assertType(x);
|
|
610
|
-
expect(await x).toBe(undefined);
|
|
609
|
+
(0, vitest_1.assertType)(x);
|
|
610
|
+
(0, vitest_1.expect)(await x).toBe(undefined);
|
|
611
611
|
});
|
|
612
|
-
it("keyed has a has method", () => {
|
|
612
|
+
(0, vitest_1.it)("keyed has a has method", () => {
|
|
613
613
|
const keyed = new cement_1.KeyedResolvOnce();
|
|
614
|
-
expect(keyed.has("a")).toBe(false);
|
|
614
|
+
(0, vitest_1.expect)(keyed.has("a")).toBe(false);
|
|
615
615
|
keyed.get("a").once(() => 42);
|
|
616
|
-
expect(keyed.has("a")).toBe(true);
|
|
616
|
+
(0, vitest_1.expect)(keyed.has("a")).toBe(true);
|
|
617
617
|
});
|
|
618
618
|
});
|
|
619
619
|
class MyLazy {
|
|
@@ -635,8 +635,8 @@ class MyLazy {
|
|
|
635
635
|
};
|
|
636
636
|
}
|
|
637
637
|
}
|
|
638
|
-
describe("Reset does not remove pending futures", () => {
|
|
639
|
-
it("reset are queued", async () => {
|
|
638
|
+
(0, vitest_1.describe)("Reset does not remove pending futures", () => {
|
|
639
|
+
(0, vitest_1.it)("reset are queued", async () => {
|
|
640
640
|
const once = new cement_1.ResolveOnce();
|
|
641
641
|
const actions = [];
|
|
642
642
|
const actionCnt = 3;
|
|
@@ -663,22 +663,22 @@ describe("Reset does not remove pending futures", () => {
|
|
|
663
663
|
}),
|
|
664
664
|
});
|
|
665
665
|
}
|
|
666
|
-
expect(once.queueLength).toBe(actionCnt * onceCallCnt + actionCnt + actionCnt + 1);
|
|
666
|
+
(0, vitest_1.expect)(once.queueLength).toBe(actionCnt * onceCallCnt + actionCnt + actionCnt + 1);
|
|
667
667
|
[...actions].reverse().forEach((a) => {
|
|
668
668
|
[...a.futures].reverse().forEach((f) => {
|
|
669
669
|
f.resolve();
|
|
670
670
|
});
|
|
671
671
|
});
|
|
672
672
|
await Promise.all(actions.map((a) => a.reset));
|
|
673
|
-
expect(once.queueLength).toBe(actionCnt + 1);
|
|
673
|
+
(0, vitest_1.expect)(once.queueLength).toBe(actionCnt + 1);
|
|
674
674
|
for (let i = 0; i < actionCnt; i++) {
|
|
675
675
|
const a = actions[i];
|
|
676
|
-
expect(await Promise.all(a.results)).toEqual(Array(onceCallCnt)
|
|
676
|
+
(0, vitest_1.expect)(await Promise.all(a.results)).toEqual(Array(onceCallCnt)
|
|
677
677
|
.fill(0)
|
|
678
678
|
.map(() => (i ? i + 96 : i + 63)));
|
|
679
679
|
}
|
|
680
680
|
});
|
|
681
|
-
it("Reset does not remove pending futures", async () => {
|
|
681
|
+
(0, vitest_1.it)("Reset does not remove pending futures", async () => {
|
|
682
682
|
const cnt = 10;
|
|
683
683
|
const once = new cement_1.ResolveOnce();
|
|
684
684
|
const releaseOnce = new cement_1.Future();
|
|
@@ -689,7 +689,7 @@ describe("Reset does not remove pending futures", () => {
|
|
|
689
689
|
}));
|
|
690
690
|
const newValue = new cement_1.Future();
|
|
691
691
|
let newWaiting = undefined;
|
|
692
|
-
const never = vi.fn();
|
|
692
|
+
const never = vitest_1.vi.fn();
|
|
693
693
|
const resetResult = once.reset(async () => {
|
|
694
694
|
newWaiting = Promise.all(Array(cnt)
|
|
695
695
|
.fill(0)
|
|
@@ -702,97 +702,97 @@ describe("Reset does not remove pending futures", () => {
|
|
|
702
702
|
});
|
|
703
703
|
releaseOnce.resolve();
|
|
704
704
|
newValue.resolve();
|
|
705
|
-
expect(await resetResult).toBe(42);
|
|
705
|
+
(0, vitest_1.expect)(await resetResult).toBe(42);
|
|
706
706
|
const resWaiting = await waiting;
|
|
707
|
-
expect(resWaiting).toEqual(Array(cnt).fill(24));
|
|
708
|
-
if (!(0,
|
|
709
|
-
assert.fail("newWaiting is undefined");
|
|
707
|
+
(0, vitest_1.expect)(resWaiting).toEqual(Array(cnt).fill(24));
|
|
708
|
+
if (!(0, cement_1.isPromise)(newWaiting)) {
|
|
709
|
+
vitest_1.assert.fail("newWaiting is undefined");
|
|
710
710
|
return;
|
|
711
711
|
}
|
|
712
712
|
const newWaitingResult = await Promise.resolve(newWaiting);
|
|
713
|
-
expect(newWaitingResult).toEqual(Array(cnt).fill(24));
|
|
714
|
-
expect(never).not.toHaveBeenCalled();
|
|
713
|
+
(0, vitest_1.expect)(newWaitingResult).toEqual(Array(cnt).fill(24));
|
|
714
|
+
(0, vitest_1.expect)(never).not.toHaveBeenCalled();
|
|
715
715
|
const resolvedReset = await resetResult;
|
|
716
|
-
expect(resolvedReset).toBe(42);
|
|
717
|
-
expect(await Promise.all(Array(cnt)
|
|
716
|
+
(0, vitest_1.expect)(resolvedReset).toBe(42);
|
|
717
|
+
(0, vitest_1.expect)(await Promise.all(Array(cnt)
|
|
718
718
|
.fill(0)
|
|
719
719
|
.map(() => once.once(() => {
|
|
720
720
|
never();
|
|
721
721
|
return 49;
|
|
722
722
|
})))).toEqual(Array(cnt).fill(42));
|
|
723
723
|
});
|
|
724
|
-
it("Keyed Resolve ReturnType of once", () => {
|
|
724
|
+
(0, vitest_1.it)("Keyed Resolve ReturnType of once", () => {
|
|
725
725
|
const keyed = new cement_1.KeyedResolvOnce();
|
|
726
726
|
const type1 = keyed.get("type1").once(() => ({ type1: "1" }));
|
|
727
|
-
assertType(type1);
|
|
728
|
-
assertType(type1);
|
|
727
|
+
(0, vitest_1.assertType)(type1);
|
|
728
|
+
(0, vitest_1.assertType)(type1);
|
|
729
729
|
const type2 = keyed.get("type2").once(() => ({ type2: 1 }));
|
|
730
|
-
assertType(type2);
|
|
731
|
-
assertType(type2);
|
|
730
|
+
(0, vitest_1.assertType)(type2);
|
|
731
|
+
(0, vitest_1.assertType)(type2);
|
|
732
732
|
const type3 = keyed.get("type3").once(() => ({ type3: true }));
|
|
733
|
-
assertType(type3);
|
|
734
|
-
assertType(type3);
|
|
733
|
+
(0, vitest_1.assertType)(type3);
|
|
734
|
+
(0, vitest_1.assertType)(type3);
|
|
735
735
|
});
|
|
736
|
-
it("ResolveOnce ReturnType of once", async () => {
|
|
736
|
+
(0, vitest_1.it)("ResolveOnce ReturnType of once", async () => {
|
|
737
737
|
const ronce = new cement_1.ResolveOnce();
|
|
738
738
|
const type1 = ronce.once(() => ({ type1: "1" }));
|
|
739
|
-
assertType(type1);
|
|
740
|
-
assertType(type1);
|
|
739
|
+
(0, vitest_1.assertType)(type1);
|
|
740
|
+
(0, vitest_1.assertType)(type1);
|
|
741
741
|
const type2 = ronce.once(() => ({ type2: 1 }));
|
|
742
|
-
assertType(type2);
|
|
743
|
-
assertType(type2);
|
|
742
|
+
(0, vitest_1.assertType)(type2);
|
|
743
|
+
(0, vitest_1.assertType)(type2);
|
|
744
744
|
const type3 = ronce.once(() => ({ type3: true }));
|
|
745
|
-
assertType(type3);
|
|
746
|
-
assertType(type3);
|
|
745
|
+
(0, vitest_1.assertType)(type3);
|
|
746
|
+
(0, vitest_1.assertType)(type3);
|
|
747
747
|
const atype1 = await ronce.once(() => Promise.resolve({ type1: "1" }));
|
|
748
|
-
assertType(atype1);
|
|
749
|
-
assertType(atype1);
|
|
748
|
+
(0, vitest_1.assertType)(atype1);
|
|
749
|
+
(0, vitest_1.assertType)(atype1);
|
|
750
750
|
const atype2 = await ronce.once(() => Promise.resolve({ type2: 1 }));
|
|
751
|
-
assertType(atype2);
|
|
752
|
-
assertType(atype2);
|
|
751
|
+
(0, vitest_1.assertType)(atype2);
|
|
752
|
+
(0, vitest_1.assertType)(atype2);
|
|
753
753
|
const atype3 = await ronce.once(() => Promise.resolve({ type3: true }));
|
|
754
|
-
assertType(atype3);
|
|
755
|
-
assertType(atype3);
|
|
754
|
+
(0, vitest_1.assertType)(atype3);
|
|
755
|
+
(0, vitest_1.assertType)(atype3);
|
|
756
756
|
});
|
|
757
757
|
});
|
|
758
|
-
describe("Lazy Initialization", () => {
|
|
759
|
-
it("ResolveOnce could be used for LazyInitialization", async () => {
|
|
758
|
+
(0, vitest_1.describe)("Lazy Initialization", () => {
|
|
759
|
+
(0, vitest_1.it)("ResolveOnce could be used for LazyInitialization", async () => {
|
|
760
760
|
const my = new MyLazy();
|
|
761
|
-
expect(await my.action()).toEqual({ sync: 43, async: 44, asyncPass: 46, passIn: 42 });
|
|
762
|
-
expect(await my.action()).toEqual({ sync: 43, async: 44, asyncPass: 46, passIn: 42 });
|
|
763
|
-
expect(await my.action()).toEqual({ sync: 43, async: 44, asyncPass: 46, passIn: 42 });
|
|
761
|
+
(0, vitest_1.expect)(await my.action()).toEqual({ sync: 43, async: 44, asyncPass: 46, passIn: 42 });
|
|
762
|
+
(0, vitest_1.expect)(await my.action()).toEqual({ sync: 43, async: 44, asyncPass: 46, passIn: 42 });
|
|
763
|
+
(0, vitest_1.expect)(await my.action()).toEqual({ sync: 43, async: 44, asyncPass: 46, passIn: 42 });
|
|
764
764
|
});
|
|
765
|
-
it("Sync Lazy With Renew Timer", async () => {
|
|
765
|
+
(0, vitest_1.it)("Sync Lazy With Renew Timer", async () => {
|
|
766
766
|
let initVal = 0;
|
|
767
767
|
const lazy = (0, cement_1.Lazy)(() => {
|
|
768
768
|
return ++initVal;
|
|
769
769
|
}, { resetAfter: 50 });
|
|
770
|
-
expect(lazy()).toBe(1);
|
|
771
|
-
await (0,
|
|
772
|
-
expect(lazy()).toBe(1);
|
|
773
|
-
await (0,
|
|
774
|
-
expect(lazy()).toBe(2);
|
|
775
|
-
expect(lazy()).toBe(2);
|
|
776
|
-
await (0,
|
|
777
|
-
expect(lazy()).toBe(3);
|
|
778
|
-
expect(lazy()).toBe(3);
|
|
779
|
-
});
|
|
780
|
-
it("Async Lazy With Renew Timer", async () => {
|
|
770
|
+
(0, vitest_1.expect)(lazy()).toBe(1);
|
|
771
|
+
await (0, cement_1.sleep)(10);
|
|
772
|
+
(0, vitest_1.expect)(lazy()).toBe(1);
|
|
773
|
+
await (0, cement_1.sleep)(60);
|
|
774
|
+
(0, vitest_1.expect)(lazy()).toBe(2);
|
|
775
|
+
(0, vitest_1.expect)(lazy()).toBe(2);
|
|
776
|
+
await (0, cement_1.sleep)(60);
|
|
777
|
+
(0, vitest_1.expect)(lazy()).toBe(3);
|
|
778
|
+
(0, vitest_1.expect)(lazy()).toBe(3);
|
|
779
|
+
});
|
|
780
|
+
(0, vitest_1.it)("Async Lazy With Renew Timer", async () => {
|
|
781
781
|
let initVal = 0;
|
|
782
782
|
const lazy = (0, cement_1.Lazy)(() => {
|
|
783
783
|
return Promise.resolve(++initVal);
|
|
784
784
|
}, { resetAfter: 50 });
|
|
785
|
-
expect(await lazy()).toBe(1);
|
|
786
|
-
await (0,
|
|
787
|
-
expect(await lazy()).toBe(1);
|
|
788
|
-
await (0,
|
|
789
|
-
expect(await lazy()).toBe(2);
|
|
790
|
-
expect(await lazy()).toBe(2);
|
|
791
|
-
await (0,
|
|
792
|
-
expect(await lazy()).toBe(3);
|
|
793
|
-
expect(await lazy()).toBe(3);
|
|
794
|
-
});
|
|
795
|
-
it("KeyedResolveOnce and resetAfter", async () => {
|
|
785
|
+
(0, vitest_1.expect)(await lazy()).toBe(1);
|
|
786
|
+
await (0, cement_1.sleep)(10);
|
|
787
|
+
(0, vitest_1.expect)(await lazy()).toBe(1);
|
|
788
|
+
await (0, cement_1.sleep)(60);
|
|
789
|
+
(0, vitest_1.expect)(await lazy()).toBe(2);
|
|
790
|
+
(0, vitest_1.expect)(await lazy()).toBe(2);
|
|
791
|
+
await (0, cement_1.sleep)(60);
|
|
792
|
+
(0, vitest_1.expect)(await lazy()).toBe(3);
|
|
793
|
+
(0, vitest_1.expect)(await lazy()).toBe(3);
|
|
794
|
+
});
|
|
795
|
+
(0, vitest_1.it)("KeyedResolveOnce and resetAfter", async () => {
|
|
796
796
|
const keyed = new cement_1.KeyedResolvOnce({
|
|
797
797
|
resetAfter: 50,
|
|
798
798
|
});
|
|
@@ -802,25 +802,25 @@ describe("Lazy Initialization", () => {
|
|
|
802
802
|
.fill(0)
|
|
803
803
|
.map((_, idx) => keyed.get(idx).once(() => initVal));
|
|
804
804
|
}
|
|
805
|
-
expect(onces(++initVal)).toEqual(Array(5).fill(initVal));
|
|
806
|
-
await (0,
|
|
807
|
-
expect(onces(initVal)).toEqual(Array(5).fill(initVal));
|
|
808
|
-
await (0,
|
|
809
|
-
expect(onces(++initVal)).toEqual(Array(5).fill(initVal));
|
|
810
|
-
await (0,
|
|
811
|
-
expect(onces(initVal)).toEqual(Array(5).fill(initVal));
|
|
812
|
-
await (0,
|
|
813
|
-
expect(onces(++initVal)).toEqual(Array(5).fill(initVal));
|
|
814
|
-
expect(onces(initVal)).toEqual(Array(5).fill(initVal));
|
|
805
|
+
(0, vitest_1.expect)(onces(++initVal)).toEqual(Array(5).fill(initVal));
|
|
806
|
+
await (0, cement_1.sleep)(10);
|
|
807
|
+
(0, vitest_1.expect)(onces(initVal)).toEqual(Array(5).fill(initVal));
|
|
808
|
+
await (0, cement_1.sleep)(60);
|
|
809
|
+
(0, vitest_1.expect)(onces(++initVal)).toEqual(Array(5).fill(initVal));
|
|
810
|
+
await (0, cement_1.sleep)(10);
|
|
811
|
+
(0, vitest_1.expect)(onces(initVal)).toEqual(Array(5).fill(initVal));
|
|
812
|
+
await (0, cement_1.sleep)(60);
|
|
813
|
+
(0, vitest_1.expect)(onces(++initVal)).toEqual(Array(5).fill(initVal));
|
|
814
|
+
(0, vitest_1.expect)(onces(initVal)).toEqual(Array(5).fill(initVal));
|
|
815
815
|
});
|
|
816
816
|
});
|
|
817
|
-
describe("KeyToHash", () => {
|
|
818
|
-
it("KeyedResolvSeq could use default KeyToHash", async () => {
|
|
817
|
+
(0, vitest_1.describe)("KeyToHash", () => {
|
|
818
|
+
(0, vitest_1.it)("KeyedResolvSeq could use default KeyToHash", async () => {
|
|
819
819
|
const keyed = new cement_1.KeyedResolvSeq({
|
|
820
820
|
key2string: (key) => `${key.id}:${key.name}`,
|
|
821
821
|
ctx: { ctx: "test" },
|
|
822
822
|
});
|
|
823
|
-
const addFn = vi
|
|
823
|
+
const addFn = vitest_1.vi
|
|
824
824
|
.fn()
|
|
825
825
|
.mockImplementation((item) => {
|
|
826
826
|
return Promise.resolve({ item });
|
|
@@ -828,45 +828,47 @@ describe("KeyToHash", () => {
|
|
|
828
828
|
await keyed.get({ id: 1, name: "test" }).add(addFn);
|
|
829
829
|
await keyed.get({ id: 1, name: "test" }).add(addFn);
|
|
830
830
|
await keyed.get({ id: 2, name: "test" }).add(addFn);
|
|
831
|
-
expect(addFn).toHaveBeenCalledTimes(3);
|
|
832
|
-
expect(addFn).toHaveBeenNthCalledWith(1, {
|
|
831
|
+
(0, vitest_1.expect)(addFn).toHaveBeenCalledTimes(3);
|
|
832
|
+
(0, vitest_1.expect)(addFn).toHaveBeenNthCalledWith(1, {
|
|
833
833
|
refKey: "1:test",
|
|
834
834
|
givenKey: { id: 1, name: "test" },
|
|
835
835
|
value: undefined,
|
|
836
836
|
ctx: { ctx: "test" },
|
|
837
837
|
});
|
|
838
|
-
expect(addFn).toHaveBeenNthCalledWith(2, {
|
|
838
|
+
(0, vitest_1.expect)(addFn).toHaveBeenNthCalledWith(2, {
|
|
839
839
|
refKey: "1:test",
|
|
840
840
|
givenKey: { id: 1, name: "test" },
|
|
841
841
|
value: undefined,
|
|
842
842
|
ctx: { ctx: "test" },
|
|
843
843
|
});
|
|
844
|
-
expect(addFn).toHaveBeenNthCalledWith(3, {
|
|
844
|
+
(0, vitest_1.expect)(addFn).toHaveBeenNthCalledWith(3, {
|
|
845
845
|
refKey: "2:test",
|
|
846
846
|
givenKey: { id: 2, name: "test" },
|
|
847
847
|
value: undefined,
|
|
848
848
|
ctx: { ctx: "test" },
|
|
849
849
|
});
|
|
850
850
|
});
|
|
851
|
-
it("KeyedResolvOnce could use custom KeyToHash", async () => {
|
|
851
|
+
(0, vitest_1.it)("KeyedResolvOnce could use custom KeyToHash", async () => {
|
|
852
852
|
const keyed = new cement_1.KeyedResolvOnce({
|
|
853
853
|
key2string: (key) => `${key.id}:${key.name}`,
|
|
854
854
|
ctx: { ctx: "test" },
|
|
855
855
|
});
|
|
856
|
-
const onceFn = vi
|
|
856
|
+
const onceFn = vitest_1.vi
|
|
857
|
+
.fn()
|
|
858
|
+
.mockImplementation(({ ctx }) => {
|
|
857
859
|
return {
|
|
858
|
-
id:
|
|
859
|
-
name:
|
|
860
|
+
id: ctx.givenKey.id,
|
|
861
|
+
name: ctx.givenKey.name,
|
|
860
862
|
};
|
|
861
863
|
});
|
|
862
864
|
for (let i = 0; i < 3; i++) {
|
|
863
865
|
const res = await keyed.get({ id: 1, name: "test" }).once((item) => {
|
|
864
866
|
return Promise.resolve(onceFn(item));
|
|
865
867
|
});
|
|
866
|
-
expect(res).toEqual({ id: 1, name: "test" });
|
|
868
|
+
(0, vitest_1.expect)(res).toEqual({ id: 1, name: "test" });
|
|
867
869
|
}
|
|
868
|
-
expect(onceFn).toHaveBeenCalledTimes(1);
|
|
869
|
-
expect(onceFn).
|
|
870
|
+
(0, vitest_1.expect)(onceFn).toHaveBeenCalledTimes(1);
|
|
871
|
+
(0, vitest_1.expect)(onceFn.mock.calls[0][0].ctx).toEqual({
|
|
870
872
|
refKey: "1:test",
|
|
871
873
|
givenKey: { id: 1, name: "test" },
|
|
872
874
|
value: undefined,
|
|
@@ -874,41 +876,61 @@ describe("KeyToHash", () => {
|
|
|
874
876
|
});
|
|
875
877
|
});
|
|
876
878
|
});
|
|
877
|
-
it("ResolveOnce gets is prev value if reset", () => {
|
|
879
|
+
(0, vitest_1.it)("ResolveOnce gets is prev value if reset", () => {
|
|
878
880
|
const once = new cement_1.ResolveOnce();
|
|
879
881
|
once.once(() => ({
|
|
880
882
|
value: 42,
|
|
881
883
|
stats: 1,
|
|
882
884
|
}));
|
|
883
|
-
once.reset();
|
|
884
|
-
const res1 = once.once((
|
|
885
|
-
if (!
|
|
885
|
+
void once.reset();
|
|
886
|
+
const res1 = once.once((my) => {
|
|
887
|
+
if (!my.self.value) {
|
|
886
888
|
throw new Error("prev is undefined");
|
|
887
889
|
}
|
|
888
890
|
return {
|
|
889
891
|
value: 45,
|
|
890
|
-
stats:
|
|
892
|
+
stats: my.self.value.stats + 1,
|
|
891
893
|
};
|
|
892
894
|
});
|
|
893
|
-
expect(res1).toEqual({
|
|
895
|
+
(0, vitest_1.expect)(res1).toEqual({
|
|
894
896
|
value: 45,
|
|
895
897
|
stats: 2,
|
|
896
898
|
});
|
|
897
|
-
once.reset();
|
|
898
|
-
const res2 = once.once((
|
|
899
|
-
if (!
|
|
899
|
+
void once.reset();
|
|
900
|
+
const res2 = once.once((my) => {
|
|
901
|
+
if (!my.self.value) {
|
|
900
902
|
throw new Error("prev is undefined");
|
|
901
903
|
}
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
return
|
|
904
|
+
my.self.value.stats++;
|
|
905
|
+
my.self.value.value += 3;
|
|
906
|
+
return my.self.value;
|
|
905
907
|
});
|
|
906
|
-
expect(res2).toEqual({
|
|
908
|
+
(0, vitest_1.expect)(res2).toEqual({
|
|
907
909
|
value: 48,
|
|
908
910
|
stats: 3,
|
|
909
911
|
});
|
|
910
912
|
});
|
|
911
|
-
it("
|
|
913
|
+
(0, vitest_1.it)("dynamic setting of resetAfter switch off", async () => {
|
|
914
|
+
const once = new cement_1.ResolveOnce(undefined, { resetAfter: 30 });
|
|
915
|
+
once.once((my) => {
|
|
916
|
+
my.self.setResetAfter();
|
|
917
|
+
return 42;
|
|
918
|
+
});
|
|
919
|
+
await (0, cement_1.sleep)(40);
|
|
920
|
+
(0, vitest_1.expect)(once.once(() => 43)).toBe(42);
|
|
921
|
+
});
|
|
922
|
+
(0, vitest_1.it)("dynamic setting of resetAfter change time", async () => {
|
|
923
|
+
const once = new cement_1.ResolveOnce(undefined, { resetAfter: 30 });
|
|
924
|
+
once.once((my) => {
|
|
925
|
+
my.self.setResetAfter(10);
|
|
926
|
+
return 42;
|
|
927
|
+
});
|
|
928
|
+
await (0, cement_1.sleep)(15);
|
|
929
|
+
(0, vitest_1.expect)(once.once(() => 43)).toBe(43);
|
|
930
|
+
await (0, cement_1.sleep)(15);
|
|
931
|
+
(0, vitest_1.expect)(once.once(() => 44)).toBe(44);
|
|
932
|
+
});
|
|
933
|
+
(0, vitest_1.it)("does not block node on process exit", async () => {
|
|
912
934
|
let runtime = undefined;
|
|
913
935
|
if ((0, cement_1.runtimeFn)().isNodeIsh) {
|
|
914
936
|
runtime = ["tsx", "-e"];
|
|
@@ -925,9 +947,15 @@ it("does not block node on process exit", async () => {
|
|
|
925
947
|
`.finally(() => console.log("done"));`,
|
|
926
948
|
].join("");
|
|
927
949
|
const res = await $ `${runtime} ${[code]}`;
|
|
928
|
-
expect(res.ok).toBe(true);
|
|
950
|
+
(0, vitest_1.expect)(res.ok).toBe(true);
|
|
929
951
|
const duration = Date.now() - start;
|
|
930
|
-
expect(duration).toBeLessThan(
|
|
952
|
+
(0, vitest_1.expect)(duration).toBeLessThan(2000);
|
|
931
953
|
}
|
|
932
954
|
});
|
|
955
|
+
(0, vitest_1.it)("KeyedResolvOnce in void", () => {
|
|
956
|
+
const keyed = new cement_1.KeyedResolvOnce();
|
|
957
|
+
keyed.get("a").once(() => {
|
|
958
|
+
void 0;
|
|
959
|
+
});
|
|
960
|
+
});
|
|
933
961
|
//# sourceMappingURL=resolve-once.test.js.map
|