@adviser/cement 0.5.3 → 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 +21 -21
- 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.test.cjs +42 -43
- 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.map +1 -1
- package/cjs/resolve-once.d.ts +3 -6
- package/cjs/resolve-once.d.ts.map +1 -1
- package/cjs/resolve-once.test.cjs +301 -296
- package/cjs/resolve-once.test.cjs.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.test.cjs +313 -313
- 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.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 +2 -2
- 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.test.d.ts.map +1 -1
- package/esm/on-func.test.js +2 -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 +3 -6
- package/esm/resolve-once.d.ts.map +1 -1
- package/esm/resolve-once.js.map +1 -1
- package/esm/resolve-once.test.js +9 -4
- package/esm/resolve-once.test.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.test.js +2 -2
- 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.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 +1 -1
- package/src/index.ts +3 -0
- package/src/option.ts +2 -2
- package/src/resolve-once.ts +11 -60
- 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 +21 -21
- 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.test.d.ts.map +1 -1
- package/ts/cjs/on-func.test.js +42 -43
- 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 +3 -6
- package/ts/cjs/resolve-once.d.ts.map +1 -1
- package/ts/cjs/resolve-once.js.map +1 -1
- package/ts/cjs/resolve-once.test.js +301 -296
- package/ts/cjs/resolve-once.test.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.test.js +313 -313
- 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.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 +2 -2
- 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.test.d.ts.map +1 -1
- package/ts/esm/on-func.test.js +2 -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 +3 -6
- package/ts/esm/resolve-once.d.ts.map +1 -1
- package/ts/esm/resolve-once.js.map +1 -1
- package/ts/esm/resolve-once.test.js +9 -4
- package/ts/esm/resolve-once.test.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.test.js +2 -2
- 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.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,72 +210,72 @@ 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.mock.calls[0][0].ctx).toEqual({
|
|
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
245
|
});
|
|
247
|
-
expect(b_orderFn).toHaveBeenCalledTimes(1);
|
|
248
|
-
expect(b_orderFn.mock.calls[0][0].ctx).toEqual({
|
|
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
256
|
my.get(1).once(({ ctx: 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");
|
|
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" };
|
|
@@ -285,32 +284,32 @@ describe("resolve-once", () => {
|
|
|
285
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
289
|
my.get("1").once(({ ctx }) => {
|
|
291
290
|
const { refKey } = ctx;
|
|
292
|
-
assertType(refKey);
|
|
291
|
+
(0, vitest_1.assertType)(refKey);
|
|
293
292
|
return { hello: "world" };
|
|
294
293
|
});
|
|
295
294
|
my.get("2").once(() => {
|
|
296
295
|
return { hello: "world" };
|
|
297
296
|
});
|
|
298
297
|
my.get("3").once(({ ctx }) => {
|
|
299
|
-
assertType(ctx);
|
|
298
|
+
(0, vitest_1.assertType)(ctx);
|
|
300
299
|
return { hello: "world" };
|
|
301
300
|
});
|
|
302
301
|
});
|
|
303
|
-
it("keyedResolvOnce with pass decompose", () => {
|
|
302
|
+
(0, vitest_1.it)("keyedResolvOnce with pass decompose", () => {
|
|
304
303
|
const my = new cement_1.KeyedResolvSeq();
|
|
305
304
|
my.get("1").add(({ refKey: key }) => {
|
|
306
|
-
assertType(key);
|
|
305
|
+
(0, vitest_1.assertType)(key);
|
|
307
306
|
return { hello: "world" };
|
|
308
307
|
});
|
|
309
308
|
});
|
|
310
|
-
it("keyed asyncGet", async () => {
|
|
309
|
+
(0, vitest_1.it)("keyed asyncGet", async () => {
|
|
311
310
|
const keyed = new cement_1.KeyedResolvOnce();
|
|
312
|
-
const a_orderFn = vi.fn((key) => Promise.resolve(key));
|
|
313
|
-
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));
|
|
314
313
|
await Promise.all([
|
|
315
314
|
keyed
|
|
316
315
|
.asyncGet(async () => {
|
|
@@ -325,15 +324,15 @@ describe("resolve-once", () => {
|
|
|
325
324
|
})
|
|
326
325
|
.then((resolveOnce) => resolveOnce.once(b_orderFn)),
|
|
327
326
|
]);
|
|
328
|
-
expect(a_orderFn).toHaveBeenCalledTimes(1);
|
|
329
|
-
expect(a_orderFn.mock.calls[0][0].ctx).toEqual({
|
|
327
|
+
(0, vitest_1.expect)(a_orderFn).toHaveBeenCalledTimes(1);
|
|
328
|
+
(0, vitest_1.expect)(a_orderFn.mock.calls[0][0].ctx).toEqual({
|
|
330
329
|
ctx: {},
|
|
331
330
|
givenKey: "a",
|
|
332
331
|
refKey: "a",
|
|
333
332
|
value: undefined,
|
|
334
333
|
});
|
|
335
|
-
expect(b_orderFn).toHaveBeenCalledTimes(1);
|
|
336
|
-
expect(b_orderFn.mock.calls[0][0].ctx).toEqual({
|
|
334
|
+
(0, vitest_1.expect)(b_orderFn).toHaveBeenCalledTimes(1);
|
|
335
|
+
(0, vitest_1.expect)(b_orderFn.mock.calls[0][0].ctx).toEqual({
|
|
337
336
|
ctx: {},
|
|
338
337
|
givenKey: "b",
|
|
339
338
|
refKey: "b",
|
|
@@ -349,7 +348,7 @@ describe("resolve-once", () => {
|
|
|
349
348
|
}
|
|
350
349
|
return array;
|
|
351
350
|
}
|
|
352
|
-
it("ResolveSeq", async () => {
|
|
351
|
+
(0, vitest_1.it)("ResolveSeq", async () => {
|
|
353
352
|
const seq = new cement_1.ResolveSeq();
|
|
354
353
|
let enter = 0;
|
|
355
354
|
let leave = 0;
|
|
@@ -357,20 +356,20 @@ describe("resolve-once", () => {
|
|
|
357
356
|
.fill(0)
|
|
358
357
|
.map((_, i) => {
|
|
359
358
|
return seq.add(async () => {
|
|
360
|
-
expect(enter++).toBe(i);
|
|
359
|
+
(0, vitest_1.expect)(enter++).toBe(i);
|
|
361
360
|
await new Promise((resolve) => setTimeout(resolve, i * 3));
|
|
362
361
|
await new Promise((resolve) => setTimeout(resolve, i * 2));
|
|
363
|
-
expect(leave++).toBe(i);
|
|
364
|
-
expect(leave).toBe(enter);
|
|
362
|
+
(0, vitest_1.expect)(leave++).toBe(i);
|
|
363
|
+
(0, vitest_1.expect)(leave).toBe(enter);
|
|
365
364
|
return i;
|
|
366
365
|
}, i);
|
|
367
366
|
});
|
|
368
367
|
const ret = await Promise.all(shuffle(actions));
|
|
369
|
-
expect(ret.length).toBe(10);
|
|
370
|
-
expect(enter).toBe(10);
|
|
371
|
-
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);
|
|
372
371
|
});
|
|
373
|
-
it("with promise", async () => {
|
|
372
|
+
(0, vitest_1.it)("with promise", async () => {
|
|
374
373
|
const once = new cement_1.ResolveOnce();
|
|
375
374
|
let val = 42;
|
|
376
375
|
const fn = async () => {
|
|
@@ -380,29 +379,29 @@ describe("resolve-once", () => {
|
|
|
380
379
|
}, 10);
|
|
381
380
|
});
|
|
382
381
|
};
|
|
383
|
-
expect(await once.once(fn)).toBe(42);
|
|
384
|
-
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);
|
|
385
384
|
});
|
|
386
|
-
it("without promise", () => {
|
|
385
|
+
(0, vitest_1.it)("without promise", () => {
|
|
387
386
|
const once = new cement_1.ResolveOnce();
|
|
388
387
|
let val = 42;
|
|
389
388
|
const fn = () => val++;
|
|
390
|
-
expect(once.once(fn)).toBe(42);
|
|
391
|
-
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);
|
|
392
391
|
});
|
|
393
|
-
it("without promise but exception", () => {
|
|
392
|
+
(0, vitest_1.it)("without promise but exception", () => {
|
|
394
393
|
const once = new cement_1.ResolveOnce();
|
|
395
394
|
let val = 42;
|
|
396
395
|
const fn = () => {
|
|
397
396
|
throw new Error(`nope ${val++}`);
|
|
398
397
|
};
|
|
399
|
-
expect(() => once.once(fn)).toThrowError("nope 42");
|
|
400
|
-
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");
|
|
401
400
|
});
|
|
402
|
-
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) => {
|
|
403
402
|
const once = new cement_1.KeyedResolvOnce();
|
|
404
403
|
let triggerUnget = true;
|
|
405
|
-
const fn = vitest.fn();
|
|
404
|
+
const fn = vitest_1.vitest.fn();
|
|
406
405
|
async function onceFn() {
|
|
407
406
|
await sleeper();
|
|
408
407
|
if (triggerUnget) {
|
|
@@ -413,23 +412,23 @@ describe("resolve-once", () => {
|
|
|
413
412
|
fn("second");
|
|
414
413
|
return await sleeper().then(() => "second");
|
|
415
414
|
}
|
|
416
|
-
expect(await once.get("a").once(onceFn)).toBe("first");
|
|
417
|
-
expect(fn).toHaveBeenCalledTimes(1);
|
|
418
|
-
expect(await once.get("a").once(onceFn)).toBe("first");
|
|
419
|
-
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);
|
|
420
419
|
triggerUnget = false;
|
|
421
|
-
expect(await once.get("a").once(onceFn)).toBe("second");
|
|
422
|
-
expect(fn).toHaveBeenCalledTimes(3);
|
|
423
|
-
expect(await once.get("a").once(onceFn)).toBe("second");
|
|
424
|
-
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);
|
|
425
424
|
once.unget("a");
|
|
426
|
-
expect(await once.get("a").once(onceFn)).toBe("second");
|
|
427
|
-
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);
|
|
428
427
|
});
|
|
429
|
-
it("sync with unget", () => {
|
|
428
|
+
(0, vitest_1.it)("sync with unget", () => {
|
|
430
429
|
const once = new cement_1.KeyedResolvOnce();
|
|
431
430
|
let triggerUnget = true;
|
|
432
|
-
const fn = vitest.fn();
|
|
431
|
+
const fn = vitest_1.vitest.fn();
|
|
433
432
|
function onceFn() {
|
|
434
433
|
if (triggerUnget) {
|
|
435
434
|
fn("first");
|
|
@@ -439,23 +438,23 @@ describe("resolve-once", () => {
|
|
|
439
438
|
fn("second");
|
|
440
439
|
return "second";
|
|
441
440
|
}
|
|
442
|
-
expect(once.get("a").once(onceFn)).toBe("first");
|
|
443
|
-
expect(fn).toHaveBeenCalledTimes(1);
|
|
444
|
-
expect(once.get("a").once(onceFn)).toBe("first");
|
|
445
|
-
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);
|
|
446
445
|
triggerUnget = false;
|
|
447
|
-
expect(once.get("a").once(onceFn)).toBe("second");
|
|
448
|
-
expect(fn).toHaveBeenCalledTimes(3);
|
|
449
|
-
expect(once.get("a").once(onceFn)).toBe("second");
|
|
450
|
-
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);
|
|
451
450
|
once.unget("a");
|
|
452
|
-
expect(once.get("a").once(onceFn)).toBe("second");
|
|
453
|
-
expect(fn).toHaveBeenCalledTimes(4);
|
|
451
|
+
(0, vitest_1.expect)(once.get("a").once(onceFn)).toBe("second");
|
|
452
|
+
(0, vitest_1.expect)(fn).toHaveBeenCalledTimes(4);
|
|
454
453
|
});
|
|
455
|
-
it("flush on seq", async () => {
|
|
454
|
+
(0, vitest_1.it)("flush on seq", async () => {
|
|
456
455
|
const seq = new cement_1.ResolveSeq();
|
|
457
456
|
let call = 42;
|
|
458
|
-
const fn = vitest.fn(async () => {
|
|
457
|
+
const fn = vitest_1.vitest.fn(async () => {
|
|
459
458
|
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
460
459
|
return call++;
|
|
461
460
|
});
|
|
@@ -464,32 +463,32 @@ describe("resolve-once", () => {
|
|
|
464
463
|
.map((_, i) => {
|
|
465
464
|
return seq.add(fn, i);
|
|
466
465
|
});
|
|
467
|
-
expect(seq._seqFutures.length).toBe(10);
|
|
466
|
+
(0, vitest_1.expect)(seq._seqFutures.length).toBe(10);
|
|
468
467
|
const flushes = [seq.flush(), seq.flush(), seq.flush(), seq.flush(), seq.flush()];
|
|
469
468
|
await Promise.all(flushes);
|
|
470
|
-
expect(seq._seqFutures.length).toBe(0);
|
|
471
|
-
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)
|
|
472
471
|
.fill(0)
|
|
473
472
|
.map((_, i) => 42 + i));
|
|
474
|
-
expect(fn).toHaveBeenCalledTimes(10);
|
|
473
|
+
(0, vitest_1.expect)(fn).toHaveBeenCalledTimes(10);
|
|
475
474
|
});
|
|
476
|
-
it("KeyedResolvOnce values", () => {
|
|
475
|
+
(0, vitest_1.it)("KeyedResolvOnce values", () => {
|
|
477
476
|
const keyed = new cement_1.KeyedResolvOnce();
|
|
478
|
-
expect(keyed.values()).toEqual([]);
|
|
477
|
+
(0, vitest_1.expect)(keyed.values()).toEqual([]);
|
|
479
478
|
const a = keyed.get("a");
|
|
480
|
-
expect(keyed.values()).toEqual([]);
|
|
479
|
+
(0, vitest_1.expect)(keyed.values()).toEqual([]);
|
|
481
480
|
a.once(() => 42);
|
|
482
|
-
expect(keyed.values()).toEqual([
|
|
481
|
+
(0, vitest_1.expect)(keyed.values()).toEqual([
|
|
483
482
|
{
|
|
484
483
|
key: "a",
|
|
485
484
|
value: cement_1.Result.Ok(42),
|
|
486
|
-
item: expect.objectContaining({ givenKey: "a", refKey: "a" }),
|
|
485
|
+
item: vitest_1.expect.objectContaining({ givenKey: "a", refKey: "a" }),
|
|
487
486
|
},
|
|
488
487
|
]);
|
|
489
488
|
keyed.get("b").once(() => 43);
|
|
490
|
-
expect(keyed.values()).toEqual([
|
|
491
|
-
{ key: "a", value: cement_1.Result.Ok(42), item: expect.objectContaining({ givenKey: "a", refKey: "a" }) },
|
|
492
|
-
{ 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" }) },
|
|
493
492
|
]);
|
|
494
493
|
try {
|
|
495
494
|
keyed.get("c").once(() => {
|
|
@@ -497,28 +496,28 @@ describe("resolve-once", () => {
|
|
|
497
496
|
});
|
|
498
497
|
}
|
|
499
498
|
catch (e) {
|
|
500
|
-
expect(e).toEqual(new Error("nope"));
|
|
499
|
+
(0, vitest_1.expect)(e).toEqual(new Error("nope"));
|
|
501
500
|
}
|
|
502
|
-
expect(keyed.values()).toEqual([
|
|
503
|
-
{ key: "a", value: cement_1.Result.Ok(42), item: expect.objectContaining({ givenKey: "a", refKey: "a" }) },
|
|
504
|
-
{ key: "b", value: cement_1.Result.Ok(43), item: expect.objectContaining({ givenKey: "b", refKey: "b" }) },
|
|
505
|
-
{ 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" }) },
|
|
506
505
|
]);
|
|
507
506
|
keyed.unget("a");
|
|
508
507
|
keyed.unget("c");
|
|
509
|
-
expect(keyed.values()).toEqual([
|
|
510
|
-
{ 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" }) },
|
|
511
510
|
]);
|
|
512
511
|
});
|
|
513
|
-
it("KeyedResolvOnce entries", () => {
|
|
512
|
+
(0, vitest_1.it)("KeyedResolvOnce entries", () => {
|
|
514
513
|
const keyed = new cement_1.KeyedResolvOnce();
|
|
515
|
-
expect(Array.from(keyed.entries())).toEqual([]);
|
|
514
|
+
(0, vitest_1.expect)(Array.from(keyed.entries())).toEqual([]);
|
|
516
515
|
const a = keyed.get("a");
|
|
517
|
-
expect(Array.from(keyed.entries())).toEqual([]);
|
|
516
|
+
(0, vitest_1.expect)(Array.from(keyed.entries())).toEqual([]);
|
|
518
517
|
a.once(() => 42);
|
|
519
|
-
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) }]);
|
|
520
519
|
keyed.get("b").once(() => 43);
|
|
521
|
-
expect(Array.from(keyed.entries())).toEqual([
|
|
520
|
+
(0, vitest_1.expect)(Array.from(keyed.entries())).toEqual([
|
|
522
521
|
{ key: "a", value: cement_1.Result.Ok(42) },
|
|
523
522
|
{ key: "b", value: cement_1.Result.Ok(43) },
|
|
524
523
|
]);
|
|
@@ -528,93 +527,93 @@ describe("resolve-once", () => {
|
|
|
528
527
|
});
|
|
529
528
|
}
|
|
530
529
|
catch (e) {
|
|
531
|
-
expect(e).toEqual(new Error("nope"));
|
|
530
|
+
(0, vitest_1.expect)(e).toEqual(new Error("nope"));
|
|
532
531
|
}
|
|
533
|
-
expect(Array.from(keyed.entries())).toEqual([
|
|
532
|
+
(0, vitest_1.expect)(Array.from(keyed.entries())).toEqual([
|
|
534
533
|
{ key: "a", value: cement_1.Result.Ok(42) },
|
|
535
534
|
{ key: "b", value: cement_1.Result.Ok(43) },
|
|
536
535
|
{ key: "c", value: cement_1.Result.Err(new Error("nope")) },
|
|
537
536
|
]);
|
|
538
537
|
keyed.unget("a");
|
|
539
538
|
keyed.unget("c");
|
|
540
|
-
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) }]);
|
|
541
540
|
});
|
|
542
|
-
it("uses lru cache", () => {
|
|
541
|
+
(0, vitest_1.it)("uses lru cache", () => {
|
|
543
542
|
const keyed = new cement_1.KeyedResolvOnce({ lru: { maxEntries: 2 } });
|
|
544
543
|
for (let i = 0; i < 10; i++) {
|
|
545
544
|
keyed.get(i.toString()).once(() => i);
|
|
546
545
|
}
|
|
547
|
-
expect(keyed.values()).toEqual([
|
|
548
|
-
{ key: "8", value: cement_1.Result.Ok(8), item: expect.objectContaining({ givenKey: "8", refKey: "8" }) },
|
|
549
|
-
{ 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" }) },
|
|
550
549
|
]);
|
|
551
550
|
});
|
|
552
|
-
it("resolve once serves ready and value", () => {
|
|
551
|
+
(0, vitest_1.it)("resolve once serves ready and value", () => {
|
|
553
552
|
const once = new cement_1.ResolveOnce();
|
|
554
|
-
expect(once.ready).toBe(false);
|
|
555
|
-
expect(once.value).toBe(undefined);
|
|
553
|
+
(0, vitest_1.expect)(once.ready).toBe(false);
|
|
554
|
+
(0, vitest_1.expect)(once.value).toBe(undefined);
|
|
556
555
|
once.once(() => 42);
|
|
557
|
-
expect(once.ready).toBe(true);
|
|
558
|
-
expect(once.value).toBe(42);
|
|
556
|
+
(0, vitest_1.expect)(once.ready).toBe(true);
|
|
557
|
+
(0, vitest_1.expect)(once.value).toBe(42);
|
|
559
558
|
void once.reset();
|
|
560
|
-
expect(once.ready).toBe(false);
|
|
561
|
-
expect(once.value).toBe(undefined);
|
|
559
|
+
(0, vitest_1.expect)(once.ready).toBe(false);
|
|
560
|
+
(0, vitest_1.expect)(once.value).toBe(undefined);
|
|
562
561
|
});
|
|
563
|
-
it("async resolve once serves ready and value", async () => {
|
|
562
|
+
(0, vitest_1.it)("async resolve once serves ready and value", async () => {
|
|
564
563
|
const once = new cement_1.ResolveOnce();
|
|
565
|
-
expect(once.ready).toBe(false);
|
|
566
|
-
expect(once.value).toBe(undefined);
|
|
564
|
+
(0, vitest_1.expect)(once.ready).toBe(false);
|
|
565
|
+
(0, vitest_1.expect)(once.value).toBe(undefined);
|
|
567
566
|
await once.once(() => Promise.resolve(42));
|
|
568
|
-
expect(once.ready).toBe(true);
|
|
569
|
-
expect(once.value).toBe(42);
|
|
567
|
+
(0, vitest_1.expect)(once.ready).toBe(true);
|
|
568
|
+
(0, vitest_1.expect)(once.value).toBe(42);
|
|
570
569
|
void once.reset();
|
|
571
|
-
expect(once.ready).toBe(false);
|
|
572
|
-
expect(once.value).toBe(undefined);
|
|
570
|
+
(0, vitest_1.expect)(once.ready).toBe(false);
|
|
571
|
+
(0, vitest_1.expect)(once.value).toBe(undefined);
|
|
573
572
|
});
|
|
574
|
-
it("keyed expose onAdd on onDelete", () => {
|
|
573
|
+
(0, vitest_1.it)("keyed expose onAdd on onDelete", () => {
|
|
575
574
|
const k = new cement_1.KeyedResolvOnce();
|
|
576
|
-
const fn = vi.fn();
|
|
575
|
+
const fn = vitest_1.vi.fn();
|
|
577
576
|
k.onSet(fn)();
|
|
578
577
|
k.onDelete(fn)();
|
|
579
578
|
});
|
|
580
|
-
it("test async version of once", () => {
|
|
579
|
+
(0, vitest_1.it)("test async version of once", () => {
|
|
581
580
|
const r = new cement_1.ResolveOnce();
|
|
582
581
|
const x = r.once(() => Promise.resolve(1));
|
|
583
|
-
assertType(x);
|
|
582
|
+
(0, vitest_1.assertType)(x);
|
|
584
583
|
const rv = new cement_1.ResolveOnce();
|
|
585
584
|
const xv = rv.once(async () => {
|
|
586
585
|
});
|
|
587
|
-
assertType(xv);
|
|
586
|
+
(0, vitest_1.assertType)(xv);
|
|
588
587
|
});
|
|
589
|
-
it("test sync version of once", () => {
|
|
588
|
+
(0, vitest_1.it)("test sync version of once", () => {
|
|
590
589
|
const r = new cement_1.ResolveOnce();
|
|
591
590
|
const x = r.once(() => 1);
|
|
592
|
-
assertType(x);
|
|
591
|
+
(0, vitest_1.assertType)(x);
|
|
593
592
|
const rv = new cement_1.ResolveOnce();
|
|
594
593
|
const xv = rv.once(() => {
|
|
595
594
|
});
|
|
596
|
-
assertType(xv);
|
|
595
|
+
(0, vitest_1.assertType)(xv);
|
|
597
596
|
});
|
|
598
|
-
it("once return undefined", () => {
|
|
597
|
+
(0, vitest_1.it)("once return undefined", () => {
|
|
599
598
|
const once = new cement_1.ResolveOnce();
|
|
600
599
|
const x = once.once(() => {
|
|
601
600
|
return;
|
|
602
601
|
});
|
|
603
|
-
expect(x).toBe(undefined);
|
|
602
|
+
(0, vitest_1.expect)(x).toBe(undefined);
|
|
604
603
|
});
|
|
605
|
-
it("once return undefined", async () => {
|
|
604
|
+
(0, vitest_1.it)("once return undefined", async () => {
|
|
606
605
|
const once = new cement_1.ResolveOnce();
|
|
607
606
|
const x = once.once(() => {
|
|
608
607
|
return Promise.resolve();
|
|
609
608
|
});
|
|
610
|
-
assertType(x);
|
|
611
|
-
expect(await x).toBe(undefined);
|
|
609
|
+
(0, vitest_1.assertType)(x);
|
|
610
|
+
(0, vitest_1.expect)(await x).toBe(undefined);
|
|
612
611
|
});
|
|
613
|
-
it("keyed has a has method", () => {
|
|
612
|
+
(0, vitest_1.it)("keyed has a has method", () => {
|
|
614
613
|
const keyed = new cement_1.KeyedResolvOnce();
|
|
615
|
-
expect(keyed.has("a")).toBe(false);
|
|
614
|
+
(0, vitest_1.expect)(keyed.has("a")).toBe(false);
|
|
616
615
|
keyed.get("a").once(() => 42);
|
|
617
|
-
expect(keyed.has("a")).toBe(true);
|
|
616
|
+
(0, vitest_1.expect)(keyed.has("a")).toBe(true);
|
|
618
617
|
});
|
|
619
618
|
});
|
|
620
619
|
class MyLazy {
|
|
@@ -636,8 +635,8 @@ class MyLazy {
|
|
|
636
635
|
};
|
|
637
636
|
}
|
|
638
637
|
}
|
|
639
|
-
describe("Reset does not remove pending futures", () => {
|
|
640
|
-
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 () => {
|
|
641
640
|
const once = new cement_1.ResolveOnce();
|
|
642
641
|
const actions = [];
|
|
643
642
|
const actionCnt = 3;
|
|
@@ -664,22 +663,22 @@ describe("Reset does not remove pending futures", () => {
|
|
|
664
663
|
}),
|
|
665
664
|
});
|
|
666
665
|
}
|
|
667
|
-
expect(once.queueLength).toBe(actionCnt * onceCallCnt + actionCnt + actionCnt + 1);
|
|
666
|
+
(0, vitest_1.expect)(once.queueLength).toBe(actionCnt * onceCallCnt + actionCnt + actionCnt + 1);
|
|
668
667
|
[...actions].reverse().forEach((a) => {
|
|
669
668
|
[...a.futures].reverse().forEach((f) => {
|
|
670
669
|
f.resolve();
|
|
671
670
|
});
|
|
672
671
|
});
|
|
673
672
|
await Promise.all(actions.map((a) => a.reset));
|
|
674
|
-
expect(once.queueLength).toBe(actionCnt + 1);
|
|
673
|
+
(0, vitest_1.expect)(once.queueLength).toBe(actionCnt + 1);
|
|
675
674
|
for (let i = 0; i < actionCnt; i++) {
|
|
676
675
|
const a = actions[i];
|
|
677
|
-
expect(await Promise.all(a.results)).toEqual(Array(onceCallCnt)
|
|
676
|
+
(0, vitest_1.expect)(await Promise.all(a.results)).toEqual(Array(onceCallCnt)
|
|
678
677
|
.fill(0)
|
|
679
678
|
.map(() => (i ? i + 96 : i + 63)));
|
|
680
679
|
}
|
|
681
680
|
});
|
|
682
|
-
it("Reset does not remove pending futures", async () => {
|
|
681
|
+
(0, vitest_1.it)("Reset does not remove pending futures", async () => {
|
|
683
682
|
const cnt = 10;
|
|
684
683
|
const once = new cement_1.ResolveOnce();
|
|
685
684
|
const releaseOnce = new cement_1.Future();
|
|
@@ -690,7 +689,7 @@ describe("Reset does not remove pending futures", () => {
|
|
|
690
689
|
}));
|
|
691
690
|
const newValue = new cement_1.Future();
|
|
692
691
|
let newWaiting = undefined;
|
|
693
|
-
const never = vi.fn();
|
|
692
|
+
const never = vitest_1.vi.fn();
|
|
694
693
|
const resetResult = once.reset(async () => {
|
|
695
694
|
newWaiting = Promise.all(Array(cnt)
|
|
696
695
|
.fill(0)
|
|
@@ -703,97 +702,97 @@ describe("Reset does not remove pending futures", () => {
|
|
|
703
702
|
});
|
|
704
703
|
releaseOnce.resolve();
|
|
705
704
|
newValue.resolve();
|
|
706
|
-
expect(await resetResult).toBe(42);
|
|
705
|
+
(0, vitest_1.expect)(await resetResult).toBe(42);
|
|
707
706
|
const resWaiting = await waiting;
|
|
708
|
-
expect(resWaiting).toEqual(Array(cnt).fill(24));
|
|
709
|
-
if (!(0,
|
|
710
|
-
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");
|
|
711
710
|
return;
|
|
712
711
|
}
|
|
713
712
|
const newWaitingResult = await Promise.resolve(newWaiting);
|
|
714
|
-
expect(newWaitingResult).toEqual(Array(cnt).fill(24));
|
|
715
|
-
expect(never).not.toHaveBeenCalled();
|
|
713
|
+
(0, vitest_1.expect)(newWaitingResult).toEqual(Array(cnt).fill(24));
|
|
714
|
+
(0, vitest_1.expect)(never).not.toHaveBeenCalled();
|
|
716
715
|
const resolvedReset = await resetResult;
|
|
717
|
-
expect(resolvedReset).toBe(42);
|
|
718
|
-
expect(await Promise.all(Array(cnt)
|
|
716
|
+
(0, vitest_1.expect)(resolvedReset).toBe(42);
|
|
717
|
+
(0, vitest_1.expect)(await Promise.all(Array(cnt)
|
|
719
718
|
.fill(0)
|
|
720
719
|
.map(() => once.once(() => {
|
|
721
720
|
never();
|
|
722
721
|
return 49;
|
|
723
722
|
})))).toEqual(Array(cnt).fill(42));
|
|
724
723
|
});
|
|
725
|
-
it("Keyed Resolve ReturnType of once", () => {
|
|
724
|
+
(0, vitest_1.it)("Keyed Resolve ReturnType of once", () => {
|
|
726
725
|
const keyed = new cement_1.KeyedResolvOnce();
|
|
727
726
|
const type1 = keyed.get("type1").once(() => ({ type1: "1" }));
|
|
728
|
-
assertType(type1);
|
|
729
|
-
assertType(type1);
|
|
727
|
+
(0, vitest_1.assertType)(type1);
|
|
728
|
+
(0, vitest_1.assertType)(type1);
|
|
730
729
|
const type2 = keyed.get("type2").once(() => ({ type2: 1 }));
|
|
731
|
-
assertType(type2);
|
|
732
|
-
assertType(type2);
|
|
730
|
+
(0, vitest_1.assertType)(type2);
|
|
731
|
+
(0, vitest_1.assertType)(type2);
|
|
733
732
|
const type3 = keyed.get("type3").once(() => ({ type3: true }));
|
|
734
|
-
assertType(type3);
|
|
735
|
-
assertType(type3);
|
|
733
|
+
(0, vitest_1.assertType)(type3);
|
|
734
|
+
(0, vitest_1.assertType)(type3);
|
|
736
735
|
});
|
|
737
|
-
it("ResolveOnce ReturnType of once", async () => {
|
|
736
|
+
(0, vitest_1.it)("ResolveOnce ReturnType of once", async () => {
|
|
738
737
|
const ronce = new cement_1.ResolveOnce();
|
|
739
738
|
const type1 = ronce.once(() => ({ type1: "1" }));
|
|
740
|
-
assertType(type1);
|
|
741
|
-
assertType(type1);
|
|
739
|
+
(0, vitest_1.assertType)(type1);
|
|
740
|
+
(0, vitest_1.assertType)(type1);
|
|
742
741
|
const type2 = ronce.once(() => ({ type2: 1 }));
|
|
743
|
-
assertType(type2);
|
|
744
|
-
assertType(type2);
|
|
742
|
+
(0, vitest_1.assertType)(type2);
|
|
743
|
+
(0, vitest_1.assertType)(type2);
|
|
745
744
|
const type3 = ronce.once(() => ({ type3: true }));
|
|
746
|
-
assertType(type3);
|
|
747
|
-
assertType(type3);
|
|
745
|
+
(0, vitest_1.assertType)(type3);
|
|
746
|
+
(0, vitest_1.assertType)(type3);
|
|
748
747
|
const atype1 = await ronce.once(() => Promise.resolve({ type1: "1" }));
|
|
749
|
-
assertType(atype1);
|
|
750
|
-
assertType(atype1);
|
|
748
|
+
(0, vitest_1.assertType)(atype1);
|
|
749
|
+
(0, vitest_1.assertType)(atype1);
|
|
751
750
|
const atype2 = await ronce.once(() => Promise.resolve({ type2: 1 }));
|
|
752
|
-
assertType(atype2);
|
|
753
|
-
assertType(atype2);
|
|
751
|
+
(0, vitest_1.assertType)(atype2);
|
|
752
|
+
(0, vitest_1.assertType)(atype2);
|
|
754
753
|
const atype3 = await ronce.once(() => Promise.resolve({ type3: true }));
|
|
755
|
-
assertType(atype3);
|
|
756
|
-
assertType(atype3);
|
|
754
|
+
(0, vitest_1.assertType)(atype3);
|
|
755
|
+
(0, vitest_1.assertType)(atype3);
|
|
757
756
|
});
|
|
758
757
|
});
|
|
759
|
-
describe("Lazy Initialization", () => {
|
|
760
|
-
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 () => {
|
|
761
760
|
const my = new MyLazy();
|
|
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 });
|
|
764
|
-
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 });
|
|
765
764
|
});
|
|
766
|
-
it("Sync Lazy With Renew Timer", async () => {
|
|
765
|
+
(0, vitest_1.it)("Sync Lazy With Renew Timer", async () => {
|
|
767
766
|
let initVal = 0;
|
|
768
767
|
const lazy = (0, cement_1.Lazy)(() => {
|
|
769
768
|
return ++initVal;
|
|
770
769
|
}, { resetAfter: 50 });
|
|
771
|
-
expect(lazy()).toBe(1);
|
|
772
|
-
await (0,
|
|
773
|
-
expect(lazy()).toBe(1);
|
|
774
|
-
await (0,
|
|
775
|
-
expect(lazy()).toBe(2);
|
|
776
|
-
expect(lazy()).toBe(2);
|
|
777
|
-
await (0,
|
|
778
|
-
expect(lazy()).toBe(3);
|
|
779
|
-
expect(lazy()).toBe(3);
|
|
780
|
-
});
|
|
781
|
-
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 () => {
|
|
782
781
|
let initVal = 0;
|
|
783
782
|
const lazy = (0, cement_1.Lazy)(() => {
|
|
784
783
|
return Promise.resolve(++initVal);
|
|
785
784
|
}, { resetAfter: 50 });
|
|
786
|
-
expect(await lazy()).toBe(1);
|
|
787
|
-
await (0,
|
|
788
|
-
expect(await lazy()).toBe(1);
|
|
789
|
-
await (0,
|
|
790
|
-
expect(await lazy()).toBe(2);
|
|
791
|
-
expect(await lazy()).toBe(2);
|
|
792
|
-
await (0,
|
|
793
|
-
expect(await lazy()).toBe(3);
|
|
794
|
-
expect(await lazy()).toBe(3);
|
|
795
|
-
});
|
|
796
|
-
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 () => {
|
|
797
796
|
const keyed = new cement_1.KeyedResolvOnce({
|
|
798
797
|
resetAfter: 50,
|
|
799
798
|
});
|
|
@@ -803,25 +802,25 @@ describe("Lazy Initialization", () => {
|
|
|
803
802
|
.fill(0)
|
|
804
803
|
.map((_, idx) => keyed.get(idx).once(() => initVal));
|
|
805
804
|
}
|
|
806
|
-
expect(onces(++initVal)).toEqual(Array(5).fill(initVal));
|
|
807
|
-
await (0,
|
|
808
|
-
expect(onces(initVal)).toEqual(Array(5).fill(initVal));
|
|
809
|
-
await (0,
|
|
810
|
-
expect(onces(++initVal)).toEqual(Array(5).fill(initVal));
|
|
811
|
-
await (0,
|
|
812
|
-
expect(onces(initVal)).toEqual(Array(5).fill(initVal));
|
|
813
|
-
await (0,
|
|
814
|
-
expect(onces(++initVal)).toEqual(Array(5).fill(initVal));
|
|
815
|
-
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));
|
|
816
815
|
});
|
|
817
816
|
});
|
|
818
|
-
describe("KeyToHash", () => {
|
|
819
|
-
it("KeyedResolvSeq could use default KeyToHash", async () => {
|
|
817
|
+
(0, vitest_1.describe)("KeyToHash", () => {
|
|
818
|
+
(0, vitest_1.it)("KeyedResolvSeq could use default KeyToHash", async () => {
|
|
820
819
|
const keyed = new cement_1.KeyedResolvSeq({
|
|
821
820
|
key2string: (key) => `${key.id}:${key.name}`,
|
|
822
821
|
ctx: { ctx: "test" },
|
|
823
822
|
});
|
|
824
|
-
const addFn = vi
|
|
823
|
+
const addFn = vitest_1.vi
|
|
825
824
|
.fn()
|
|
826
825
|
.mockImplementation((item) => {
|
|
827
826
|
return Promise.resolve({ item });
|
|
@@ -829,32 +828,32 @@ describe("KeyToHash", () => {
|
|
|
829
828
|
await keyed.get({ id: 1, name: "test" }).add(addFn);
|
|
830
829
|
await keyed.get({ id: 1, name: "test" }).add(addFn);
|
|
831
830
|
await keyed.get({ id: 2, name: "test" }).add(addFn);
|
|
832
|
-
expect(addFn).toHaveBeenCalledTimes(3);
|
|
833
|
-
expect(addFn).toHaveBeenNthCalledWith(1, {
|
|
831
|
+
(0, vitest_1.expect)(addFn).toHaveBeenCalledTimes(3);
|
|
832
|
+
(0, vitest_1.expect)(addFn).toHaveBeenNthCalledWith(1, {
|
|
834
833
|
refKey: "1:test",
|
|
835
834
|
givenKey: { id: 1, name: "test" },
|
|
836
835
|
value: undefined,
|
|
837
836
|
ctx: { ctx: "test" },
|
|
838
837
|
});
|
|
839
|
-
expect(addFn).toHaveBeenNthCalledWith(2, {
|
|
838
|
+
(0, vitest_1.expect)(addFn).toHaveBeenNthCalledWith(2, {
|
|
840
839
|
refKey: "1:test",
|
|
841
840
|
givenKey: { id: 1, name: "test" },
|
|
842
841
|
value: undefined,
|
|
843
842
|
ctx: { ctx: "test" },
|
|
844
843
|
});
|
|
845
|
-
expect(addFn).toHaveBeenNthCalledWith(3, {
|
|
844
|
+
(0, vitest_1.expect)(addFn).toHaveBeenNthCalledWith(3, {
|
|
846
845
|
refKey: "2:test",
|
|
847
846
|
givenKey: { id: 2, name: "test" },
|
|
848
847
|
value: undefined,
|
|
849
848
|
ctx: { ctx: "test" },
|
|
850
849
|
});
|
|
851
850
|
});
|
|
852
|
-
it("KeyedResolvOnce could use custom KeyToHash", async () => {
|
|
851
|
+
(0, vitest_1.it)("KeyedResolvOnce could use custom KeyToHash", async () => {
|
|
853
852
|
const keyed = new cement_1.KeyedResolvOnce({
|
|
854
853
|
key2string: (key) => `${key.id}:${key.name}`,
|
|
855
854
|
ctx: { ctx: "test" },
|
|
856
855
|
});
|
|
857
|
-
const onceFn = vi
|
|
856
|
+
const onceFn = vitest_1.vi
|
|
858
857
|
.fn()
|
|
859
858
|
.mockImplementation(({ ctx }) => {
|
|
860
859
|
return {
|
|
@@ -866,10 +865,10 @@ describe("KeyToHash", () => {
|
|
|
866
865
|
const res = await keyed.get({ id: 1, name: "test" }).once((item) => {
|
|
867
866
|
return Promise.resolve(onceFn(item));
|
|
868
867
|
});
|
|
869
|
-
expect(res).toEqual({ id: 1, name: "test" });
|
|
868
|
+
(0, vitest_1.expect)(res).toEqual({ id: 1, name: "test" });
|
|
870
869
|
}
|
|
871
|
-
expect(onceFn).toHaveBeenCalledTimes(1);
|
|
872
|
-
expect(onceFn.mock.calls[0][0].ctx).toEqual({
|
|
870
|
+
(0, vitest_1.expect)(onceFn).toHaveBeenCalledTimes(1);
|
|
871
|
+
(0, vitest_1.expect)(onceFn.mock.calls[0][0].ctx).toEqual({
|
|
873
872
|
refKey: "1:test",
|
|
874
873
|
givenKey: { id: 1, name: "test" },
|
|
875
874
|
value: undefined,
|
|
@@ -877,7 +876,7 @@ describe("KeyToHash", () => {
|
|
|
877
876
|
});
|
|
878
877
|
});
|
|
879
878
|
});
|
|
880
|
-
it("ResolveOnce gets is prev value if reset", () => {
|
|
879
|
+
(0, vitest_1.it)("ResolveOnce gets is prev value if reset", () => {
|
|
881
880
|
const once = new cement_1.ResolveOnce();
|
|
882
881
|
once.once(() => ({
|
|
883
882
|
value: 42,
|
|
@@ -893,7 +892,7 @@ it("ResolveOnce gets is prev value if reset", () => {
|
|
|
893
892
|
stats: my.self.value.stats + 1,
|
|
894
893
|
};
|
|
895
894
|
});
|
|
896
|
-
expect(res1).toEqual({
|
|
895
|
+
(0, vitest_1.expect)(res1).toEqual({
|
|
897
896
|
value: 45,
|
|
898
897
|
stats: 2,
|
|
899
898
|
});
|
|
@@ -906,32 +905,32 @@ it("ResolveOnce gets is prev value if reset", () => {
|
|
|
906
905
|
my.self.value.value += 3;
|
|
907
906
|
return my.self.value;
|
|
908
907
|
});
|
|
909
|
-
expect(res2).toEqual({
|
|
908
|
+
(0, vitest_1.expect)(res2).toEqual({
|
|
910
909
|
value: 48,
|
|
911
910
|
stats: 3,
|
|
912
911
|
});
|
|
913
912
|
});
|
|
914
|
-
it("dynamic setting of resetAfter switch off", async () => {
|
|
913
|
+
(0, vitest_1.it)("dynamic setting of resetAfter switch off", async () => {
|
|
915
914
|
const once = new cement_1.ResolveOnce(undefined, { resetAfter: 30 });
|
|
916
915
|
once.once((my) => {
|
|
917
916
|
my.self.setResetAfter();
|
|
918
917
|
return 42;
|
|
919
918
|
});
|
|
920
|
-
await (0,
|
|
921
|
-
expect(once.once(() => 43)).toBe(42);
|
|
919
|
+
await (0, cement_1.sleep)(40);
|
|
920
|
+
(0, vitest_1.expect)(once.once(() => 43)).toBe(42);
|
|
922
921
|
});
|
|
923
|
-
it("dynamic setting of resetAfter change time", async () => {
|
|
922
|
+
(0, vitest_1.it)("dynamic setting of resetAfter change time", async () => {
|
|
924
923
|
const once = new cement_1.ResolveOnce(undefined, { resetAfter: 30 });
|
|
925
924
|
once.once((my) => {
|
|
926
925
|
my.self.setResetAfter(10);
|
|
927
926
|
return 42;
|
|
928
927
|
});
|
|
929
|
-
await (0,
|
|
930
|
-
expect(once.once(() => 43)).toBe(43);
|
|
931
|
-
await (0,
|
|
932
|
-
expect(once.once(() => 44)).toBe(44);
|
|
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);
|
|
933
932
|
});
|
|
934
|
-
it("does not block node on process exit", async () => {
|
|
933
|
+
(0, vitest_1.it)("does not block node on process exit", async () => {
|
|
935
934
|
let runtime = undefined;
|
|
936
935
|
if ((0, cement_1.runtimeFn)().isNodeIsh) {
|
|
937
936
|
runtime = ["tsx", "-e"];
|
|
@@ -948,9 +947,15 @@ it("does not block node on process exit", async () => {
|
|
|
948
947
|
`.finally(() => console.log("done"));`,
|
|
949
948
|
].join("");
|
|
950
949
|
const res = await $ `${runtime} ${[code]}`;
|
|
951
|
-
expect(res.ok).toBe(true);
|
|
950
|
+
(0, vitest_1.expect)(res.ok).toBe(true);
|
|
952
951
|
const duration = Date.now() - start;
|
|
953
|
-
expect(duration).toBeLessThan(
|
|
952
|
+
(0, vitest_1.expect)(duration).toBeLessThan(2000);
|
|
954
953
|
}
|
|
955
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
|
+
});
|
|
956
961
|
//# sourceMappingURL=resolve-once.test.js.map
|