@vinicunca/perkakas 1.8.0 → 1.12.0
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/dist/add-prop.cjs +1 -1
- package/dist/add-prop.d.cts +46 -4
- package/dist/add-prop.d.cts.map +1 -0
- package/dist/add-prop.d.ts +46 -4
- package/dist/add-prop.d.ts.map +1 -0
- package/dist/add-prop.js +2 -1
- package/dist/add-prop.js.map +1 -0
- package/dist/add.cjs +1 -1
- package/dist/add.d.cts +34 -2
- package/dist/add.d.cts.map +1 -0
- package/dist/add.d.ts +34 -2
- package/dist/add.d.ts.map +1 -0
- package/dist/add.js +2 -1
- package/dist/add.js.map +1 -0
- package/dist/all-pass.cjs +1 -1
- package/dist/all-pass.d.cts +37 -2
- package/dist/all-pass.d.cts.map +1 -0
- package/dist/all-pass.d.ts +37 -2
- package/dist/all-pass.d.ts.map +1 -0
- package/dist/all-pass.js +2 -1
- package/dist/all-pass.js.map +1 -0
- package/dist/any-pass.cjs +1 -1
- package/dist/any-pass.d.cts +37 -2
- package/dist/any-pass.d.cts.map +1 -0
- package/dist/any-pass.d.ts +37 -2
- package/dist/any-pass.d.ts.map +1 -0
- package/dist/any-pass.js +2 -1
- package/dist/any-pass.js.map +1 -0
- package/dist/array-required-prefix-CefHtaKs.d.ts +26 -0
- package/dist/array-required-prefix-CefHtaKs.d.ts.map +1 -0
- package/dist/array-required-prefix-DxzEAAwi.d.cts +26 -0
- package/dist/array-required-prefix-DxzEAAwi.d.cts.map +1 -0
- package/dist/binary-search-cutoff-index-ClkmTCR5.cjs +1 -0
- package/dist/binary-search-cutoff-index-yQ2qcJHb.js +2 -0
- package/dist/binary-search-cutoff-index-yQ2qcJHb.js.map +1 -0
- package/dist/bounded-partial-D6ouPlXl.d.cts +17 -0
- package/dist/bounded-partial-D6ouPlXl.d.cts.map +1 -0
- package/dist/bounded-partial-DBIIClPU.d.ts +17 -0
- package/dist/bounded-partial-DBIIClPU.d.ts.map +1 -0
- package/dist/case.transform-CCMWrBmz.js +2 -0
- package/dist/case.transform-CCMWrBmz.js.map +1 -0
- package/dist/case.transform-FNx2XsC3.cjs +1 -0
- package/dist/case.types-BxuWJgN1.d.cts +19 -0
- package/dist/case.types-BxuWJgN1.d.cts.map +1 -0
- package/dist/case.types-CVfGg990.d.ts +19 -0
- package/dist/case.types-CVfGg990.d.ts.map +1 -0
- package/dist/ceil.cjs +1 -1
- package/dist/ceil.d.cts +39 -2
- package/dist/ceil.d.cts.map +1 -0
- package/dist/ceil.d.ts +39 -2
- package/dist/ceil.d.ts.map +1 -0
- package/dist/ceil.js +2 -1
- package/dist/ceil.js.map +1 -0
- package/dist/chunk.cjs +1 -1
- package/dist/chunk.d.cts +76 -9
- package/dist/chunk.d.cts.map +1 -0
- package/dist/chunk.d.ts +76 -9
- package/dist/chunk.d.ts.map +1 -0
- package/dist/chunk.js +2 -1
- package/dist/chunk.js.map +1 -0
- package/dist/clamp.cjs +1 -1
- package/dist/clamp.d.cts +37 -2
- package/dist/clamp.d.cts.map +1 -0
- package/dist/clamp.d.ts +37 -2
- package/dist/clamp.d.ts.map +1 -0
- package/dist/clamp.js +2 -1
- package/dist/clamp.js.map +1 -0
- package/dist/clamped-integer-subtract-oLs8msYu.d.cts +11 -0
- package/dist/clamped-integer-subtract-oLs8msYu.d.cts.map +1 -0
- package/dist/clamped-integer-subtract-sK2BlhSm.d.ts +11 -0
- package/dist/clamped-integer-subtract-sK2BlhSm.d.ts.map +1 -0
- package/dist/clone.cjs +1 -1
- package/dist/clone.d.cts +35 -2
- package/dist/clone.d.cts.map +1 -0
- package/dist/clone.d.ts +35 -2
- package/dist/clone.d.ts.map +1 -0
- package/dist/clone.js +2 -1
- package/dist/clone.js.map +1 -0
- package/dist/coerced-array-1Xs4p4iF.d.ts +17 -0
- package/dist/coerced-array-1Xs4p4iF.d.ts.map +1 -0
- package/dist/coerced-array-DS7cKtbA.d.cts +17 -0
- package/dist/coerced-array-DS7cKtbA.d.cts.map +1 -0
- package/dist/concat.cjs +1 -1
- package/dist/concat.d.cts +41 -3
- package/dist/concat.d.cts.map +1 -0
- package/dist/concat.d.ts +41 -3
- package/dist/concat.d.ts.map +1 -0
- package/dist/concat.js +2 -1
- package/dist/concat.js.map +1 -0
- package/dist/conditional-6ff4g8Sy.cjs +1 -0
- package/dist/conditional-F_nq8vtA.d.ts +221 -0
- package/dist/conditional-F_nq8vtA.d.ts.map +1 -0
- package/dist/conditional-lp8ZHACd.js +2 -0
- package/dist/conditional-lp8ZHACd.js.map +1 -0
- package/dist/conditional-tssGt6Vy.d.cts +221 -0
- package/dist/conditional-tssGt6Vy.d.cts.map +1 -0
- package/dist/conditional.cjs +1 -1
- package/dist/conditional.d.cts +1 -1
- package/dist/conditional.d.ts +1 -1
- package/dist/conditional.js +1 -1
- package/dist/constant.cjs +1 -1
- package/dist/constant.d.cts +32 -2
- package/dist/constant.d.cts.map +1 -0
- package/dist/constant.d.ts +32 -2
- package/dist/constant.d.ts.map +1 -0
- package/dist/constant.js +2 -1
- package/dist/constant.js.map +1 -0
- package/dist/count-by.cjs +1 -1
- package/dist/count-by.d.cts +42 -4
- package/dist/count-by.d.cts.map +1 -0
- package/dist/count-by.d.ts +42 -4
- package/dist/count-by.d.ts.map +1 -0
- package/dist/count-by.js +2 -1
- package/dist/count-by.js.map +1 -0
- package/dist/curry-B20xQM_9.d.cts +68 -0
- package/dist/curry-B20xQM_9.d.cts.map +1 -0
- package/dist/curry-BcQ8Up1_.js +2 -0
- package/dist/curry-BcQ8Up1_.js.map +1 -0
- package/dist/curry-BsY0Z8jH.cjs +1 -0
- package/dist/curry-d8_p_Jzt.d.ts +68 -0
- package/dist/curry-d8_p_Jzt.d.ts.map +1 -0
- package/dist/curry-from-lazy-BCGvmhyS.cjs +1 -0
- package/dist/curry-from-lazy-CYtJvyas.js +2 -0
- package/dist/curry-from-lazy-CYtJvyas.js.map +1 -0
- package/dist/curry-order-rules-BCcwbNxd.d.ts +48 -0
- package/dist/curry-order-rules-BCcwbNxd.d.ts.map +1 -0
- package/dist/curry-order-rules-C6bwcUwC.js +2 -0
- package/dist/curry-order-rules-C6bwcUwC.js.map +1 -0
- package/dist/curry-order-rules-ClqHrs8_.cjs +1 -0
- package/dist/curry-order-rules-cezUWcSx.d.cts +48 -0
- package/dist/curry-order-rules-cezUWcSx.d.cts.map +1 -0
- package/dist/curry.cjs +1 -1
- package/dist/curry.d.cts +1 -1
- package/dist/curry.d.ts +1 -1
- package/dist/curry.js +1 -1
- package/dist/debounce.cjs +1 -1
- package/dist/debounce.d.cts +96 -2
- package/dist/debounce.d.cts.map +1 -0
- package/dist/debounce.d.ts +96 -2
- package/dist/debounce.d.ts.map +1 -0
- package/dist/debounce.js +2 -1
- package/dist/debounce.js.map +1 -0
- package/dist/deduped-CL5-bmYU.d.ts +23 -0
- package/dist/deduped-CL5-bmYU.d.ts.map +1 -0
- package/dist/deduped-CXeQa-0F.d.cts +23 -0
- package/dist/deduped-CXeQa-0F.d.cts.map +1 -0
- package/dist/difference-with.cjs +1 -1
- package/dist/difference-with.d.cts +48 -2
- package/dist/difference-with.d.cts.map +1 -0
- package/dist/difference-with.d.ts +48 -2
- package/dist/difference-with.d.ts.map +1 -0
- package/dist/difference-with.js +2 -1
- package/dist/difference-with.js.map +1 -0
- package/dist/difference.cjs +1 -1
- package/dist/difference.d.cts +37 -2
- package/dist/difference.d.cts.map +1 -0
- package/dist/difference.d.ts +37 -2
- package/dist/difference.d.ts.map +1 -0
- package/dist/difference.js +2 -1
- package/dist/difference.js.map +1 -0
- package/dist/dist-CUT1dnRU.js +343 -0
- package/dist/dist-CUT1dnRU.js.map +1 -0
- package/dist/dist-CiyBKPT6.cjs +343 -0
- package/dist/divide.cjs +1 -1
- package/dist/divide.d.cts +33 -2
- package/dist/divide.d.cts.map +1 -0
- package/dist/divide.d.ts +33 -2
- package/dist/divide.d.ts.map +1 -0
- package/dist/divide.js +2 -1
- package/dist/divide.js.map +1 -0
- package/dist/do-nothing.cjs +1 -1
- package/dist/do-nothing.d.cts +28 -2
- package/dist/do-nothing.d.cts.map +1 -0
- package/dist/do-nothing.d.ts +28 -2
- package/dist/do-nothing.d.ts.map +1 -0
- package/dist/do-nothing.js +2 -1
- package/dist/do-nothing.js.map +1 -0
- package/dist/drop-first-by.cjs +1 -1
- package/dist/drop-first-by.d.cts +41 -4
- package/dist/drop-first-by.d.cts.map +1 -0
- package/dist/drop-first-by.d.ts +41 -4
- package/dist/drop-first-by.d.ts.map +1 -0
- package/dist/drop-first-by.js +2 -1
- package/dist/drop-first-by.js.map +1 -0
- package/dist/drop-last-while.cjs +1 -1
- package/dist/drop-last-while.d.cts +36 -3
- package/dist/drop-last-while.d.cts.map +1 -0
- package/dist/drop-last-while.d.ts +36 -3
- package/dist/drop-last-while.d.ts.map +1 -0
- package/dist/drop-last-while.js +2 -1
- package/dist/drop-last-while.js.map +1 -0
- package/dist/drop-last.cjs +1 -1
- package/dist/drop-last.d.cts +32 -3
- package/dist/drop-last.d.cts.map +1 -0
- package/dist/drop-last.d.ts +32 -3
- package/dist/drop-last.d.ts.map +1 -0
- package/dist/drop-last.js +2 -1
- package/dist/drop-last.js.map +1 -0
- package/dist/drop-while.cjs +1 -1
- package/dist/drop-while.d.cts +36 -3
- package/dist/drop-while.d.cts.map +1 -0
- package/dist/drop-while.d.ts +36 -3
- package/dist/drop-while.d.ts.map +1 -0
- package/dist/drop-while.js +2 -1
- package/dist/drop-while.js.map +1 -0
- package/dist/drop.cjs +1 -1
- package/dist/drop.d.cts +40 -8
- package/dist/drop.d.cts.map +1 -0
- package/dist/drop.d.ts +40 -8
- package/dist/drop.d.ts.map +1 -0
- package/dist/drop.js +2 -1
- package/dist/drop.js.map +1 -0
- package/dist/entries.cjs +1 -1
- package/dist/entries.d.cts +31 -3
- package/dist/entries.d.cts.map +1 -0
- package/dist/entries.d.ts +31 -3
- package/dist/entries.d.ts.map +1 -0
- package/dist/entries.js +2 -1
- package/dist/entries.js.map +1 -0
- package/dist/enumerable-string-key-of-DMAkBhMk.d.ts +17 -0
- package/dist/enumerable-string-key-of-DMAkBhMk.d.ts.map +1 -0
- package/dist/enumerable-string-key-of-FUg082M_.d.cts +17 -0
- package/dist/enumerable-string-key-of-FUg082M_.d.cts.map +1 -0
- package/dist/enumerable-string-keyed-value-of-B2F2aTB7.d.ts +12 -0
- package/dist/enumerable-string-keyed-value-of-B2F2aTB7.d.ts.map +1 -0
- package/dist/enumerable-string-keyed-value-of-CEclDoqe.d.cts +12 -0
- package/dist/enumerable-string-keyed-value-of-CEclDoqe.d.cts.map +1 -0
- package/dist/evolve.cjs +1 -1
- package/dist/evolve.d.cts +101 -3
- package/dist/evolve.d.cts.map +1 -0
- package/dist/evolve.d.ts +101 -3
- package/dist/evolve.d.ts.map +1 -0
- package/dist/evolve.js +2 -1
- package/dist/evolve.js.map +1 -0
- package/dist/filter.cjs +1 -1
- package/dist/filter.d.cts +50 -7
- package/dist/filter.d.cts.map +1 -0
- package/dist/filter.d.ts +50 -7
- package/dist/filter.d.ts.map +1 -0
- package/dist/filter.js +2 -1
- package/dist/filter.js.map +1 -0
- package/dist/filtered-array-D_RqQ8tX.d.cts +13 -0
- package/dist/filtered-array-D_RqQ8tX.d.cts.map +1 -0
- package/dist/filtered-array-Yij-X3T4.d.ts +13 -0
- package/dist/filtered-array-Yij-X3T4.d.ts.map +1 -0
- package/dist/find-index.cjs +1 -1
- package/dist/find-index.d.cts +50 -2
- package/dist/find-index.d.cts.map +1 -0
- package/dist/find-index.d.ts +50 -2
- package/dist/find-index.d.ts.map +1 -0
- package/dist/find-index.js +2 -1
- package/dist/find-index.js.map +1 -0
- package/dist/find-last-index.cjs +1 -1
- package/dist/find-last-index.d.cts +50 -2
- package/dist/find-last-index.d.cts.map +1 -0
- package/dist/find-last-index.d.ts +50 -2
- package/dist/find-last-index.d.ts.map +1 -0
- package/dist/find-last-index.js +2 -1
- package/dist/find-last-index.js.map +1 -0
- package/dist/find-last.cjs +1 -1
- package/dist/find-last.d.cts +62 -2
- package/dist/find-last.d.cts.map +1 -0
- package/dist/find-last.d.ts +62 -2
- package/dist/find-last.d.ts.map +1 -0
- package/dist/find-last.js +2 -1
- package/dist/find-last.js.map +1 -0
- package/dist/find.cjs +1 -1
- package/dist/find.d.cts +64 -2
- package/dist/find.d.cts.map +1 -0
- package/dist/find.d.ts +64 -2
- package/dist/find.d.ts.map +1 -0
- package/dist/find.js +2 -1
- package/dist/find.js.map +1 -0
- package/dist/first-by.cjs +1 -1
- package/dist/first-by.d.cts +60 -5
- package/dist/first-by.d.cts.map +1 -0
- package/dist/first-by.d.ts +60 -5
- package/dist/first-by.d.ts.map +1 -0
- package/dist/first-by.js +2 -1
- package/dist/first-by.js.map +1 -0
- package/dist/first.cjs +1 -1
- package/dist/first.d.cts +40 -3
- package/dist/first.d.cts.map +1 -0
- package/dist/first.d.ts +40 -3
- package/dist/first.d.ts.map +1 -0
- package/dist/first.js +2 -1
- package/dist/first.js.map +1 -0
- package/dist/flat-map.cjs +1 -1
- package/dist/flat-map.d.cts +47 -2
- package/dist/flat-map.d.cts.map +1 -0
- package/dist/flat-map.d.ts +47 -2
- package/dist/flat-map.d.ts.map +1 -0
- package/dist/flat-map.js +2 -1
- package/dist/flat-map.js.map +1 -0
- package/dist/flat.cjs +1 -1
- package/dist/flat.d.cts +53 -3
- package/dist/flat.d.cts.map +1 -0
- package/dist/flat.d.ts +53 -3
- package/dist/flat.d.ts.map +1 -0
- package/dist/flat.js +2 -1
- package/dist/flat.js.map +1 -0
- package/dist/floor.cjs +1 -1
- package/dist/floor.d.cts +39 -2
- package/dist/floor.d.cts.map +1 -0
- package/dist/floor.d.ts +39 -2
- package/dist/floor.d.ts.map +1 -0
- package/dist/floor.js +2 -1
- package/dist/floor.js.map +1 -0
- package/dist/for-each-obj.cjs +1 -1
- package/dist/for-each-obj.d.cts +47 -5
- package/dist/for-each-obj.d.cts.map +1 -0
- package/dist/for-each-obj.d.ts +47 -5
- package/dist/for-each-obj.d.ts.map +1 -0
- package/dist/for-each-obj.js +2 -1
- package/dist/for-each-obj.js.map +1 -0
- package/dist/for-each.cjs +1 -1
- package/dist/for-each.d.cts +54 -3
- package/dist/for-each.d.cts.map +1 -0
- package/dist/for-each.d.ts +54 -3
- package/dist/for-each.d.ts.map +1 -0
- package/dist/for-each.js +2 -1
- package/dist/for-each.js.map +1 -0
- package/dist/from-entries.cjs +1 -1
- package/dist/from-entries.d.cts +68 -4
- package/dist/from-entries.d.cts.map +1 -0
- package/dist/from-entries.d.ts +68 -4
- package/dist/from-entries.d.ts.map +1 -0
- package/dist/from-entries.js +2 -1
- package/dist/from-entries.js.map +1 -0
- package/dist/from-keys.cjs +1 -1
- package/dist/from-keys.d.cts +60 -5
- package/dist/from-keys.d.cts.map +1 -0
- package/dist/from-keys.d.ts +60 -5
- package/dist/from-keys.d.ts.map +1 -0
- package/dist/from-keys.js +2 -1
- package/dist/from-keys.js.map +1 -0
- package/dist/funnel.cjs +1 -1
- package/dist/funnel.d.cts +155 -2
- package/dist/funnel.d.cts.map +1 -0
- package/dist/funnel.d.ts +155 -2
- package/dist/funnel.d.ts.map +1 -0
- package/dist/funnel.js +2 -1
- package/dist/funnel.js.map +1 -0
- package/dist/funnel.lodash-debounce-with-cached-value.test.cjs +1 -1
- package/dist/funnel.lodash-debounce-with-cached-value.test.js +1 -1
- package/dist/funnel.lodash-debounce-with-cached-value.test.js.map +1 -1
- package/dist/funnel.lodash-debounce.test.cjs +1 -1
- package/dist/funnel.lodash-debounce.test.js +1 -1
- package/dist/funnel.lodash-debounce.test.js.map +1 -1
- package/dist/funnel.lodash-throttle-with-cached-value.test.cjs +1 -1
- package/dist/funnel.lodash-throttle-with-cached-value.test.js +1 -1
- package/dist/funnel.lodash-throttle-with-cached-value.test.js.map +1 -1
- package/dist/funnel.lodash-throttle.test.cjs +1 -1
- package/dist/funnel.lodash-throttle.test.js +1 -1
- package/dist/funnel.lodash-throttle.test.js.map +1 -1
- package/dist/funnel.perkakas-debounce.test.cjs +1 -1
- package/dist/funnel.perkakas-debounce.test.js +1 -1
- package/dist/funnel.perkakas-debounce.test.js.map +1 -1
- package/dist/funnel.reference-batch.test.cjs +1 -1
- package/dist/funnel.reference-batch.test.js +1 -1
- package/dist/funnel.reference-batch.test.js.map +1 -1
- package/dist/funnel.test-d.cjs +1 -1
- package/dist/funnel.test-d.js +1 -1
- package/dist/funnel.test-d.js.map +1 -1
- package/dist/funnel.test.cjs +1 -1
- package/dist/funnel.test.js +1 -1
- package/dist/funnel.test.js.map +1 -1
- package/dist/group-by-prop.cjs +1 -1
- package/dist/group-by-prop.d.cts +89 -11
- package/dist/group-by-prop.d.cts.map +1 -0
- package/dist/group-by-prop.d.ts +89 -11
- package/dist/group-by-prop.d.ts.map +1 -0
- package/dist/group-by-prop.js +2 -1
- package/dist/group-by-prop.js.map +1 -0
- package/dist/group-by.cjs +1 -1
- package/dist/group-by.d.cts +69 -5
- package/dist/group-by.d.cts.map +1 -0
- package/dist/group-by.d.ts +69 -5
- package/dist/group-by.d.ts.map +1 -0
- package/dist/group-by.js +2 -1
- package/dist/group-by.js.map +1 -0
- package/dist/has-at-least-BXwOPLQK.cjs +1 -0
- package/dist/has-at-least-DyIhWZJH.js +2 -0
- package/dist/has-at-least-DyIhWZJH.js.map +1 -0
- package/dist/has-at-least.cjs +1 -1
- package/dist/has-at-least.d.cts +59 -8
- package/dist/has-at-least.d.cts.map +1 -0
- package/dist/has-at-least.d.ts +59 -8
- package/dist/has-at-least.d.ts.map +1 -0
- package/dist/has-at-least.js +1 -1
- package/dist/has-sub-object.cjs +1 -1
- package/dist/has-sub-object.d.cts +44 -2
- package/dist/has-sub-object.d.cts.map +1 -0
- package/dist/has-sub-object.d.ts +44 -2
- package/dist/has-sub-object.d.ts.map +1 -0
- package/dist/has-sub-object.js +2 -1
- package/dist/has-sub-object.js.map +1 -0
- package/dist/heap-DWDhbxfx.cjs +1 -0
- package/dist/heap-bARaRULU.js +2 -0
- package/dist/heap-bARaRULU.js.map +1 -0
- package/dist/human-readable-file-size.cjs +1 -1
- package/dist/human-readable-file-size.d.cts +17 -2
- package/dist/human-readable-file-size.d.cts.map +1 -0
- package/dist/human-readable-file-size.d.ts +17 -2
- package/dist/human-readable-file-size.d.ts.map +1 -0
- package/dist/human-readable-file-size.js +2 -1
- package/dist/human-readable-file-size.js.map +1 -0
- package/dist/identity.cjs +1 -1
- package/dist/identity.d.cts +22 -2
- package/dist/identity.d.cts.map +1 -0
- package/dist/identity.d.ts +22 -2
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +2 -1
- package/dist/identity.js.map +1 -0
- package/dist/index-by.cjs +1 -1
- package/dist/index-by.d.cts +53 -4
- package/dist/index-by.d.cts.map +1 -0
- package/dist/index-by.d.ts +53 -4
- package/dist/index-by.d.ts.map +1 -0
- package/dist/index-by.js +2 -1
- package/dist/index-by.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +160 -183
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +160 -183
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/int-range-inclusive-ClGdUant.d.ts +15 -0
- package/dist/int-range-inclusive-ClGdUant.d.ts.map +1 -0
- package/dist/int-range-inclusive-q-Jb7w6P.d.cts +15 -0
- package/dist/int-range-inclusive-q-Jb7w6P.d.cts.map +1 -0
- package/dist/intersection-with.cjs +1 -1
- package/dist/intersection-with.d.cts +54 -2
- package/dist/intersection-with.d.cts.map +1 -0
- package/dist/intersection-with.d.ts +54 -2
- package/dist/intersection-with.d.ts.map +1 -0
- package/dist/intersection-with.js +2 -1
- package/dist/intersection-with.js.map +1 -0
- package/dist/intersection.cjs +1 -1
- package/dist/intersection.d.cts +37 -2
- package/dist/intersection.d.cts.map +1 -0
- package/dist/intersection.d.ts +37 -2
- package/dist/intersection.d.ts.map +1 -0
- package/dist/intersection.js +2 -1
- package/dist/intersection.js.map +1 -0
- package/dist/invert.cjs +1 -1
- package/dist/invert.d.cts +33 -3
- package/dist/invert.d.cts.map +1 -0
- package/dist/invert.d.ts +33 -3
- package/dist/invert.d.ts.map +1 -0
- package/dist/invert.js +2 -1
- package/dist/invert.js.map +1 -0
- package/dist/is-array.cjs +1 -1
- package/dist/is-array.d.cts +21 -3
- package/dist/is-array.d.cts.map +1 -0
- package/dist/is-array.d.ts +21 -3
- package/dist/is-array.d.ts.map +1 -0
- package/dist/is-array.js +2 -1
- package/dist/is-array.js.map +1 -0
- package/dist/is-big-int.cjs +1 -1
- package/dist/is-big-int.d.cts +22 -3
- package/dist/is-big-int.d.cts.map +1 -0
- package/dist/is-big-int.d.ts +22 -3
- package/dist/is-big-int.d.ts.map +1 -0
- package/dist/is-big-int.js +2 -1
- package/dist/is-big-int.js.map +1 -0
- package/dist/is-boolean.cjs +1 -1
- package/dist/is-boolean.d.cts +21 -3
- package/dist/is-boolean.d.cts.map +1 -0
- package/dist/is-boolean.d.ts +21 -3
- package/dist/is-boolean.d.ts.map +1 -0
- package/dist/is-boolean.js +2 -1
- package/dist/is-boolean.js.map +1 -0
- package/dist/is-bounded-record-BGclJjRX.d.ts +34 -0
- package/dist/is-bounded-record-BGclJjRX.d.ts.map +1 -0
- package/dist/is-bounded-record-D9YK_OC8.d.cts +34 -0
- package/dist/is-bounded-record-D9YK_OC8.d.cts.map +1 -0
- package/dist/is-date.cjs +1 -1
- package/dist/is-date.d.cts +17 -2
- package/dist/is-date.d.cts.map +1 -0
- package/dist/is-date.d.ts +17 -2
- package/dist/is-date.d.ts.map +1 -0
- package/dist/is-date.js +2 -1
- package/dist/is-date.js.map +1 -0
- package/dist/is-deep-equal.cjs +1 -1
- package/dist/is-deep-equal.d.cts +71 -2
- package/dist/is-deep-equal.d.cts.map +1 -0
- package/dist/is-deep-equal.d.ts +71 -2
- package/dist/is-deep-equal.d.ts.map +1 -0
- package/dist/is-deep-equal.js +2 -1
- package/dist/is-deep-equal.js.map +1 -0
- package/dist/is-defined.cjs +1 -1
- package/dist/is-defined.d.cts +19 -2
- package/dist/is-defined.d.cts.map +1 -0
- package/dist/is-defined.d.ts +19 -2
- package/dist/is-defined.d.ts.map +1 -0
- package/dist/is-defined.js +2 -1
- package/dist/is-defined.js.map +1 -0
- package/dist/is-empty.cjs +1 -1
- package/dist/is-empty.d.cts +35 -3
- package/dist/is-empty.d.cts.map +1 -0
- package/dist/is-empty.d.ts +35 -3
- package/dist/is-empty.d.ts.map +1 -0
- package/dist/is-empty.js +2 -1
- package/dist/is-empty.js.map +1 -0
- package/dist/is-emptyish-CIxZzxxz.d.ts +74 -0
- package/dist/is-emptyish-CIxZzxxz.d.ts.map +1 -0
- package/dist/is-emptyish-oX5mpcfW.d.cts +74 -0
- package/dist/is-emptyish-oX5mpcfW.d.cts.map +1 -0
- package/dist/is-emptyish.cjs +1 -0
- package/dist/is-emptyish.d.cts +2 -0
- package/dist/is-emptyish.d.ts +2 -0
- package/dist/is-emptyish.js +2 -0
- package/dist/is-emptyish.js.map +1 -0
- package/dist/is-emptyish.test-d.cjs +1 -0
- package/dist/is-emptyish.test-d.d.cts +8 -0
- package/dist/is-emptyish.test-d.d.cts.map +1 -0
- package/dist/is-emptyish.test-d.d.ts +8 -0
- package/dist/is-emptyish.test-d.d.ts.map +1 -0
- package/dist/is-emptyish.test-d.js +2 -0
- package/dist/is-emptyish.test-d.js.map +1 -0
- package/dist/is-emptyish.test.cjs +1 -0
- package/dist/is-emptyish.test.d.cts +1 -0
- package/dist/is-emptyish.test.d.ts +1 -0
- package/dist/is-emptyish.test.js +2 -0
- package/dist/is-emptyish.test.js.map +1 -0
- package/dist/is-error.cjs +1 -1
- package/dist/is-error.d.cts +18 -2
- package/dist/is-error.d.cts.map +1 -0
- package/dist/is-error.d.ts +18 -2
- package/dist/is-error.d.ts.map +1 -0
- package/dist/is-error.js +2 -1
- package/dist/is-error.js.map +1 -0
- package/dist/is-function.cjs +1 -1
- package/dist/is-function.d.cts +18 -2
- package/dist/is-function.d.cts.map +1 -0
- package/dist/is-function.d.ts +18 -2
- package/dist/is-function.d.ts.map +1 -0
- package/dist/is-function.js +2 -1
- package/dist/is-function.js.map +1 -0
- package/dist/is-included-in.cjs +1 -1
- package/dist/is-included-in.d.cts +110 -4
- package/dist/is-included-in.d.cts.map +1 -0
- package/dist/is-included-in.d.ts +110 -4
- package/dist/is-included-in.d.ts.map +1 -0
- package/dist/is-included-in.js +2 -1
- package/dist/is-included-in.js.map +1 -0
- package/dist/is-non-null.cjs +1 -1
- package/dist/is-non-null.d.cts +19 -2
- package/dist/is-non-null.d.cts.map +1 -0
- package/dist/is-non-null.d.ts +19 -2
- package/dist/is-non-null.d.ts.map +1 -0
- package/dist/is-non-null.js +2 -1
- package/dist/is-non-null.js.map +1 -0
- package/dist/is-non-nullish.cjs +1 -1
- package/dist/is-non-nullish.d.cts +20 -2
- package/dist/is-non-nullish.d.cts.map +1 -0
- package/dist/is-non-nullish.d.ts +20 -2
- package/dist/is-non-nullish.d.ts.map +1 -0
- package/dist/is-non-nullish.js +2 -1
- package/dist/is-non-nullish.js.map +1 -0
- package/dist/is-not.cjs +1 -1
- package/dist/is-not.d.cts +19 -2
- package/dist/is-not.d.cts.map +1 -0
- package/dist/is-not.d.ts +19 -2
- package/dist/is-not.d.ts.map +1 -0
- package/dist/is-not.js +2 -1
- package/dist/is-not.js.map +1 -0
- package/dist/is-nullish.cjs +1 -1
- package/dist/is-nullish.d.cts +23 -3
- package/dist/is-nullish.d.cts.map +1 -0
- package/dist/is-nullish.d.ts +23 -3
- package/dist/is-nullish.d.ts.map +1 -0
- package/dist/is-nullish.js +2 -1
- package/dist/is-nullish.js.map +1 -0
- package/dist/is-number.cjs +1 -1
- package/dist/is-number.d.cts +22 -3
- package/dist/is-number.d.cts.map +1 -0
- package/dist/is-number.d.ts +22 -3
- package/dist/is-number.d.ts.map +1 -0
- package/dist/is-number.js +2 -1
- package/dist/is-number.js.map +1 -0
- package/dist/is-object-type.cjs +1 -1
- package/dist/is-object-type.d.cts +35 -3
- package/dist/is-object-type.d.cts.map +1 -0
- package/dist/is-object-type.d.ts +35 -3
- package/dist/is-object-type.d.ts.map +1 -0
- package/dist/is-object-type.js +2 -1
- package/dist/is-object-type.js.map +1 -0
- package/dist/is-plain-object.cjs +1 -1
- package/dist/is-plain-object.d.cts +33 -3
- package/dist/is-plain-object.d.cts.map +1 -0
- package/dist/is-plain-object.d.ts +33 -3
- package/dist/is-plain-object.d.ts.map +1 -0
- package/dist/is-plain-object.js +2 -1
- package/dist/is-plain-object.js.map +1 -0
- package/dist/is-promise.cjs +1 -1
- package/dist/is-promise.d.cts +18 -2
- package/dist/is-promise.d.cts.map +1 -0
- package/dist/is-promise.d.ts +18 -2
- package/dist/is-promise.d.ts.map +1 -0
- package/dist/is-promise.js +2 -1
- package/dist/is-promise.js.map +1 -0
- package/dist/is-shallow-equal.cjs +1 -1
- package/dist/is-shallow-equal.d.cts +71 -2
- package/dist/is-shallow-equal.d.cts.map +1 -0
- package/dist/is-shallow-equal.d.ts +71 -2
- package/dist/is-shallow-equal.d.ts.map +1 -0
- package/dist/is-shallow-equal.js +2 -1
- package/dist/is-shallow-equal.js.map +1 -0
- package/dist/is-strict-equal.cjs +1 -1
- package/dist/is-strict-equal.d.cts +67 -2
- package/dist/is-strict-equal.d.cts.map +1 -0
- package/dist/is-strict-equal.d.ts +67 -2
- package/dist/is-strict-equal.d.ts.map +1 -0
- package/dist/is-strict-equal.js +2 -1
- package/dist/is-strict-equal.js.map +1 -0
- package/dist/is-string.cjs +1 -1
- package/dist/is-string.d.cts +20 -3
- package/dist/is-string.d.cts.map +1 -0
- package/dist/is-string.d.ts +20 -3
- package/dist/is-string.d.ts.map +1 -0
- package/dist/is-string.js +2 -1
- package/dist/is-string.js.map +1 -0
- package/dist/is-symbol.cjs +1 -1
- package/dist/is-symbol.d.cts +20 -3
- package/dist/is-symbol.d.cts.map +1 -0
- package/dist/is-symbol.d.ts +20 -3
- package/dist/is-symbol.d.ts.map +1 -0
- package/dist/is-symbol.js +2 -1
- package/dist/is-symbol.js.map +1 -0
- package/dist/is-truthy.cjs +1 -1
- package/dist/is-truthy.d.cts +21 -2
- package/dist/is-truthy.d.cts.map +1 -0
- package/dist/is-truthy.d.ts +21 -2
- package/dist/is-truthy.d.ts.map +1 -0
- package/dist/is-truthy.js +2 -1
- package/dist/is-truthy.js.map +1 -0
- package/dist/is-union-Bu19sEkP.d.ts +8 -0
- package/dist/is-union-Bu19sEkP.d.ts.map +1 -0
- package/dist/is-union-Dp9mCo1b.d.cts +8 -0
- package/dist/is-union-Dp9mCo1b.d.cts.map +1 -0
- package/dist/iterable-container-BdjPuIjL.d.ts +17 -0
- package/dist/iterable-container-BdjPuIjL.d.ts.map +1 -0
- package/dist/iterable-container-OFsaw8WL.d.cts +17 -0
- package/dist/iterable-container-OFsaw8WL.d.cts.map +1 -0
- package/dist/join.cjs +1 -1
- package/dist/join.d.cts +46 -2
- package/dist/join.d.cts.map +1 -0
- package/dist/join.d.ts +46 -2
- package/dist/join.d.ts.map +1 -0
- package/dist/join.js +2 -1
- package/dist/join.js.map +1 -0
- package/dist/key-codes.cjs +1 -1
- package/dist/key-codes.d.cts +29 -2
- package/dist/key-codes.d.cts.map +1 -0
- package/dist/key-codes.d.ts +29 -2
- package/dist/key-codes.d.ts.map +1 -0
- package/dist/key-codes.js +2 -1
- package/dist/key-codes.js.map +1 -0
- package/dist/keys.cjs +1 -1
- package/dist/keys.d.cts +38 -5
- package/dist/keys.d.cts.map +1 -0
- package/dist/keys.d.ts +38 -5
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +2 -1
- package/dist/keys.js.map +1 -0
- package/dist/last.cjs +1 -1
- package/dist/last.d.cts +37 -3
- package/dist/last.d.cts.map +1 -0
- package/dist/last.d.ts +37 -3
- package/dist/last.d.ts.map +1 -0
- package/dist/last.js +2 -1
- package/dist/last.js.map +1 -0
- package/dist/lazy-data-last-impl-D4kLybyP.cjs +1 -0
- package/dist/lazy-data-last-impl-DW5TXWv8.js +2 -0
- package/dist/lazy-data-last-impl-DW5TXWv8.js.map +1 -0
- package/dist/length.cjs +1 -1
- package/dist/length.d.cts +28 -2
- package/dist/length.d.cts.map +1 -0
- package/dist/length.d.ts +28 -2
- package/dist/length.d.ts.map +1 -0
- package/dist/length.js +2 -1
- package/dist/length.js.map +1 -0
- package/dist/magic-string.es-BY9a6RR2.js +15 -0
- package/dist/magic-string.es-BY9a6RR2.js.map +1 -0
- package/dist/magic-string.es-CGYIWauW.cjs +15 -0
- package/dist/map-keys.cjs +1 -1
- package/dist/map-keys.d.cts +34 -7
- package/dist/map-keys.d.cts.map +1 -0
- package/dist/map-keys.d.ts +34 -7
- package/dist/map-keys.d.ts.map +1 -0
- package/dist/map-keys.js +2 -1
- package/dist/map-keys.js.map +1 -0
- package/dist/map-to-obj.cjs +1 -1
- package/dist/map-to-obj.d.cts +68 -2
- package/dist/map-to-obj.d.cts.map +1 -0
- package/dist/map-to-obj.d.ts +68 -2
- package/dist/map-to-obj.d.ts.map +1 -0
- package/dist/map-to-obj.js +2 -1
- package/dist/map-to-obj.js.map +1 -0
- package/dist/map-values.cjs +1 -1
- package/dist/map-values.d.cts +42 -5
- package/dist/map-values.d.cts.map +1 -0
- package/dist/map-values.d.ts +42 -5
- package/dist/map-values.d.ts.map +1 -0
- package/dist/map-values.js +2 -1
- package/dist/map-values.js.map +1 -0
- package/dist/map-with-feedback.cjs +1 -1
- package/dist/map-with-feedback.d.cts +54 -4
- package/dist/map-with-feedback.d.cts.map +1 -0
- package/dist/map-with-feedback.d.ts +54 -4
- package/dist/map-with-feedback.d.ts.map +1 -0
- package/dist/map-with-feedback.js +2 -1
- package/dist/map-with-feedback.js.map +1 -0
- package/dist/map.cjs +1 -1
- package/dist/map.d.cts +47 -4
- package/dist/map.d.cts.map +1 -0
- package/dist/map.d.ts +47 -4
- package/dist/map.d.ts.map +1 -0
- package/dist/map.js +2 -1
- package/dist/map.js.map +1 -0
- package/dist/mapped-LCblUtt3.d.ts +7 -0
- package/dist/mapped-LCblUtt3.d.ts.map +1 -0
- package/dist/mapped-m3FRlUOA.d.cts +7 -0
- package/dist/mapped-m3FRlUOA.d.cts.map +1 -0
- package/dist/mean-by.cjs +1 -1
- package/dist/mean-by.d.cts +35 -2
- package/dist/mean-by.d.cts.map +1 -0
- package/dist/mean-by.d.ts +35 -2
- package/dist/mean-by.d.ts.map +1 -0
- package/dist/mean-by.js +2 -1
- package/dist/mean-by.js.map +1 -0
- package/dist/merge-all-B9JBhVzy.d.ts +42 -0
- package/dist/merge-all-B9JBhVzy.d.ts.map +1 -0
- package/dist/merge-all-CW8DGAy8.d.cts +42 -0
- package/dist/merge-all-CW8DGAy8.d.cts.map +1 -0
- package/dist/merge-all.cjs +1 -1
- package/dist/merge-all.d.cts +1 -5
- package/dist/merge-all.d.ts +1 -5
- package/dist/merge-all.js +2 -1
- package/dist/merge-all.js.map +1 -0
- package/dist/merge-deep.cjs +1 -1
- package/dist/merge-deep.d.cts +37 -2
- package/dist/merge-deep.d.cts.map +1 -0
- package/dist/merge-deep.d.ts +37 -2
- package/dist/merge-deep.d.ts.map +1 -0
- package/dist/merge-deep.js +2 -1
- package/dist/merge-deep.js.map +1 -0
- package/dist/merge.cjs +1 -1
- package/dist/merge.d.cts +57 -2
- package/dist/merge.d.cts.map +1 -0
- package/dist/merge.d.ts +57 -2
- package/dist/merge.d.ts.map +1 -0
- package/dist/merge.js +2 -1
- package/dist/merge.js.map +1 -0
- package/dist/multiply.cjs +1 -1
- package/dist/multiply.d.cts +33 -2
- package/dist/multiply.d.cts.map +1 -0
- package/dist/multiply.d.ts +33 -2
- package/dist/multiply.d.ts.map +1 -0
- package/dist/multiply.js +2 -1
- package/dist/multiply.js.map +1 -0
- package/dist/n-tuple-Bu1e7UH_.d.cts +12 -0
- package/dist/n-tuple-Bu1e7UH_.d.cts.map +1 -0
- package/dist/n-tuple-DoE0z7Kl.d.ts +12 -0
- package/dist/n-tuple-DoE0z7Kl.d.ts.map +1 -0
- package/dist/narrowed-to-Yf5qTOcD.d.cts +15 -0
- package/dist/narrowed-to-Yf5qTOcD.d.cts.map +1 -0
- package/dist/narrowed-to-j75i8Rl2.d.ts +15 -0
- package/dist/narrowed-to-j75i8Rl2.d.ts.map +1 -0
- package/dist/no-infer-BIHbaQcD.d.ts +5 -0
- package/dist/no-infer-BIHbaQcD.d.ts.map +1 -0
- package/dist/no-infer-BVbyldno.d.cts +5 -0
- package/dist/no-infer-BVbyldno.d.cts.map +1 -0
- package/dist/non-empty-array-CFG7wGD-.d.cts +5 -0
- package/dist/non-empty-array-CFG7wGD-.d.cts.map +1 -0
- package/dist/non-empty-array-DXkY7ynY.d.ts +5 -0
- package/dist/non-empty-array-DXkY7ynY.d.ts.map +1 -0
- package/dist/nth-by-Bby4vIbZ.cjs +1 -0
- package/dist/nth-by-Bs6FNGL-.js +2 -0
- package/dist/nth-by-Bs6FNGL-.js.map +1 -0
- package/dist/nth-by.cjs +1 -1
- package/dist/nth-by.d.cts +42 -5
- package/dist/nth-by.d.cts.map +1 -0
- package/dist/nth-by.d.ts +42 -5
- package/dist/nth-by.d.ts.map +1 -0
- package/dist/nth-by.js +1 -1
- package/dist/obj-of.cjs +1 -1
- package/dist/obj-of.d.cts +27 -2
- package/dist/obj-of.d.cts.map +1 -0
- package/dist/obj-of.d.ts +27 -2
- package/dist/obj-of.d.ts.map +1 -0
- package/dist/obj-of.js +2 -1
- package/dist/obj-of.js.map +1 -0
- package/dist/omit-by.cjs +1 -1
- package/dist/omit-by.d.cts +52 -6
- package/dist/omit-by.d.cts.map +1 -0
- package/dist/omit-by.d.ts +52 -6
- package/dist/omit-by.d.ts.map +1 -0
- package/dist/omit-by.js +2 -1
- package/dist/omit-by.js.map +1 -0
- package/dist/omit.cjs +1 -1
- package/dist/omit.d.cts +29 -2
- package/dist/omit.d.cts.map +1 -0
- package/dist/omit.d.ts +29 -2
- package/dist/omit.d.ts.map +1 -0
- package/dist/omit.js +2 -1
- package/dist/omit.js.map +1 -0
- package/dist/once.cjs +1 -1
- package/dist/once.d.cts +17 -2
- package/dist/once.d.cts.map +1 -0
- package/dist/once.d.ts +17 -2
- package/dist/once.d.ts.map +1 -0
- package/dist/once.js +2 -1
- package/dist/once.js.map +1 -0
- package/dist/only.cjs +1 -1
- package/dist/only.d.cts +34 -3
- package/dist/only.d.cts.map +1 -0
- package/dist/only.d.ts +34 -3
- package/dist/only.d.ts.map +1 -0
- package/dist/only.js +2 -1
- package/dist/only.js.map +1 -0
- package/dist/partial-array-CeoXpbZU.d.ts +12 -0
- package/dist/partial-array-CeoXpbZU.d.ts.map +1 -0
- package/dist/partial-array-CoV_xxyQ.d.cts +12 -0
- package/dist/partial-array-CoV_xxyQ.d.cts.map +1 -0
- package/dist/partition.cjs +1 -1
- package/dist/partition.d.cts +51 -2
- package/dist/partition.d.cts.map +1 -0
- package/dist/partition.d.ts +51 -2
- package/dist/partition.d.ts.map +1 -0
- package/dist/partition.js +2 -1
- package/dist/partition.js.map +1 -0
- package/dist/path-or.cjs +1 -1
- package/dist/path-or.d.cts +87 -2
- package/dist/path-or.d.cts.map +1 -0
- package/dist/path-or.d.ts +87 -2
- package/dist/path-or.d.ts.map +1 -0
- package/dist/path-or.js +2 -1
- package/dist/path-or.js.map +1 -0
- package/dist/perkakas-type-error-BERl_sWR.d.cts +19 -0
- package/dist/perkakas-type-error-BERl_sWR.d.cts.map +1 -0
- package/dist/perkakas-type-error-DmmsEmEF.d.ts +19 -0
- package/dist/perkakas-type-error-DmmsEmEF.d.ts.map +1 -0
- package/dist/pick-by.cjs +1 -1
- package/dist/pick-by.d.cts +68 -6
- package/dist/pick-by.d.cts.map +1 -0
- package/dist/pick-by.d.ts +68 -6
- package/dist/pick-by.d.ts.map +1 -0
- package/dist/pick-by.js +2 -1
- package/dist/pick-by.js.map +1 -0
- package/dist/pick.cjs +1 -1
- package/dist/pick.d.cts +66 -7
- package/dist/pick.d.cts.map +1 -0
- package/dist/pick.d.ts +66 -7
- package/dist/pick.d.ts.map +1 -0
- package/dist/pick.js +2 -1
- package/dist/pick.js.map +1 -0
- package/dist/pipe-BGazHnZ_.js +2 -0
- package/dist/pipe-BGazHnZ_.js.map +1 -0
- package/dist/pipe-CB7Lufqv.cjs +1 -0
- package/dist/pipe.cjs +1 -1
- package/dist/pipe.d.cts +34 -2
- package/dist/pipe.d.cts.map +1 -0
- package/dist/pipe.d.ts +34 -2
- package/dist/pipe.d.ts.map +1 -0
- package/dist/pipe.js +1 -1
- package/dist/piped.cjs +1 -1
- package/dist/piped.d.cts +31 -2
- package/dist/piped.d.cts.map +1 -0
- package/dist/piped.d.ts +31 -2
- package/dist/piped.d.ts.map +1 -0
- package/dist/piped.js +2 -1
- package/dist/piped.js.map +1 -0
- package/dist/product.cjs +1 -1
- package/dist/product.d.cts +52 -3
- package/dist/product.d.cts.map +1 -0
- package/dist/product.d.ts +52 -3
- package/dist/product.d.ts.map +1 -0
- package/dist/product.js +2 -1
- package/dist/product.js.map +1 -0
- package/dist/prop-C3rYih5m.d.cts +86 -0
- package/dist/prop-C3rYih5m.d.cts.map +1 -0
- package/dist/prop-DulcbWGG.d.ts +86 -0
- package/dist/prop-DulcbWGG.d.ts.map +1 -0
- package/dist/prop.cjs +1 -1
- package/dist/prop.d.cts +1 -6
- package/dist/prop.d.ts +1 -6
- package/dist/prop.js +2 -1
- package/dist/prop.js.map +1 -0
- package/dist/pull-object.cjs +1 -1
- package/dist/pull-object.d.cts +70 -5
- package/dist/pull-object.d.cts.map +1 -0
- package/dist/pull-object.d.ts +70 -5
- package/dist/pull-object.d.ts.map +1 -0
- package/dist/pull-object.js +2 -1
- package/dist/pull-object.js.map +1 -0
- package/dist/random-integer.cjs +1 -1
- package/dist/random-integer.d.cts +23 -3
- package/dist/random-integer.d.cts.map +1 -0
- package/dist/random-integer.d.ts +23 -3
- package/dist/random-integer.d.ts.map +1 -0
- package/dist/random-integer.js +2 -1
- package/dist/random-integer.js.map +1 -0
- package/dist/random-string.cjs +1 -1
- package/dist/random-string.d.cts +29 -2
- package/dist/random-string.d.cts.map +1 -0
- package/dist/random-string.d.ts +29 -2
- package/dist/random-string.d.ts.map +1 -0
- package/dist/random-string.js +2 -1
- package/dist/random-string.js.map +1 -0
- package/dist/range.cjs +1 -1
- package/dist/range.d.cts +27 -2
- package/dist/range.d.cts.map +1 -0
- package/dist/range.d.ts +27 -2
- package/dist/range.d.ts.map +1 -0
- package/dist/range.js +2 -1
- package/dist/range.js.map +1 -0
- package/dist/rank-by.cjs +1 -1
- package/dist/rank-by.d.cts +45 -4
- package/dist/rank-by.d.cts.map +1 -0
- package/dist/rank-by.d.ts +45 -4
- package/dist/rank-by.d.ts.map +1 -0
- package/dist/rank-by.js +2 -1
- package/dist/rank-by.js.map +1 -0
- package/dist/reduce.cjs +1 -1
- package/dist/reduce.d.cts +53 -2
- package/dist/reduce.d.cts.map +1 -0
- package/dist/reduce.d.ts +53 -2
- package/dist/reduce.d.ts.map +1 -0
- package/dist/reduce.js +2 -1
- package/dist/reduce.js.map +1 -0
- package/dist/reordered-array-B2klHneX.d.ts +7 -0
- package/dist/reordered-array-B2klHneX.d.ts.map +1 -0
- package/dist/reordered-array-BsUBOnYh.d.cts +7 -0
- package/dist/reordered-array-BsUBOnYh.d.cts.map +1 -0
- package/dist/reverse.cjs +1 -1
- package/dist/reverse.d.cts +29 -2
- package/dist/reverse.d.cts.map +1 -0
- package/dist/reverse.d.ts +29 -2
- package/dist/reverse.d.ts.map +1 -0
- package/dist/reverse.js +2 -1
- package/dist/reverse.js.map +1 -0
- package/dist/round.cjs +1 -1
- package/dist/round.d.cts +39 -2
- package/dist/round.d.cts.map +1 -0
- package/dist/round.d.ts +39 -2
- package/dist/round.d.ts.map +1 -0
- package/dist/round.js +2 -1
- package/dist/round.js.map +1 -0
- package/dist/sample.cjs +1 -1
- package/dist/sample.d.cts +69 -8
- package/dist/sample.d.cts.map +1 -0
- package/dist/sample.d.ts +69 -8
- package/dist/sample.d.ts.map +1 -0
- package/dist/sample.js +2 -1
- package/dist/sample.js.map +1 -0
- package/dist/set-path.cjs +1 -1
- package/dist/set-path.d.cts +47 -3
- package/dist/set-path.d.cts.map +1 -0
- package/dist/set-path.d.ts +47 -3
- package/dist/set-path.d.ts.map +1 -0
- package/dist/set-path.js +2 -1
- package/dist/set-path.js.map +1 -0
- package/dist/set.cjs +1 -1
- package/dist/set.d.cts +40 -4
- package/dist/set.d.cts.map +1 -0
- package/dist/set.d.ts +40 -4
- package/dist/set.d.ts.map +1 -0
- package/dist/set.js +2 -1
- package/dist/set.js.map +1 -0
- package/dist/shuffle.cjs +1 -1
- package/dist/shuffle.d.cts +31 -4
- package/dist/shuffle.d.cts.map +1 -0
- package/dist/shuffle.d.ts +31 -4
- package/dist/shuffle.d.ts.map +1 -0
- package/dist/shuffle.js +2 -1
- package/dist/shuffle.js.map +1 -0
- package/dist/sleep.cjs +1 -1
- package/dist/sleep.d.cts +16 -2
- package/dist/sleep.d.cts.map +1 -0
- package/dist/sleep.d.ts +16 -2
- package/dist/sleep.d.ts.map +1 -0
- package/dist/sleep.js +2 -1
- package/dist/sleep.js.map +1 -0
- package/dist/slice-string.cjs +1 -1
- package/dist/slice-string.d.cts +41 -2
- package/dist/slice-string.d.cts.map +1 -0
- package/dist/slice-string.d.ts +41 -2
- package/dist/slice-string.d.ts.map +1 -0
- package/dist/slice-string.js +2 -1
- package/dist/slice-string.js.map +1 -0
- package/dist/slugify.cjs +1 -1
- package/dist/slugify.d.cts +15 -2
- package/dist/slugify.d.cts.map +1 -0
- package/dist/slugify.d.ts +15 -2
- package/dist/slugify.d.ts.map +1 -0
- package/dist/slugify.js +2 -1
- package/dist/slugify.js.map +1 -0
- package/dist/sort-by.cjs +1 -1
- package/dist/sort-by.d.cts +88 -6
- package/dist/sort-by.d.cts.map +1 -0
- package/dist/sort-by.d.ts +88 -6
- package/dist/sort-by.d.ts.map +1 -0
- package/dist/sort-by.js +2 -1
- package/dist/sort-by.js.map +1 -0
- package/dist/sort.cjs +1 -1
- package/dist/sort.d.cts +39 -4
- package/dist/sort.d.cts.map +1 -0
- package/dist/sort.d.ts +39 -4
- package/dist/sort.d.ts.map +1 -0
- package/dist/sort.js +2 -1
- package/dist/sort.js.map +1 -0
- package/dist/sorted-index-by.cjs +1 -1
- package/dist/sorted-index-by.d.cts +70 -2
- package/dist/sorted-index-by.d.cts.map +1 -0
- package/dist/sorted-index-by.d.ts +70 -2
- package/dist/sorted-index-by.d.ts.map +1 -0
- package/dist/sorted-index-by.js +2 -1
- package/dist/sorted-index-by.js.map +1 -0
- package/dist/sorted-index-with.cjs +1 -1
- package/dist/sorted-index-with.d.cts +72 -2
- package/dist/sorted-index-with.d.cts.map +1 -0
- package/dist/sorted-index-with.d.ts +72 -2
- package/dist/sorted-index-with.d.ts.map +1 -0
- package/dist/sorted-index-with.js +2 -1
- package/dist/sorted-index-with.js.map +1 -0
- package/dist/sorted-index.cjs +1 -1
- package/dist/sorted-index.d.cts +45 -2
- package/dist/sorted-index.d.cts.map +1 -0
- package/dist/sorted-index.d.ts +45 -2
- package/dist/sorted-index.d.ts.map +1 -0
- package/dist/sorted-index.js +2 -1
- package/dist/sorted-index.js.map +1 -0
- package/dist/sorted-last-index-by.cjs +1 -1
- package/dist/sorted-last-index-by.d.cts +72 -2
- package/dist/sorted-last-index-by.d.cts.map +1 -0
- package/dist/sorted-last-index-by.d.ts +72 -2
- package/dist/sorted-last-index-by.d.ts.map +1 -0
- package/dist/sorted-last-index-by.js +2 -1
- package/dist/sorted-last-index-by.js.map +1 -0
- package/dist/sorted-last-index.cjs +1 -1
- package/dist/sorted-last-index.d.cts +45 -2
- package/dist/sorted-last-index.d.cts.map +1 -0
- package/dist/sorted-last-index.d.ts +45 -2
- package/dist/sorted-last-index.d.ts.map +1 -0
- package/dist/sorted-last-index.js +2 -1
- package/dist/sorted-last-index.js.map +1 -0
- package/dist/splice.cjs +1 -1
- package/dist/splice.d.cts +35 -2
- package/dist/splice.d.cts.map +1 -0
- package/dist/splice.d.ts +35 -2
- package/dist/splice.d.ts.map +1 -0
- package/dist/splice.js +2 -1
- package/dist/splice.js.map +1 -0
- package/dist/split-at.cjs +1 -1
- package/dist/split-at.d.cts +31 -2
- package/dist/split-at.d.cts.map +1 -0
- package/dist/split-at.d.ts +31 -2
- package/dist/split-at.d.ts.map +1 -0
- package/dist/split-at.js +2 -1
- package/dist/split-at.js.map +1 -0
- package/dist/split-when.cjs +1 -1
- package/dist/split-when.d.cts +29 -2
- package/dist/split-when.d.cts.map +1 -0
- package/dist/split-when.d.ts +29 -2
- package/dist/split-when.d.ts.map +1 -0
- package/dist/split-when.js +2 -1
- package/dist/split-when.js.map +1 -0
- package/dist/split.cjs +1 -1
- package/dist/split.d.cts +62 -2
- package/dist/split.d.cts.map +1 -0
- package/dist/split.d.ts +62 -2
- package/dist/split.d.ts.map +1 -0
- package/dist/split.js +2 -1
- package/dist/split.js.map +1 -0
- package/dist/string-to-path.cjs +1 -1
- package/dist/string-to-path.d.cts +39 -2
- package/dist/string-to-path.d.cts.map +1 -0
- package/dist/string-to-path.d.ts +39 -2
- package/dist/string-to-path.d.ts.map +1 -0
- package/dist/string-to-path.js +2 -1
- package/dist/string-to-path.js.map +1 -0
- package/dist/subtract.cjs +1 -1
- package/dist/subtract.d.cts +35 -2
- package/dist/subtract.d.cts.map +1 -0
- package/dist/subtract.d.ts +35 -2
- package/dist/subtract.d.ts.map +1 -0
- package/dist/subtract.js +2 -1
- package/dist/subtract.js.map +1 -0
- package/dist/sum-by.cjs +1 -1
- package/dist/sum-by.d.cts +57 -3
- package/dist/sum-by.d.cts.map +1 -0
- package/dist/sum-by.d.ts +57 -3
- package/dist/sum-by.d.ts.map +1 -0
- package/dist/sum-by.js +2 -1
- package/dist/sum-by.js.map +1 -0
- package/dist/sum.cjs +1 -1
- package/dist/sum.d.cts +50 -3
- package/dist/sum.d.cts.map +1 -0
- package/dist/sum.d.ts +50 -3
- package/dist/sum.d.ts.map +1 -0
- package/dist/sum.js +2 -1
- package/dist/sum.js.map +1 -0
- package/dist/swap-in-place-BHkB_mvV.cjs +1 -0
- package/dist/swap-in-place-COm7qHj4.js +2 -0
- package/dist/swap-in-place-COm7qHj4.js.map +1 -0
- package/dist/swap-indices.cjs +1 -1
- package/dist/swap-indices.d.cts +61 -3
- package/dist/swap-indices.d.cts.map +1 -0
- package/dist/swap-indices.d.ts +61 -3
- package/dist/swap-indices.d.ts.map +1 -0
- package/dist/swap-indices.js +2 -1
- package/dist/swap-indices.js.map +1 -0
- package/dist/swap-props.cjs +1 -1
- package/dist/swap-props.d.cts +34 -2
- package/dist/swap-props.d.cts.map +1 -0
- package/dist/swap-props.d.ts +34 -2
- package/dist/swap-props.d.ts.map +1 -0
- package/dist/swap-props.js +2 -1
- package/dist/swap-props.js.map +1 -0
- package/dist/take-first-by.cjs +1 -1
- package/dist/take-first-by.d.cts +41 -4
- package/dist/take-first-by.d.cts.map +1 -0
- package/dist/take-first-by.d.ts +41 -4
- package/dist/take-first-by.d.ts.map +1 -0
- package/dist/take-first-by.js +2 -1
- package/dist/take-first-by.js.map +1 -0
- package/dist/take-last-while.cjs +1 -1
- package/dist/take-last-while.d.cts +36 -3
- package/dist/take-last-while.d.cts.map +1 -0
- package/dist/take-last-while.d.ts +36 -3
- package/dist/take-last-while.d.ts.map +1 -0
- package/dist/take-last-while.js +2 -1
- package/dist/take-last-while.js.map +1 -0
- package/dist/take-last.cjs +1 -1
- package/dist/take-last.d.cts +32 -3
- package/dist/take-last.d.cts.map +1 -0
- package/dist/take-last.d.ts +32 -3
- package/dist/take-last.d.ts.map +1 -0
- package/dist/take-last.js +2 -1
- package/dist/take-last.js.map +1 -0
- package/dist/take-while.cjs +1 -1
- package/dist/take-while.d.cts +34 -3
- package/dist/take-while.d.cts.map +1 -0
- package/dist/take-while.d.ts +34 -3
- package/dist/take-while.d.ts.map +1 -0
- package/dist/take-while.js +2 -1
- package/dist/take-while.js.map +1 -0
- package/dist/take.cjs +1 -1
- package/dist/take.d.cts +34 -3
- package/dist/take.d.cts.map +1 -0
- package/dist/take.d.ts +34 -3
- package/dist/take.d.ts.map +1 -0
- package/dist/take.js +2 -1
- package/dist/take.js.map +1 -0
- package/dist/tap.cjs +1 -1
- package/dist/tap.d.cts +42 -2
- package/dist/tap.d.cts.map +1 -0
- package/dist/tap.d.ts +42 -2
- package/dist/tap.d.ts.map +1 -0
- package/dist/tap.js +2 -1
- package/dist/tap.js.map +1 -0
- package/dist/times.cjs +1 -1
- package/dist/times.d.cts +48 -2
- package/dist/times.d.cts.map +1 -0
- package/dist/times.d.ts +48 -2
- package/dist/times.d.ts.map +1 -0
- package/dist/times.js +2 -1
- package/dist/times.js.map +1 -0
- package/dist/to-camel-case.cjs +1 -1
- package/dist/to-camel-case.d.cts +32 -3
- package/dist/to-camel-case.d.cts.map +1 -0
- package/dist/to-camel-case.d.ts +32 -3
- package/dist/to-camel-case.d.ts.map +1 -0
- package/dist/to-camel-case.js +2 -1
- package/dist/to-camel-case.js.map +1 -0
- package/dist/to-capital-case.cjs +1 -1
- package/dist/to-capital-case.d.cts +31 -3
- package/dist/to-capital-case.d.cts.map +1 -0
- package/dist/to-capital-case.d.ts +31 -3
- package/dist/to-capital-case.d.ts.map +1 -0
- package/dist/to-capital-case.js +2 -1
- package/dist/to-capital-case.js.map +1 -0
- package/dist/to-constant-case.cjs +1 -1
- package/dist/to-constant-case.d.cts +31 -3
- package/dist/to-constant-case.d.cts.map +1 -0
- package/dist/to-constant-case.d.ts +31 -3
- package/dist/to-constant-case.d.ts.map +1 -0
- package/dist/to-constant-case.js +2 -1
- package/dist/to-constant-case.js.map +1 -0
- package/dist/to-kebab-case.cjs +1 -1
- package/dist/to-kebab-case.d.cts +31 -3
- package/dist/to-kebab-case.d.cts.map +1 -0
- package/dist/to-kebab-case.d.ts +31 -3
- package/dist/to-kebab-case.d.ts.map +1 -0
- package/dist/to-kebab-case.js +2 -1
- package/dist/to-kebab-case.js.map +1 -0
- package/dist/to-no-case.cjs +1 -1
- package/dist/to-no-case.d.cts +31 -3
- package/dist/to-no-case.d.cts.map +1 -0
- package/dist/to-no-case.d.ts +31 -3
- package/dist/to-no-case.d.ts.map +1 -0
- package/dist/to-no-case.js +2 -1
- package/dist/to-no-case.js.map +1 -0
- package/dist/to-pascal-case.cjs +1 -1
- package/dist/to-pascal-case.d.cts +32 -3
- package/dist/to-pascal-case.d.cts.map +1 -0
- package/dist/to-pascal-case.d.ts +32 -3
- package/dist/to-pascal-case.d.ts.map +1 -0
- package/dist/to-pascal-case.js +2 -1
- package/dist/to-pascal-case.js.map +1 -0
- package/dist/to-pascal-snake-case.cjs +1 -1
- package/dist/to-pascal-snake-case.d.cts +31 -3
- package/dist/to-pascal-snake-case.d.cts.map +1 -0
- package/dist/to-pascal-snake-case.d.ts +31 -3
- package/dist/to-pascal-snake-case.d.ts.map +1 -0
- package/dist/to-pascal-snake-case.js +2 -1
- package/dist/to-pascal-snake-case.js.map +1 -0
- package/dist/to-sentence-case.cjs +1 -1
- package/dist/to-sentence-case.d.cts +31 -3
- package/dist/to-sentence-case.d.cts.map +1 -0
- package/dist/to-sentence-case.d.ts +31 -3
- package/dist/to-sentence-case.d.ts.map +1 -0
- package/dist/to-sentence-case.js +2 -1
- package/dist/to-sentence-case.js.map +1 -0
- package/dist/to-single-Chq_hKEk.cjs +1 -0
- package/dist/to-single-vYpRavjM.js +2 -0
- package/dist/to-single-vYpRavjM.js.map +1 -0
- package/dist/to-snake-case.cjs +1 -1
- package/dist/to-snake-case.d.cts +31 -3
- package/dist/to-snake-case.d.cts.map +1 -0
- package/dist/to-snake-case.d.ts +31 -3
- package/dist/to-snake-case.d.ts.map +1 -0
- package/dist/to-snake-case.js +2 -1
- package/dist/to-snake-case.js.map +1 -0
- package/dist/to-string-C6_OnZ6e.d.ts +13 -0
- package/dist/to-string-C6_OnZ6e.d.ts.map +1 -0
- package/dist/to-string-Se4KcQka.d.cts +13 -0
- package/dist/to-string-Se4KcQka.d.cts.map +1 -0
- package/dist/to-train-case.cjs +1 -1
- package/dist/to-train-case.d.cts +31 -3
- package/dist/to-train-case.d.cts.map +1 -0
- package/dist/to-train-case.d.ts +31 -3
- package/dist/to-train-case.d.ts.map +1 -0
- package/dist/to-train-case.js +2 -1
- package/dist/to-train-case.js.map +1 -0
- package/dist/tuple-parts-BJQEORxn.d.cts +89 -0
- package/dist/tuple-parts-BJQEORxn.d.cts.map +1 -0
- package/dist/tuple-parts-Bhbm4jiu.d.ts +89 -0
- package/dist/tuple-parts-Bhbm4jiu.d.ts.map +1 -0
- package/dist/type.helpers.cjs +0 -1
- package/dist/type.helpers.d.cts +5 -2
- package/dist/type.helpers.d.cts.map +1 -0
- package/dist/type.helpers.d.ts +5 -2
- package/dist/type.helpers.d.ts.map +1 -0
- package/dist/type.helpers.js +0 -1
- package/dist/unique-by.cjs +1 -1
- package/dist/unique-by.d.cts +44 -5
- package/dist/unique-by.d.cts.map +1 -0
- package/dist/unique-by.d.ts +44 -5
- package/dist/unique-by.d.ts.map +1 -0
- package/dist/unique-by.js +2 -1
- package/dist/unique-by.js.map +1 -0
- package/dist/unique-with.cjs +1 -1
- package/dist/unique-with.d.cts +46 -5
- package/dist/unique-with.d.cts.map +1 -0
- package/dist/unique-with.d.ts +46 -5
- package/dist/unique-with.d.ts.map +1 -0
- package/dist/unique-with.js +2 -1
- package/dist/unique-with.js.map +1 -0
- package/dist/unique.cjs +1 -1
- package/dist/unique.d.cts +39 -5
- package/dist/unique.d.cts.map +1 -0
- package/dist/unique.d.ts +39 -5
- package/dist/unique.d.ts.map +1 -0
- package/dist/unique.js +2 -1
- package/dist/unique.js.map +1 -0
- package/dist/upsert-prop-P-aJDDII.d.cts +9 -0
- package/dist/upsert-prop-P-aJDDII.d.cts.map +1 -0
- package/dist/upsert-prop-__xTQQ07.d.ts +9 -0
- package/dist/upsert-prop-__xTQQ07.d.ts.map +1 -0
- package/dist/utility-evaluators-BwYLtB8b.js +2 -0
- package/dist/utility-evaluators-BwYLtB8b.js.map +1 -0
- package/dist/utility-evaluators-CAbODbuk.cjs +1 -0
- package/dist/values.cjs +1 -1
- package/dist/values.d.cts +38 -4
- package/dist/values.d.cts.map +1 -0
- package/dist/values.d.ts +38 -4
- package/dist/values.d.ts.map +1 -0
- package/dist/values.js +2 -1
- package/dist/values.js.map +1 -0
- package/dist/with-precision-CWWiMmxZ.js +2 -0
- package/dist/with-precision-CWWiMmxZ.js.map +1 -0
- package/dist/with-precision-dQAYLrgr.cjs +1 -0
- package/dist/zip-with.cjs +1 -1
- package/dist/zip-with.d.cts +50 -3
- package/dist/zip-with.d.cts.map +1 -0
- package/dist/zip-with.d.ts +50 -3
- package/dist/zip-with.d.ts.map +1 -0
- package/dist/zip-with.js +2 -1
- package/dist/zip-with.js.map +1 -0
- package/dist/zip.cjs +1 -1
- package/dist/zip.d.cts +38 -3
- package/dist/zip.d.cts.map +1 -0
- package/dist/zip.d.ts +38 -3
- package/dist/zip.d.ts.map +1 -0
- package/dist/zip.js +2 -1
- package/dist/zip.js.map +1 -0
- package/package.json +7 -9
- package/dist/add-CbtGbPU8.cjs +0 -1
- package/dist/add-D2WnMolJ.d.cts +0 -34
- package/dist/add-D2WnMolJ.d.cts.map +0 -1
- package/dist/add-XyDHfOBw.js +0 -2
- package/dist/add-XyDHfOBw.js.map +0 -1
- package/dist/add-im980AO9.d.ts +0 -34
- package/dist/add-im980AO9.d.ts.map +0 -1
- package/dist/add-prop-BxqZdgPd.cjs +0 -1
- package/dist/add-prop-CMZauInB.d.ts +0 -46
- package/dist/add-prop-CMZauInB.d.ts.map +0 -1
- package/dist/add-prop-CX56m6sR.js +0 -2
- package/dist/add-prop-CX56m6sR.js.map +0 -1
- package/dist/add-prop-tIjpXGRH.d.cts +0 -46
- package/dist/add-prop-tIjpXGRH.d.cts.map +0 -1
- package/dist/all-pass-BCivJ27h.d.cts +0 -37
- package/dist/all-pass-BCivJ27h.d.cts.map +0 -1
- package/dist/all-pass-DXpE2AMI.d.ts +0 -37
- package/dist/all-pass-DXpE2AMI.d.ts.map +0 -1
- package/dist/all-pass-Dm8Dnhq7.cjs +0 -1
- package/dist/all-pass-TOwgGHEo.js +0 -2
- package/dist/all-pass-TOwgGHEo.js.map +0 -1
- package/dist/any-pass-B1tqZ-S8.js +0 -2
- package/dist/any-pass-B1tqZ-S8.js.map +0 -1
- package/dist/any-pass-BUlFAsyd.d.cts +0 -37
- package/dist/any-pass-BUlFAsyd.d.cts.map +0 -1
- package/dist/any-pass-DODvFXfM.d.ts +0 -37
- package/dist/any-pass-DODvFXfM.d.ts.map +0 -1
- package/dist/any-pass-UiZWZkzr.cjs +0 -1
- package/dist/array-required-prefix-BeSNHH4G.d.ts +0 -26
- package/dist/array-required-prefix-BeSNHH4G.d.ts.map +0 -1
- package/dist/array-required-prefix-FSH3Acx8.d.cts +0 -26
- package/dist/array-required-prefix-FSH3Acx8.d.cts.map +0 -1
- package/dist/binary-search-cutoff-index-B3xuP0oe.cjs +0 -1
- package/dist/binary-search-cutoff-index-QhLfC_4-.js +0 -2
- package/dist/binary-search-cutoff-index-QhLfC_4-.js.map +0 -1
- package/dist/bounded-partial-A89bt7Kj.d.cts +0 -17
- package/dist/bounded-partial-A89bt7Kj.d.cts.map +0 -1
- package/dist/bounded-partial-TshEjJC1.d.ts +0 -17
- package/dist/bounded-partial-TshEjJC1.d.ts.map +0 -1
- package/dist/case.transform-0QyAGkjI.js +0 -2
- package/dist/case.transform-0QyAGkjI.js.map +0 -1
- package/dist/case.transform-UvmY1E5L.cjs +0 -1
- package/dist/case.types-C4kGtbSS.d.cts +0 -19
- package/dist/case.types-C4kGtbSS.d.cts.map +0 -1
- package/dist/case.types-DegX_-fY.d.ts +0 -19
- package/dist/case.types-DegX_-fY.d.ts.map +0 -1
- package/dist/ceil--cMT2iUp.js +0 -2
- package/dist/ceil--cMT2iUp.js.map +0 -1
- package/dist/ceil-3wC2QOvT.d.ts +0 -39
- package/dist/ceil-3wC2QOvT.d.ts.map +0 -1
- package/dist/ceil-BfPd1zim.d.cts +0 -39
- package/dist/ceil-BfPd1zim.d.cts.map +0 -1
- package/dist/ceil-CgjlA1iG.cjs +0 -1
- package/dist/chunk-21HuGLAn.d.ts +0 -76
- package/dist/chunk-21HuGLAn.d.ts.map +0 -1
- package/dist/chunk-C__yw06N.d.cts +0 -76
- package/dist/chunk-C__yw06N.d.cts.map +0 -1
- package/dist/chunk-_kldYmb1.cjs +0 -1
- package/dist/chunk-dIPp871Q.js +0 -2
- package/dist/chunk-dIPp871Q.js.map +0 -1
- package/dist/clamp-Cnh0Qg03.cjs +0 -1
- package/dist/clamp-DMX7Ua7I.d.cts +0 -37
- package/dist/clamp-DMX7Ua7I.d.cts.map +0 -1
- package/dist/clamp-V39NgixZ.d.ts +0 -37
- package/dist/clamp-V39NgixZ.d.ts.map +0 -1
- package/dist/clamp-zR5XX002.js +0 -2
- package/dist/clamp-zR5XX002.js.map +0 -1
- package/dist/clamped-integer-subtract-CQL8aT__.d.ts +0 -11
- package/dist/clamped-integer-subtract-CQL8aT__.d.ts.map +0 -1
- package/dist/clamped-integer-subtract-DId0tRjp.d.cts +0 -11
- package/dist/clamped-integer-subtract-DId0tRjp.d.cts.map +0 -1
- package/dist/clone-1QjPrzdD.d.cts +0 -35
- package/dist/clone-1QjPrzdD.d.cts.map +0 -1
- package/dist/clone-BcAGB1C1.js +0 -2
- package/dist/clone-BcAGB1C1.js.map +0 -1
- package/dist/clone-DyRAAJkh.cjs +0 -1
- package/dist/clone-UasIry83.d.ts +0 -35
- package/dist/clone-UasIry83.d.ts.map +0 -1
- package/dist/coerced-array-DyA0Yc12.d.ts +0 -17
- package/dist/coerced-array-DyA0Yc12.d.ts.map +0 -1
- package/dist/coerced-array-kVJtBrMl.d.cts +0 -17
- package/dist/coerced-array-kVJtBrMl.d.cts.map +0 -1
- package/dist/concat-BdgaaV6q.d.cts +0 -41
- package/dist/concat-BdgaaV6q.d.cts.map +0 -1
- package/dist/concat-CVEXmYnw.js +0 -2
- package/dist/concat-CVEXmYnw.js.map +0 -1
- package/dist/concat-Cg3I4d7x.cjs +0 -1
- package/dist/concat-DeyDusex.d.ts +0 -41
- package/dist/concat-DeyDusex.d.ts.map +0 -1
- package/dist/conditional-81kit9Lg.cjs +0 -1
- package/dist/conditional-BivA0O7M.d.cts +0 -221
- package/dist/conditional-BivA0O7M.d.cts.map +0 -1
- package/dist/conditional-ClGfJoeu.js +0 -2
- package/dist/conditional-ClGfJoeu.js.map +0 -1
- package/dist/conditional-DeaF48-8.d.ts +0 -221
- package/dist/conditional-DeaF48-8.d.ts.map +0 -1
- package/dist/constant-BuIJ9GIn.cjs +0 -1
- package/dist/constant-DD3Fj3xH.d.cts +0 -32
- package/dist/constant-DD3Fj3xH.d.cts.map +0 -1
- package/dist/constant-DrpDXHc7.js +0 -2
- package/dist/constant-DrpDXHc7.js.map +0 -1
- package/dist/constant-XCH8hVM0.d.ts +0 -32
- package/dist/constant-XCH8hVM0.d.ts.map +0 -1
- package/dist/count-by-CYv2OHvx.d.cts +0 -42
- package/dist/count-by-CYv2OHvx.d.cts.map +0 -1
- package/dist/count-by-DUtzS9CI.cjs +0 -1
- package/dist/count-by-DZwTr8U_.js +0 -2
- package/dist/count-by-DZwTr8U_.js.map +0 -1
- package/dist/count-by-oQGTg_br.d.ts +0 -42
- package/dist/count-by-oQGTg_br.d.ts.map +0 -1
- package/dist/curry-B-8l-0vq.d.ts +0 -68
- package/dist/curry-B-8l-0vq.d.ts.map +0 -1
- package/dist/curry-BPVIsvo3.cjs +0 -1
- package/dist/curry-CzZjDrpv.js +0 -2
- package/dist/curry-CzZjDrpv.js.map +0 -1
- package/dist/curry-from-lazy-BDH06qZ-.cjs +0 -1
- package/dist/curry-from-lazy-BR-hoRDR.js +0 -2
- package/dist/curry-from-lazy-BR-hoRDR.js.map +0 -1
- package/dist/curry-gLBYaLmk.d.cts +0 -68
- package/dist/curry-gLBYaLmk.d.cts.map +0 -1
- package/dist/curry-order-rules-1zjlAgqa.d.cts +0 -48
- package/dist/curry-order-rules-1zjlAgqa.d.cts.map +0 -1
- package/dist/curry-order-rules-BuA7D1F4.js +0 -2
- package/dist/curry-order-rules-BuA7D1F4.js.map +0 -1
- package/dist/curry-order-rules-Cthu8rj4.d.ts +0 -48
- package/dist/curry-order-rules-Cthu8rj4.d.ts.map +0 -1
- package/dist/curry-order-rules-UcuuWkKd.cjs +0 -1
- package/dist/debounce-6x-eQzOn.cjs +0 -1
- package/dist/debounce-BNkJBFrQ.d.cts +0 -96
- package/dist/debounce-BNkJBFrQ.d.cts.map +0 -1
- package/dist/debounce-BtqBDYXu.d.ts +0 -96
- package/dist/debounce-BtqBDYXu.d.ts.map +0 -1
- package/dist/debounce-C9xIAomT.js +0 -2
- package/dist/debounce-C9xIAomT.js.map +0 -1
- package/dist/deduped-BpPNbB_u.d.cts +0 -23
- package/dist/deduped-BpPNbB_u.d.cts.map +0 -1
- package/dist/deduped-C1IQABjb.d.ts +0 -23
- package/dist/deduped-C1IQABjb.d.ts.map +0 -1
- package/dist/difference-B5WQzd-Z.cjs +0 -1
- package/dist/difference-C1tclXTn.d.cts +0 -37
- package/dist/difference-C1tclXTn.d.cts.map +0 -1
- package/dist/difference-DM8qEnVj.d.ts +0 -37
- package/dist/difference-DM8qEnVj.d.ts.map +0 -1
- package/dist/difference-Dgeqsjn_.js +0 -2
- package/dist/difference-Dgeqsjn_.js.map +0 -1
- package/dist/difference-with-BqLSomQj.d.ts +0 -48
- package/dist/difference-with-BqLSomQj.d.ts.map +0 -1
- package/dist/difference-with-CNN8MVj2.cjs +0 -1
- package/dist/difference-with-CTy1JWpg.d.cts +0 -48
- package/dist/difference-with-CTy1JWpg.d.cts.map +0 -1
- package/dist/difference-with-CiySHDr9.js +0 -2
- package/dist/difference-with-CiySHDr9.js.map +0 -1
- package/dist/dist-BQGZfjDS.js +0 -291
- package/dist/dist-BQGZfjDS.js.map +0 -1
- package/dist/dist-gvJoKj_M.cjs +0 -343
- package/dist/divide-BI9ShWGE.js +0 -2
- package/dist/divide-BI9ShWGE.js.map +0 -1
- package/dist/divide-Bsz0OPIK.d.ts +0 -33
- package/dist/divide-Bsz0OPIK.d.ts.map +0 -1
- package/dist/divide-C8COFm-b.d.cts +0 -33
- package/dist/divide-C8COFm-b.d.cts.map +0 -1
- package/dist/divide-ZFT5ZqJ0.cjs +0 -1
- package/dist/do-nothing-Be29JGDG.js +0 -2
- package/dist/do-nothing-Be29JGDG.js.map +0 -1
- package/dist/do-nothing-BvLrwjB7.d.ts +0 -28
- package/dist/do-nothing-BvLrwjB7.d.ts.map +0 -1
- package/dist/do-nothing-Cc1faYu6.cjs +0 -1
- package/dist/do-nothing-xUCzRm4m.d.cts +0 -28
- package/dist/do-nothing-xUCzRm4m.d.cts.map +0 -1
- package/dist/drop-Bmm5QDJI.d.cts +0 -40
- package/dist/drop-Bmm5QDJI.d.cts.map +0 -1
- package/dist/drop-BvsV-rBc.js +0 -2
- package/dist/drop-BvsV-rBc.js.map +0 -1
- package/dist/drop-C-tVyU4K.cjs +0 -1
- package/dist/drop-DTeHYc-D.d.ts +0 -40
- package/dist/drop-DTeHYc-D.d.ts.map +0 -1
- package/dist/drop-first-by-CSqeAzwS.d.cts +0 -41
- package/dist/drop-first-by-CSqeAzwS.d.cts.map +0 -1
- package/dist/drop-first-by-Cclqg5G_.js +0 -2
- package/dist/drop-first-by-Cclqg5G_.js.map +0 -1
- package/dist/drop-first-by-DJOgP-yE.cjs +0 -1
- package/dist/drop-first-by-dH-OI2It.d.ts +0 -41
- package/dist/drop-first-by-dH-OI2It.d.ts.map +0 -1
- package/dist/drop-last-CX8JXA1b.cjs +0 -1
- package/dist/drop-last-CuCKuM4n.js +0 -2
- package/dist/drop-last-CuCKuM4n.js.map +0 -1
- package/dist/drop-last-oiDr5Owj.d.cts +0 -32
- package/dist/drop-last-oiDr5Owj.d.cts.map +0 -1
- package/dist/drop-last-vbp5oZaK.d.ts +0 -32
- package/dist/drop-last-vbp5oZaK.d.ts.map +0 -1
- package/dist/drop-last-while-BbasDoJh.d.ts +0 -36
- package/dist/drop-last-while-BbasDoJh.d.ts.map +0 -1
- package/dist/drop-last-while-C_hHfAhU.d.cts +0 -36
- package/dist/drop-last-while-C_hHfAhU.d.cts.map +0 -1
- package/dist/drop-last-while-DMzZWC3Y.cjs +0 -1
- package/dist/drop-last-while-StSGe_bf.js +0 -2
- package/dist/drop-last-while-StSGe_bf.js.map +0 -1
- package/dist/drop-while-BCln-hAn.js +0 -2
- package/dist/drop-while-BCln-hAn.js.map +0 -1
- package/dist/drop-while-BGbJsU8z.cjs +0 -1
- package/dist/drop-while-CzvSV4z7.d.ts +0 -36
- package/dist/drop-while-CzvSV4z7.d.ts.map +0 -1
- package/dist/drop-while-T3z_MbtJ.d.cts +0 -36
- package/dist/drop-while-T3z_MbtJ.d.cts.map +0 -1
- package/dist/entries--JP88NsB.d.cts +0 -31
- package/dist/entries--JP88NsB.d.cts.map +0 -1
- package/dist/entries-B1cH8giK.cjs +0 -1
- package/dist/entries-Bsl_GQTu.js +0 -2
- package/dist/entries-Bsl_GQTu.js.map +0 -1
- package/dist/entries-YDG-Mx3J.d.ts +0 -31
- package/dist/entries-YDG-Mx3J.d.ts.map +0 -1
- package/dist/enumerable-string-key-of-D2OpyD6n.d.cts +0 -17
- package/dist/enumerable-string-key-of-D2OpyD6n.d.cts.map +0 -1
- package/dist/enumerable-string-key-of-DKzYIarp.d.ts +0 -17
- package/dist/enumerable-string-key-of-DKzYIarp.d.ts.map +0 -1
- package/dist/enumerable-string-keyed-value-of-Bf_owt8O.d.ts +0 -12
- package/dist/enumerable-string-keyed-value-of-Bf_owt8O.d.ts.map +0 -1
- package/dist/enumerable-string-keyed-value-of-aov5dXss.d.cts +0 -12
- package/dist/enumerable-string-keyed-value-of-aov5dXss.d.cts.map +0 -1
- package/dist/evolve-BReerpSa.js +0 -2
- package/dist/evolve-BReerpSa.js.map +0 -1
- package/dist/evolve-CVvPsVxM.d.ts +0 -101
- package/dist/evolve-CVvPsVxM.d.ts.map +0 -1
- package/dist/evolve-DOxUNkYX.d.cts +0 -101
- package/dist/evolve-DOxUNkYX.d.cts.map +0 -1
- package/dist/evolve-DtSJxJiM.cjs +0 -1
- package/dist/filter-CH_YQe9A.js +0 -2
- package/dist/filter-CH_YQe9A.js.map +0 -1
- package/dist/filter-CkFzFT5Q.d.cts +0 -50
- package/dist/filter-CkFzFT5Q.d.cts.map +0 -1
- package/dist/filter-Dlsk63lj.d.ts +0 -50
- package/dist/filter-Dlsk63lj.d.ts.map +0 -1
- package/dist/filter-DsjklegV.cjs +0 -1
- package/dist/filtered-array-BGEkFwrv.d.ts +0 -13
- package/dist/filtered-array-BGEkFwrv.d.ts.map +0 -1
- package/dist/filtered-array-DQcAXQDD.d.cts +0 -13
- package/dist/filtered-array-DQcAXQDD.d.cts.map +0 -1
- package/dist/find-7ahTlXcE.d.ts +0 -64
- package/dist/find-7ahTlXcE.d.ts.map +0 -1
- package/dist/find-Bc-wGZYR.d.cts +0 -64
- package/dist/find-Bc-wGZYR.d.cts.map +0 -1
- package/dist/find-BuO4hH8Z.cjs +0 -1
- package/dist/find-DR6lM3gh.js +0 -2
- package/dist/find-DR6lM3gh.js.map +0 -1
- package/dist/find-index-BO_tEYVo.d.ts +0 -50
- package/dist/find-index-BO_tEYVo.d.ts.map +0 -1
- package/dist/find-index-CojMwOU1.cjs +0 -1
- package/dist/find-index-CzHRd1Ey.js +0 -2
- package/dist/find-index-CzHRd1Ey.js.map +0 -1
- package/dist/find-index-mVR2WVAJ.d.cts +0 -50
- package/dist/find-index-mVR2WVAJ.d.cts.map +0 -1
- package/dist/find-last-CekkNCww.d.ts +0 -62
- package/dist/find-last-CekkNCww.d.ts.map +0 -1
- package/dist/find-last-DqGxSxQ-.d.cts +0 -62
- package/dist/find-last-DqGxSxQ-.d.cts.map +0 -1
- package/dist/find-last-gCcPzwJP.js +0 -2
- package/dist/find-last-gCcPzwJP.js.map +0 -1
- package/dist/find-last-index-C-wdKiKp.cjs +0 -1
- package/dist/find-last-index-C4il48Y6.d.cts +0 -50
- package/dist/find-last-index-C4il48Y6.d.cts.map +0 -1
- package/dist/find-last-index-DuYnKTXJ.js +0 -2
- package/dist/find-last-index-DuYnKTXJ.js.map +0 -1
- package/dist/find-last-index-XB_3-4xj.d.ts +0 -50
- package/dist/find-last-index-XB_3-4xj.d.ts.map +0 -1
- package/dist/find-last-yrb1RLMJ.cjs +0 -1
- package/dist/first-1NtfTucX.d.ts +0 -40
- package/dist/first-1NtfTucX.d.ts.map +0 -1
- package/dist/first-C3rp67g0.d.cts +0 -40
- package/dist/first-C3rp67g0.d.cts.map +0 -1
- package/dist/first-DDQc8owl.js +0 -2
- package/dist/first-DDQc8owl.js.map +0 -1
- package/dist/first-Dbxt3OEg.cjs +0 -1
- package/dist/first-by-B5IsCexF.js +0 -2
- package/dist/first-by-B5IsCexF.js.map +0 -1
- package/dist/first-by-BzxRBZ5J.cjs +0 -1
- package/dist/first-by-C0qf5rwh.d.ts +0 -60
- package/dist/first-by-C0qf5rwh.d.ts.map +0 -1
- package/dist/first-by-Dm9iyhMz.d.cts +0 -60
- package/dist/first-by-Dm9iyhMz.d.cts.map +0 -1
- package/dist/flat-BayJJsR-.cjs +0 -1
- package/dist/flat-BbBf5kJs.d.ts +0 -53
- package/dist/flat-BbBf5kJs.d.ts.map +0 -1
- package/dist/flat-CJrZ3ALE.d.cts +0 -53
- package/dist/flat-CJrZ3ALE.d.cts.map +0 -1
- package/dist/flat-Cd7pIXar.js +0 -2
- package/dist/flat-Cd7pIXar.js.map +0 -1
- package/dist/flat-map-1WAgW39N.js +0 -2
- package/dist/flat-map-1WAgW39N.js.map +0 -1
- package/dist/flat-map-BI-sJd2B.cjs +0 -1
- package/dist/flat-map-Do5YLueq.d.cts +0 -47
- package/dist/flat-map-Do5YLueq.d.cts.map +0 -1
- package/dist/flat-map-Ok5sZOb2.d.ts +0 -47
- package/dist/flat-map-Ok5sZOb2.d.ts.map +0 -1
- package/dist/floor-Bj0O0YjY.cjs +0 -1
- package/dist/floor-C9us6h14.d.ts +0 -39
- package/dist/floor-C9us6h14.d.ts.map +0 -1
- package/dist/floor-C_xareFD.js +0 -2
- package/dist/floor-C_xareFD.js.map +0 -1
- package/dist/floor-bA1oX38x.d.cts +0 -39
- package/dist/floor-bA1oX38x.d.cts.map +0 -1
- package/dist/for-each-BtbPzNDc.cjs +0 -1
- package/dist/for-each-CYTR5H9O.d.cts +0 -54
- package/dist/for-each-CYTR5H9O.d.cts.map +0 -1
- package/dist/for-each-ClKbAv3A.js +0 -2
- package/dist/for-each-ClKbAv3A.js.map +0 -1
- package/dist/for-each-DIxtfnNY.d.ts +0 -54
- package/dist/for-each-DIxtfnNY.d.ts.map +0 -1
- package/dist/for-each-obj-B6BJwtgs.cjs +0 -1
- package/dist/for-each-obj-CJFU3pj_.js +0 -2
- package/dist/for-each-obj-CJFU3pj_.js.map +0 -1
- package/dist/for-each-obj-DRgFFti8.d.ts +0 -47
- package/dist/for-each-obj-DRgFFti8.d.ts.map +0 -1
- package/dist/for-each-obj-yV90UbvE.d.cts +0 -47
- package/dist/for-each-obj-yV90UbvE.d.cts.map +0 -1
- package/dist/from-entries-BqW53CyR.d.ts +0 -68
- package/dist/from-entries-BqW53CyR.d.ts.map +0 -1
- package/dist/from-entries-CToFI5yO.d.cts +0 -68
- package/dist/from-entries-CToFI5yO.d.cts.map +0 -1
- package/dist/from-entries-D6f6Bd0l.js +0 -2
- package/dist/from-entries-D6f6Bd0l.js.map +0 -1
- package/dist/from-entries-DDkKcu-p.cjs +0 -1
- package/dist/from-keys-BYHfvCLR.d.ts +0 -60
- package/dist/from-keys-BYHfvCLR.d.ts.map +0 -1
- package/dist/from-keys-CI2PJlIM.cjs +0 -1
- package/dist/from-keys-DJe8xU7b.js +0 -2
- package/dist/from-keys-DJe8xU7b.js.map +0 -1
- package/dist/from-keys-Ds1mndVk.d.cts +0 -60
- package/dist/from-keys-Ds1mndVk.d.cts.map +0 -1
- package/dist/funnel-1FhwR-u9.d.ts +0 -155
- package/dist/funnel-1FhwR-u9.d.ts.map +0 -1
- package/dist/funnel-CEbURcmp.js +0 -2
- package/dist/funnel-CEbURcmp.js.map +0 -1
- package/dist/funnel-CL-QFpGk.cjs +0 -1
- package/dist/funnel-DRrT4WPx.d.cts +0 -155
- package/dist/funnel-DRrT4WPx.d.cts.map +0 -1
- package/dist/group-by-057Glgkg.cjs +0 -1
- package/dist/group-by-8exEDbij.js +0 -2
- package/dist/group-by-8exEDbij.js.map +0 -1
- package/dist/group-by-DDS1NPHf.d.cts +0 -69
- package/dist/group-by-DDS1NPHf.d.cts.map +0 -1
- package/dist/group-by-prop--MehVKql.d.ts +0 -89
- package/dist/group-by-prop--MehVKql.d.ts.map +0 -1
- package/dist/group-by-prop-ByeUoeXV.cjs +0 -1
- package/dist/group-by-prop-CcSzCSuu.d.cts +0 -89
- package/dist/group-by-prop-CcSzCSuu.d.cts.map +0 -1
- package/dist/group-by-prop-Gi66eXCp.js +0 -2
- package/dist/group-by-prop-Gi66eXCp.js.map +0 -1
- package/dist/group-by-schxH1QR.d.ts +0 -69
- package/dist/group-by-schxH1QR.d.ts.map +0 -1
- package/dist/has-at-least-6iRvhsST.js +0 -2
- package/dist/has-at-least-6iRvhsST.js.map +0 -1
- package/dist/has-at-least-BbYfXc8L.d.cts +0 -59
- package/dist/has-at-least-BbYfXc8L.d.cts.map +0 -1
- package/dist/has-at-least-D-ahiJB6.cjs +0 -1
- package/dist/has-at-least-D1A8i5J3.d.ts +0 -59
- package/dist/has-at-least-D1A8i5J3.d.ts.map +0 -1
- package/dist/has-sub-object-C7LwzJ88.js +0 -2
- package/dist/has-sub-object-C7LwzJ88.js.map +0 -1
- package/dist/has-sub-object-DPcKaDk7.d.ts +0 -44
- package/dist/has-sub-object-DPcKaDk7.d.ts.map +0 -1
- package/dist/has-sub-object-DjlCWSUi.cjs +0 -1
- package/dist/has-sub-object-oUnH6b7a.d.cts +0 -44
- package/dist/has-sub-object-oUnH6b7a.d.cts.map +0 -1
- package/dist/heap-BrQEhV5W.js +0 -2
- package/dist/heap-BrQEhV5W.js.map +0 -1
- package/dist/heap-CpdbyWAN.cjs +0 -1
- package/dist/human-readable-file-size-BtprvwQj.cjs +0 -1
- package/dist/human-readable-file-size-C2gHuBVX.d.ts +0 -17
- package/dist/human-readable-file-size-C2gHuBVX.d.ts.map +0 -1
- package/dist/human-readable-file-size-CPeHO1Te.js +0 -2
- package/dist/human-readable-file-size-CPeHO1Te.js.map +0 -1
- package/dist/human-readable-file-size-DtwHNZes.d.cts +0 -17
- package/dist/human-readable-file-size-DtwHNZes.d.cts.map +0 -1
- package/dist/identity-BAryUWbs.cjs +0 -1
- package/dist/identity-BwbmOFJX.d.ts +0 -22
- package/dist/identity-BwbmOFJX.d.ts.map +0 -1
- package/dist/identity-CPDLj9Cq.d.cts +0 -22
- package/dist/identity-CPDLj9Cq.d.cts.map +0 -1
- package/dist/identity-D7NWGnLw.js +0 -2
- package/dist/identity-D7NWGnLw.js.map +0 -1
- package/dist/index-by-BJH9P6kU.cjs +0 -1
- package/dist/index-by-CJj3L6wv.d.ts +0 -53
- package/dist/index-by-CJj3L6wv.d.ts.map +0 -1
- package/dist/index-by-CNa3p-Is.d.cts +0 -53
- package/dist/index-by-CNa3p-Is.d.cts.map +0 -1
- package/dist/index-by-adSf-XkW.js +0 -2
- package/dist/index-by-adSf-XkW.js.map +0 -1
- package/dist/int-range-inclusive-BSXuRjMO.d.ts +0 -15
- package/dist/int-range-inclusive-BSXuRjMO.d.ts.map +0 -1
- package/dist/int-range-inclusive-DZG3R2Xl.d.cts +0 -15
- package/dist/int-range-inclusive-DZG3R2Xl.d.cts.map +0 -1
- package/dist/intersection-CaBWENw7.d.cts +0 -37
- package/dist/intersection-CaBWENw7.d.cts.map +0 -1
- package/dist/intersection-Crt0YdjH.js +0 -2
- package/dist/intersection-Crt0YdjH.js.map +0 -1
- package/dist/intersection-DJQJxp9k.d.ts +0 -37
- package/dist/intersection-DJQJxp9k.d.ts.map +0 -1
- package/dist/intersection-pxjmHAj1.cjs +0 -1
- package/dist/intersection-with-COmRebRq.d.ts +0 -54
- package/dist/intersection-with-COmRebRq.d.ts.map +0 -1
- package/dist/intersection-with-DlHJvAUn.js +0 -2
- package/dist/intersection-with-DlHJvAUn.js.map +0 -1
- package/dist/intersection-with-Dre9A1oC.d.cts +0 -54
- package/dist/intersection-with-Dre9A1oC.d.cts.map +0 -1
- package/dist/intersection-with-X3fvRkLr.cjs +0 -1
- package/dist/invert-DMSQXxyb.d.ts +0 -33
- package/dist/invert-DMSQXxyb.d.ts.map +0 -1
- package/dist/invert-DhET3F4O.cjs +0 -1
- package/dist/invert-DsEwwjea.js +0 -2
- package/dist/invert-DsEwwjea.js.map +0 -1
- package/dist/invert-W6EUYMws.d.cts +0 -33
- package/dist/invert-W6EUYMws.d.cts.map +0 -1
- package/dist/is-array-DAz7gkMm.d.cts +0 -21
- package/dist/is-array-DAz7gkMm.d.cts.map +0 -1
- package/dist/is-array-DWFX2okh.js +0 -2
- package/dist/is-array-DWFX2okh.js.map +0 -1
- package/dist/is-array-KzYs6pgh.cjs +0 -1
- package/dist/is-array-prXR4sUC.d.ts +0 -21
- package/dist/is-array-prXR4sUC.d.ts.map +0 -1
- package/dist/is-big-int-Cgisg7DN.cjs +0 -1
- package/dist/is-big-int-CnWK6SmP.js +0 -2
- package/dist/is-big-int-CnWK6SmP.js.map +0 -1
- package/dist/is-big-int-Dow1Lswh.d.cts +0 -22
- package/dist/is-big-int-Dow1Lswh.d.cts.map +0 -1
- package/dist/is-big-int-e123CwI2.d.ts +0 -22
- package/dist/is-big-int-e123CwI2.d.ts.map +0 -1
- package/dist/is-boolean-CZKz4ij3.js +0 -2
- package/dist/is-boolean-CZKz4ij3.js.map +0 -1
- package/dist/is-boolean-DADmOIbu.cjs +0 -1
- package/dist/is-boolean-DWuHhrIe.d.ts +0 -21
- package/dist/is-boolean-DWuHhrIe.d.ts.map +0 -1
- package/dist/is-boolean-NhoGl1jZ.d.cts +0 -21
- package/dist/is-boolean-NhoGl1jZ.d.cts.map +0 -1
- package/dist/is-bounded-record-DCEYRY41.d.ts +0 -34
- package/dist/is-bounded-record-DCEYRY41.d.ts.map +0 -1
- package/dist/is-bounded-record-kpsb1wQA.d.cts +0 -34
- package/dist/is-bounded-record-kpsb1wQA.d.cts.map +0 -1
- package/dist/is-date--gIC--NA.d.cts +0 -17
- package/dist/is-date--gIC--NA.d.cts.map +0 -1
- package/dist/is-date-BgcZ3-ed.d.ts +0 -17
- package/dist/is-date-BgcZ3-ed.d.ts.map +0 -1
- package/dist/is-date-CNebQb0Y.cjs +0 -1
- package/dist/is-date-DKKVtHVY.js +0 -2
- package/dist/is-date-DKKVtHVY.js.map +0 -1
- package/dist/is-deep-equal-B_XN4vCU.d.ts +0 -71
- package/dist/is-deep-equal-B_XN4vCU.d.ts.map +0 -1
- package/dist/is-deep-equal-CtBdM4eT.d.cts +0 -71
- package/dist/is-deep-equal-CtBdM4eT.d.cts.map +0 -1
- package/dist/is-deep-equal-D7dqs3e2.js +0 -2
- package/dist/is-deep-equal-D7dqs3e2.js.map +0 -1
- package/dist/is-deep-equal-DR9xJg8D.cjs +0 -1
- package/dist/is-defined-3Qp6lmQw.d.cts +0 -19
- package/dist/is-defined-3Qp6lmQw.d.cts.map +0 -1
- package/dist/is-defined-BnbPFPUx.cjs +0 -1
- package/dist/is-defined-DESIOXqX.d.ts +0 -19
- package/dist/is-defined-DESIOXqX.d.ts.map +0 -1
- package/dist/is-defined-bdl8LRyD.js +0 -2
- package/dist/is-defined-bdl8LRyD.js.map +0 -1
- package/dist/is-empty-BSkgk0sE.js +0 -2
- package/dist/is-empty-BSkgk0sE.js.map +0 -1
- package/dist/is-empty-CFT22qg4.d.cts +0 -35
- package/dist/is-empty-CFT22qg4.d.cts.map +0 -1
- package/dist/is-empty-qOplNC63.d.ts +0 -35
- package/dist/is-empty-qOplNC63.d.ts.map +0 -1
- package/dist/is-empty-s3B43K38.cjs +0 -1
- package/dist/is-error-7hLjNT9B.d.cts +0 -18
- package/dist/is-error-7hLjNT9B.d.cts.map +0 -1
- package/dist/is-error-C0Qr0E3U.js +0 -2
- package/dist/is-error-C0Qr0E3U.js.map +0 -1
- package/dist/is-error-CjiajQ5C.d.ts +0 -18
- package/dist/is-error-CjiajQ5C.d.ts.map +0 -1
- package/dist/is-error-bQ2IwWHj.cjs +0 -1
- package/dist/is-function-DaoOpTFE.cjs +0 -1
- package/dist/is-function-DpNu_iYN.d.ts +0 -18
- package/dist/is-function-DpNu_iYN.d.ts.map +0 -1
- package/dist/is-function-o1ixw9eS.d.cts +0 -18
- package/dist/is-function-o1ixw9eS.d.cts.map +0 -1
- package/dist/is-function-r9PVEQ1p.js +0 -2
- package/dist/is-function-r9PVEQ1p.js.map +0 -1
- package/dist/is-included-in-B1CoqHXo.cjs +0 -1
- package/dist/is-included-in-BeJz7gyj.js +0 -2
- package/dist/is-included-in-BeJz7gyj.js.map +0 -1
- package/dist/is-included-in-CPnrdiNI.d.ts +0 -110
- package/dist/is-included-in-CPnrdiNI.d.ts.map +0 -1
- package/dist/is-included-in-ciZ0ThQh.d.cts +0 -110
- package/dist/is-included-in-ciZ0ThQh.d.cts.map +0 -1
- package/dist/is-non-null-BaxoBfPo.js +0 -2
- package/dist/is-non-null-BaxoBfPo.js.map +0 -1
- package/dist/is-non-null-DnDE6zDD.cjs +0 -1
- package/dist/is-non-null-DtN0OIEX.d.cts +0 -19
- package/dist/is-non-null-DtN0OIEX.d.cts.map +0 -1
- package/dist/is-non-null-Y3FhczVS.d.ts +0 -19
- package/dist/is-non-null-Y3FhczVS.d.ts.map +0 -1
- package/dist/is-non-nullish-BW-uIWkn.d.cts +0 -20
- package/dist/is-non-nullish-BW-uIWkn.d.cts.map +0 -1
- package/dist/is-non-nullish-C7zZvb8c.d.ts +0 -20
- package/dist/is-non-nullish-C7zZvb8c.d.ts.map +0 -1
- package/dist/is-non-nullish-CgmLeA39.cjs +0 -1
- package/dist/is-non-nullish-CsmQhBq1.js +0 -2
- package/dist/is-non-nullish-CsmQhBq1.js.map +0 -1
- package/dist/is-not-C2o5RmWD.cjs +0 -1
- package/dist/is-not-CBCnEdKF.js +0 -2
- package/dist/is-not-CBCnEdKF.js.map +0 -1
- package/dist/is-not-DYVAMLBs.d.cts +0 -19
- package/dist/is-not-DYVAMLBs.d.cts.map +0 -1
- package/dist/is-not-VNjzMFnp.d.ts +0 -19
- package/dist/is-not-VNjzMFnp.d.ts.map +0 -1
- package/dist/is-nullish-CEDQo8Hn.d.ts +0 -23
- package/dist/is-nullish-CEDQo8Hn.d.ts.map +0 -1
- package/dist/is-nullish-DSaUMZZs.js +0 -2
- package/dist/is-nullish-DSaUMZZs.js.map +0 -1
- package/dist/is-nullish-Dd6vFJuS.cjs +0 -1
- package/dist/is-nullish-Djw8KpQn.d.cts +0 -23
- package/dist/is-nullish-Djw8KpQn.d.cts.map +0 -1
- package/dist/is-number-CTdFYf2z.d.cts +0 -22
- package/dist/is-number-CTdFYf2z.d.cts.map +0 -1
- package/dist/is-number-CZ5Eb2Cm.d.ts +0 -22
- package/dist/is-number-CZ5Eb2Cm.d.ts.map +0 -1
- package/dist/is-number-DRJ5I-tT.js +0 -2
- package/dist/is-number-DRJ5I-tT.js.map +0 -1
- package/dist/is-number-Dh9GBANx.cjs +0 -1
- package/dist/is-object-type-4fvedNiu.d.ts +0 -35
- package/dist/is-object-type-4fvedNiu.d.ts.map +0 -1
- package/dist/is-object-type-8OtwCXgl.cjs +0 -1
- package/dist/is-object-type-BWyBChB5.js +0 -2
- package/dist/is-object-type-BWyBChB5.js.map +0 -1
- package/dist/is-object-type-D5u6pYGC.d.cts +0 -35
- package/dist/is-object-type-D5u6pYGC.d.cts.map +0 -1
- package/dist/is-plain-object-BlyD-E-m.d.ts +0 -33
- package/dist/is-plain-object-BlyD-E-m.d.ts.map +0 -1
- package/dist/is-plain-object-BvL_W8IP.d.cts +0 -33
- package/dist/is-plain-object-BvL_W8IP.d.cts.map +0 -1
- package/dist/is-plain-object-Cnx_x0Ei.js +0 -2
- package/dist/is-plain-object-Cnx_x0Ei.js.map +0 -1
- package/dist/is-plain-object-ufeXFQks.cjs +0 -1
- package/dist/is-promise-BVzvJRjb.cjs +0 -1
- package/dist/is-promise-CcLSSGQE.d.ts +0 -18
- package/dist/is-promise-CcLSSGQE.d.ts.map +0 -1
- package/dist/is-promise-DbVIpcYL.js +0 -2
- package/dist/is-promise-DbVIpcYL.js.map +0 -1
- package/dist/is-promise-VSzOkl6R.d.cts +0 -18
- package/dist/is-promise-VSzOkl6R.d.cts.map +0 -1
- package/dist/is-shallow-equal-BygWppM-.js +0 -2
- package/dist/is-shallow-equal-BygWppM-.js.map +0 -1
- package/dist/is-shallow-equal-CSDwHXxr.cjs +0 -1
- package/dist/is-shallow-equal-DQCnwLNk.d.ts +0 -71
- package/dist/is-shallow-equal-DQCnwLNk.d.ts.map +0 -1
- package/dist/is-shallow-equal-DuVbTG3f.d.cts +0 -71
- package/dist/is-shallow-equal-DuVbTG3f.d.cts.map +0 -1
- package/dist/is-strict-equal-2zT4bfOn.js +0 -2
- package/dist/is-strict-equal-2zT4bfOn.js.map +0 -1
- package/dist/is-strict-equal-5yvkDn8Q.d.ts +0 -67
- package/dist/is-strict-equal-5yvkDn8Q.d.ts.map +0 -1
- package/dist/is-strict-equal-Ct5kAZ5_.d.cts +0 -67
- package/dist/is-strict-equal-Ct5kAZ5_.d.cts.map +0 -1
- package/dist/is-strict-equal-sxCmPWrn.cjs +0 -1
- package/dist/is-string-A-koYYS3.js +0 -2
- package/dist/is-string-A-koYYS3.js.map +0 -1
- package/dist/is-string-DAe_2BJR.d.ts +0 -20
- package/dist/is-string-DAe_2BJR.d.ts.map +0 -1
- package/dist/is-string-DiT0W6sZ.cjs +0 -1
- package/dist/is-string-wfqO0Lag.d.cts +0 -20
- package/dist/is-string-wfqO0Lag.d.cts.map +0 -1
- package/dist/is-symbol-CIR-W22K.d.cts +0 -20
- package/dist/is-symbol-CIR-W22K.d.cts.map +0 -1
- package/dist/is-symbol-CVwn3meF.d.ts +0 -20
- package/dist/is-symbol-CVwn3meF.d.ts.map +0 -1
- package/dist/is-symbol-DFWPkgNV.cjs +0 -1
- package/dist/is-symbol-Vzo5mVUM.js +0 -2
- package/dist/is-symbol-Vzo5mVUM.js.map +0 -1
- package/dist/is-truthy-CJgAM1AZ.cjs +0 -1
- package/dist/is-truthy-CoTXzAuK.d.cts +0 -21
- package/dist/is-truthy-CoTXzAuK.d.cts.map +0 -1
- package/dist/is-truthy-Ctdf-v7U.d.ts +0 -21
- package/dist/is-truthy-Ctdf-v7U.d.ts.map +0 -1
- package/dist/is-truthy-ZWo_GERD.js +0 -2
- package/dist/is-truthy-ZWo_GERD.js.map +0 -1
- package/dist/is-union-BEGCMhOi.d.cts +0 -8
- package/dist/is-union-BEGCMhOi.d.cts.map +0 -1
- package/dist/is-union-CBVcM_uW.d.ts +0 -8
- package/dist/is-union-CBVcM_uW.d.ts.map +0 -1
- package/dist/iterable-container-V5sa0V_H.d.cts +0 -17
- package/dist/iterable-container-V5sa0V_H.d.cts.map +0 -1
- package/dist/iterable-container-wtkYslN_.d.ts +0 -17
- package/dist/iterable-container-wtkYslN_.d.ts.map +0 -1
- package/dist/join-BXqvyin6.cjs +0 -1
- package/dist/join-D0iujfDN.d.cts +0 -46
- package/dist/join-D0iujfDN.d.cts.map +0 -1
- package/dist/join-E8OrzoQ8.d.ts +0 -46
- package/dist/join-E8OrzoQ8.d.ts.map +0 -1
- package/dist/join-nCY8bATt.js +0 -2
- package/dist/join-nCY8bATt.js.map +0 -1
- package/dist/key-codes-3lqUuEMs.d.cts +0 -29
- package/dist/key-codes-3lqUuEMs.d.cts.map +0 -1
- package/dist/key-codes-ChQrhdSG.js +0 -2
- package/dist/key-codes-ChQrhdSG.js.map +0 -1
- package/dist/key-codes-Do_lEvpi.d.ts +0 -29
- package/dist/key-codes-Do_lEvpi.d.ts.map +0 -1
- package/dist/key-codes-DofSlv3v.cjs +0 -1
- package/dist/keys-BOIca6L1.d.cts +0 -38
- package/dist/keys-BOIca6L1.d.cts.map +0 -1
- package/dist/keys-CeZxsvdJ.js +0 -2
- package/dist/keys-CeZxsvdJ.js.map +0 -1
- package/dist/keys-DQwPfo__.cjs +0 -1
- package/dist/keys-fX8vI-uH.d.ts +0 -38
- package/dist/keys-fX8vI-uH.d.ts.map +0 -1
- package/dist/last-BoVh9Bgz.d.ts +0 -37
- package/dist/last-BoVh9Bgz.d.ts.map +0 -1
- package/dist/last-BsvhqAkE.js +0 -2
- package/dist/last-BsvhqAkE.js.map +0 -1
- package/dist/last-Cy_0pMbz.d.cts +0 -37
- package/dist/last-Cy_0pMbz.d.cts.map +0 -1
- package/dist/last-DCnS88X2.cjs +0 -1
- package/dist/lazy-data-last-impl-3PAFkslW.cjs +0 -1
- package/dist/lazy-data-last-impl-7QfM1xXg.js +0 -2
- package/dist/lazy-data-last-impl-7QfM1xXg.js.map +0 -1
- package/dist/length-BKo5HUVo.d.ts +0 -28
- package/dist/length-BKo5HUVo.d.ts.map +0 -1
- package/dist/length-BtKC_n_k.js +0 -2
- package/dist/length-BtKC_n_k.js.map +0 -1
- package/dist/length-Cch-gs0T.cjs +0 -1
- package/dist/length-DQCuaUy9.d.cts +0 -28
- package/dist/length-DQCuaUy9.d.cts.map +0 -1
- package/dist/magic-string.es-Dlejmjth.cjs +0 -15
- package/dist/magic-string.es-bOkeFdlI.js +0 -15
- package/dist/magic-string.es-bOkeFdlI.js.map +0 -1
- package/dist/map-2CmGA3HQ.cjs +0 -1
- package/dist/map-D2kXyrhE.d.ts +0 -47
- package/dist/map-D2kXyrhE.d.ts.map +0 -1
- package/dist/map-hbl-e0fs.d.cts +0 -47
- package/dist/map-hbl-e0fs.d.cts.map +0 -1
- package/dist/map-keys-5JqEYSRn.js +0 -2
- package/dist/map-keys-5JqEYSRn.js.map +0 -1
- package/dist/map-keys-B636MLly.cjs +0 -1
- package/dist/map-keys-BMF5TTCT.d.cts +0 -34
- package/dist/map-keys-BMF5TTCT.d.cts.map +0 -1
- package/dist/map-keys-DTuz2AU9.d.ts +0 -34
- package/dist/map-keys-DTuz2AU9.d.ts.map +0 -1
- package/dist/map-t5kkqRLl.js +0 -2
- package/dist/map-t5kkqRLl.js.map +0 -1
- package/dist/map-to-obj-C3TvW3Zq.d.ts +0 -68
- package/dist/map-to-obj-C3TvW3Zq.d.ts.map +0 -1
- package/dist/map-to-obj-D5MFa8lB.d.cts +0 -68
- package/dist/map-to-obj-D5MFa8lB.d.cts.map +0 -1
- package/dist/map-to-obj-D8GiFVoH.cjs +0 -1
- package/dist/map-to-obj-DSoMzAgs.js +0 -2
- package/dist/map-to-obj-DSoMzAgs.js.map +0 -1
- package/dist/map-values-Bj4nhj3r.js +0 -2
- package/dist/map-values-Bj4nhj3r.js.map +0 -1
- package/dist/map-values-CXFe39-O.d.ts +0 -42
- package/dist/map-values-CXFe39-O.d.ts.map +0 -1
- package/dist/map-values-CbOf72JF.cjs +0 -1
- package/dist/map-values-DgFd9qsH.d.cts +0 -42
- package/dist/map-values-DgFd9qsH.d.cts.map +0 -1
- package/dist/map-with-feedback-Bjyq9-ss.d.cts +0 -54
- package/dist/map-with-feedback-Bjyq9-ss.d.cts.map +0 -1
- package/dist/map-with-feedback-BwvFVDYW.cjs +0 -1
- package/dist/map-with-feedback-DV8xKpjj.d.ts +0 -54
- package/dist/map-with-feedback-DV8xKpjj.d.ts.map +0 -1
- package/dist/map-with-feedback-l2Hn2I08.js +0 -2
- package/dist/map-with-feedback-l2Hn2I08.js.map +0 -1
- package/dist/mapped-CywWFD6s.d.ts +0 -7
- package/dist/mapped-CywWFD6s.d.ts.map +0 -1
- package/dist/mapped-DdfSDQ5D.d.cts +0 -7
- package/dist/mapped-DdfSDQ5D.d.cts.map +0 -1
- package/dist/mean-by-CSUU6ZRi.d.cts +0 -35
- package/dist/mean-by-CSUU6ZRi.d.cts.map +0 -1
- package/dist/mean-by-D6OE3lEe.cjs +0 -1
- package/dist/mean-by-D6OGvOgW.js +0 -2
- package/dist/mean-by-D6OGvOgW.js.map +0 -1
- package/dist/mean-by-DiH-QI0U.d.ts +0 -35
- package/dist/mean-by-DiH-QI0U.d.ts.map +0 -1
- package/dist/merge-BKrUYniy.cjs +0 -1
- package/dist/merge-CXnHl0ti.d.cts +0 -57
- package/dist/merge-CXnHl0ti.d.cts.map +0 -1
- package/dist/merge-DM3LuCr8.js +0 -2
- package/dist/merge-DM3LuCr8.js.map +0 -1
- package/dist/merge-EO0Q1QPA.d.ts +0 -57
- package/dist/merge-EO0Q1QPA.d.ts.map +0 -1
- package/dist/merge-all-BbdTIlUo.js +0 -2
- package/dist/merge-all-BbdTIlUo.js.map +0 -1
- package/dist/merge-all-DA-xZzpl.d.ts +0 -42
- package/dist/merge-all-DA-xZzpl.d.ts.map +0 -1
- package/dist/merge-all-DkmSC0ri.d.cts +0 -42
- package/dist/merge-all-DkmSC0ri.d.cts.map +0 -1
- package/dist/merge-all-MOlMBgeb.cjs +0 -1
- package/dist/merge-deep-A4Cgd47e.d.ts +0 -37
- package/dist/merge-deep-A4Cgd47e.d.ts.map +0 -1
- package/dist/merge-deep-BcekJf0s.cjs +0 -1
- package/dist/merge-deep-DAfbgx82.d.cts +0 -37
- package/dist/merge-deep-DAfbgx82.d.cts.map +0 -1
- package/dist/merge-deep-Dn1sRc5z.js +0 -2
- package/dist/merge-deep-Dn1sRc5z.js.map +0 -1
- package/dist/multiply-BI2VvlFd.js +0 -2
- package/dist/multiply-BI2VvlFd.js.map +0 -1
- package/dist/multiply-CTfXAoM_.cjs +0 -1
- package/dist/multiply-UBFQYNUD.d.ts +0 -33
- package/dist/multiply-UBFQYNUD.d.ts.map +0 -1
- package/dist/multiply-gDDdmofq.d.cts +0 -33
- package/dist/multiply-gDDdmofq.d.cts.map +0 -1
- package/dist/n-tuple-BELi5yRe.d.ts +0 -12
- package/dist/n-tuple-BELi5yRe.d.ts.map +0 -1
- package/dist/n-tuple-Co_jgwEn.d.cts +0 -12
- package/dist/n-tuple-Co_jgwEn.d.cts.map +0 -1
- package/dist/narrowed-to-BTrqm7Xt.d.cts +0 -15
- package/dist/narrowed-to-BTrqm7Xt.d.cts.map +0 -1
- package/dist/narrowed-to-C6wP224-.d.ts +0 -15
- package/dist/narrowed-to-C6wP224-.d.ts.map +0 -1
- package/dist/non-empty-array-D3HWDPMt.d.ts +0 -5
- package/dist/non-empty-array-D3HWDPMt.d.ts.map +0 -1
- package/dist/non-empty-array-D3ZRHApS.d.cts +0 -5
- package/dist/non-empty-array-D3ZRHApS.d.cts.map +0 -1
- package/dist/nth-by-BLlYxw3C.cjs +0 -1
- package/dist/nth-by-BR1fcwCZ.js +0 -2
- package/dist/nth-by-BR1fcwCZ.js.map +0 -1
- package/dist/nth-by-CKFOiBHp.d.cts +0 -42
- package/dist/nth-by-CKFOiBHp.d.cts.map +0 -1
- package/dist/nth-by-DX2PBdEe.d.ts +0 -42
- package/dist/nth-by-DX2PBdEe.d.ts.map +0 -1
- package/dist/obj-of-B7t_1Jdi.d.ts +0 -27
- package/dist/obj-of-B7t_1Jdi.d.ts.map +0 -1
- package/dist/obj-of-CXD9MOPS.js +0 -2
- package/dist/obj-of-CXD9MOPS.js.map +0 -1
- package/dist/obj-of-DE7eb-D1.cjs +0 -1
- package/dist/obj-of-OgSK6d9I.d.cts +0 -27
- package/dist/obj-of-OgSK6d9I.d.cts.map +0 -1
- package/dist/omit-Bpyv8_An.d.ts +0 -29
- package/dist/omit-Bpyv8_An.d.ts.map +0 -1
- package/dist/omit-DB0YVkss.d.cts +0 -29
- package/dist/omit-DB0YVkss.d.cts.map +0 -1
- package/dist/omit-DDC-zMp9.cjs +0 -1
- package/dist/omit-Dgi9IFmV.js +0 -2
- package/dist/omit-Dgi9IFmV.js.map +0 -1
- package/dist/omit-by-6UKJmELm.d.cts +0 -52
- package/dist/omit-by-6UKJmELm.d.cts.map +0 -1
- package/dist/omit-by-BUnyJURX.js +0 -2
- package/dist/omit-by-BUnyJURX.js.map +0 -1
- package/dist/omit-by-BwOILpho.d.ts +0 -52
- package/dist/omit-by-BwOILpho.d.ts.map +0 -1
- package/dist/omit-by-DODiMBly.cjs +0 -1
- package/dist/once-CDA15oHo.js +0 -2
- package/dist/once-CDA15oHo.js.map +0 -1
- package/dist/once-CKjmehD8.d.cts +0 -17
- package/dist/once-CKjmehD8.d.cts.map +0 -1
- package/dist/once-DBa0D-t8.d.ts +0 -17
- package/dist/once-DBa0D-t8.d.ts.map +0 -1
- package/dist/once-ndNMC6PL.cjs +0 -1
- package/dist/only-DRLNxyIr.d.cts +0 -34
- package/dist/only-DRLNxyIr.d.cts.map +0 -1
- package/dist/only-IIcEVYAb.cjs +0 -1
- package/dist/only-Kwk1k50y.js +0 -2
- package/dist/only-Kwk1k50y.js.map +0 -1
- package/dist/only-iY0lPSED.d.ts +0 -34
- package/dist/only-iY0lPSED.d.ts.map +0 -1
- package/dist/partial-array-CzOnr197.d.cts +0 -12
- package/dist/partial-array-CzOnr197.d.cts.map +0 -1
- package/dist/partial-array-IoGI5gCo.d.ts +0 -12
- package/dist/partial-array-IoGI5gCo.d.ts.map +0 -1
- package/dist/partition-BAwbSsom.cjs +0 -1
- package/dist/partition-BRCPpbRh.d.cts +0 -51
- package/dist/partition-BRCPpbRh.d.cts.map +0 -1
- package/dist/partition-BmC5u4fI.js +0 -2
- package/dist/partition-BmC5u4fI.js.map +0 -1
- package/dist/partition-TVQP5mCe.d.ts +0 -51
- package/dist/partition-TVQP5mCe.d.ts.map +0 -1
- package/dist/path-or-BY4Gf2OC.js +0 -2
- package/dist/path-or-BY4Gf2OC.js.map +0 -1
- package/dist/path-or-CVvftsB5.cjs +0 -1
- package/dist/path-or-Cly_jEXS.d.ts +0 -87
- package/dist/path-or-Cly_jEXS.d.ts.map +0 -1
- package/dist/path-or-mXO0iY19.d.cts +0 -87
- package/dist/path-or-mXO0iY19.d.cts.map +0 -1
- package/dist/perkakas-type-error-0tHtaPbi.d.cts +0 -19
- package/dist/perkakas-type-error-0tHtaPbi.d.cts.map +0 -1
- package/dist/perkakas-type-error-Da3ni385.d.ts +0 -19
- package/dist/perkakas-type-error-Da3ni385.d.ts.map +0 -1
- package/dist/pick--K1QxTFe.cjs +0 -1
- package/dist/pick-BeGmtZCr.d.ts +0 -66
- package/dist/pick-BeGmtZCr.d.ts.map +0 -1
- package/dist/pick-BuIVJICv.js +0 -2
- package/dist/pick-BuIVJICv.js.map +0 -1
- package/dist/pick-CsXZS_Xe.d.cts +0 -66
- package/dist/pick-CsXZS_Xe.d.cts.map +0 -1
- package/dist/pick-by-CVILzj6i.cjs +0 -1
- package/dist/pick-by-CmgAp9Gv.d.ts +0 -68
- package/dist/pick-by-CmgAp9Gv.d.ts.map +0 -1
- package/dist/pick-by-D6ACT8QA.js +0 -2
- package/dist/pick-by-D6ACT8QA.js.map +0 -1
- package/dist/pick-by-DVekF8fN.d.cts +0 -68
- package/dist/pick-by-DVekF8fN.d.cts.map +0 -1
- package/dist/pipe-CjmXKJLt.d.ts +0 -34
- package/dist/pipe-CjmXKJLt.d.ts.map +0 -1
- package/dist/pipe-CtsfTnqv.js +0 -2
- package/dist/pipe-CtsfTnqv.js.map +0 -1
- package/dist/pipe-DGVP9PCt.d.cts +0 -34
- package/dist/pipe-DGVP9PCt.d.cts.map +0 -1
- package/dist/pipe-DlFjc4Wf.cjs +0 -1
- package/dist/piped-7IMVVz1U.d.ts +0 -31
- package/dist/piped-7IMVVz1U.d.ts.map +0 -1
- package/dist/piped-Bj0X7cQT.js +0 -2
- package/dist/piped-Bj0X7cQT.js.map +0 -1
- package/dist/piped-Brc8b_TJ.d.cts +0 -31
- package/dist/piped-Brc8b_TJ.d.cts.map +0 -1
- package/dist/piped-Dk4o0Pdm.cjs +0 -1
- package/dist/product-BHRT4Aan.cjs +0 -1
- package/dist/product-D3OVy5Sj.js +0 -2
- package/dist/product-D3OVy5Sj.js.map +0 -1
- package/dist/product-DKaFnVZj.d.cts +0 -52
- package/dist/product-DKaFnVZj.d.cts.map +0 -1
- package/dist/product-DSfUTpxQ.d.ts +0 -52
- package/dist/product-DSfUTpxQ.d.ts.map +0 -1
- package/dist/prop-1ZO514Bp.d.cts +0 -88
- package/dist/prop-1ZO514Bp.d.cts.map +0 -1
- package/dist/prop-BAo3Mk2v.js +0 -2
- package/dist/prop-BAo3Mk2v.js.map +0 -1
- package/dist/prop-BMBSfMKq.d.ts +0 -88
- package/dist/prop-BMBSfMKq.d.ts.map +0 -1
- package/dist/prop-BRP9y5gY.cjs +0 -1
- package/dist/pull-object-CmpUbuXg.d.ts +0 -70
- package/dist/pull-object-CmpUbuXg.d.ts.map +0 -1
- package/dist/pull-object-s5cSNZGP.js +0 -2
- package/dist/pull-object-s5cSNZGP.js.map +0 -1
- package/dist/pull-object-svkB0qoh.d.cts +0 -70
- package/dist/pull-object-svkB0qoh.d.cts.map +0 -1
- package/dist/pull-object-xYSFzkv6.cjs +0 -1
- package/dist/random-integer-6M2bFpGx.d.cts +0 -23
- package/dist/random-integer-6M2bFpGx.d.cts.map +0 -1
- package/dist/random-integer-6gYh92ze.cjs +0 -1
- package/dist/random-integer-BschXumd.d.ts +0 -23
- package/dist/random-integer-BschXumd.d.ts.map +0 -1
- package/dist/random-integer-D27vFslT.js +0 -2
- package/dist/random-integer-D27vFslT.js.map +0 -1
- package/dist/random-string-B49LA01O.js +0 -2
- package/dist/random-string-B49LA01O.js.map +0 -1
- package/dist/random-string-DBUea-au.d.ts +0 -29
- package/dist/random-string-DBUea-au.d.ts.map +0 -1
- package/dist/random-string-DlACN4ZV.d.cts +0 -29
- package/dist/random-string-DlACN4ZV.d.cts.map +0 -1
- package/dist/random-string-LG5QFZXR.cjs +0 -1
- package/dist/range-BNpqskPd.d.ts +0 -27
- package/dist/range-BNpqskPd.d.ts.map +0 -1
- package/dist/range-BYm8b8OO.cjs +0 -1
- package/dist/range-BtCOvN_L.js +0 -2
- package/dist/range-BtCOvN_L.js.map +0 -1
- package/dist/range-EauFMBl4.d.cts +0 -27
- package/dist/range-EauFMBl4.d.cts.map +0 -1
- package/dist/rank-by-B5nxlwg6.d.cts +0 -45
- package/dist/rank-by-B5nxlwg6.d.cts.map +0 -1
- package/dist/rank-by-B778jLnu.cjs +0 -1
- package/dist/rank-by-D3jUXMA3.js +0 -2
- package/dist/rank-by-D3jUXMA3.js.map +0 -1
- package/dist/rank-by-urjGYBfY.d.ts +0 -45
- package/dist/rank-by-urjGYBfY.d.ts.map +0 -1
- package/dist/reduce-BXmHWGo2.cjs +0 -1
- package/dist/reduce-DYv-piI7.d.cts +0 -53
- package/dist/reduce-DYv-piI7.d.cts.map +0 -1
- package/dist/reduce-RFXB_tDG.d.ts +0 -53
- package/dist/reduce-RFXB_tDG.d.ts.map +0 -1
- package/dist/reduce-RxP5hmH5.js +0 -2
- package/dist/reduce-RxP5hmH5.js.map +0 -1
- package/dist/reordered-array-BJtughHE.d.ts +0 -7
- package/dist/reordered-array-BJtughHE.d.ts.map +0 -1
- package/dist/reordered-array-CNK-grX0.d.cts +0 -7
- package/dist/reordered-array-CNK-grX0.d.cts.map +0 -1
- package/dist/reverse-Bu350kg_.d.cts +0 -29
- package/dist/reverse-Bu350kg_.d.cts.map +0 -1
- package/dist/reverse-DZc8DCPA.js +0 -2
- package/dist/reverse-DZc8DCPA.js.map +0 -1
- package/dist/reverse-l_bD9Y9C.cjs +0 -1
- package/dist/reverse-w5Ru5uLJ.d.ts +0 -29
- package/dist/reverse-w5Ru5uLJ.d.ts.map +0 -1
- package/dist/round-BDhuebcp.d.ts +0 -39
- package/dist/round-BDhuebcp.d.ts.map +0 -1
- package/dist/round-CBhbfa_y.cjs +0 -1
- package/dist/round-DhclizH1.js +0 -2
- package/dist/round-DhclizH1.js.map +0 -1
- package/dist/round-rQiLyN4w.d.cts +0 -39
- package/dist/round-rQiLyN4w.d.cts.map +0 -1
- package/dist/sample-9vI5EmCM.d.cts +0 -69
- package/dist/sample-9vI5EmCM.d.cts.map +0 -1
- package/dist/sample-BHIZQL57.d.ts +0 -69
- package/dist/sample-BHIZQL57.d.ts.map +0 -1
- package/dist/sample-DEt8y7NC.js +0 -2
- package/dist/sample-DEt8y7NC.js.map +0 -1
- package/dist/sample-arGcBCIK.cjs +0 -1
- package/dist/set-B-FVFS41.cjs +0 -1
- package/dist/set-C3uDSGtA.d.cts +0 -40
- package/dist/set-C3uDSGtA.d.cts.map +0 -1
- package/dist/set-DXK1kRjm.js +0 -2
- package/dist/set-DXK1kRjm.js.map +0 -1
- package/dist/set-Dg5x0drC.d.ts +0 -40
- package/dist/set-Dg5x0drC.d.ts.map +0 -1
- package/dist/set-path-B7WmM4pj.cjs +0 -1
- package/dist/set-path-BBiEMMBi.d.cts +0 -47
- package/dist/set-path-BBiEMMBi.d.cts.map +0 -1
- package/dist/set-path-BIWA01lW.d.ts +0 -47
- package/dist/set-path-BIWA01lW.d.ts.map +0 -1
- package/dist/set-path-DpNQC1fV.js +0 -2
- package/dist/set-path-DpNQC1fV.js.map +0 -1
- package/dist/shuffle-0bfhzGGR.cjs +0 -1
- package/dist/shuffle-BLhbIQQt.js +0 -2
- package/dist/shuffle-BLhbIQQt.js.map +0 -1
- package/dist/shuffle-BzeqMrKZ.d.ts +0 -31
- package/dist/shuffle-BzeqMrKZ.d.ts.map +0 -1
- package/dist/shuffle-CaSQtM8e.d.cts +0 -31
- package/dist/shuffle-CaSQtM8e.d.cts.map +0 -1
- package/dist/sleep-1rGV3wAg.cjs +0 -1
- package/dist/sleep-BCki6kgY.d.cts +0 -16
- package/dist/sleep-BCki6kgY.d.cts.map +0 -1
- package/dist/sleep-BtY6g8Yq.d.ts +0 -16
- package/dist/sleep-BtY6g8Yq.d.ts.map +0 -1
- package/dist/sleep-DvzRMgY-.js +0 -2
- package/dist/sleep-DvzRMgY-.js.map +0 -1
- package/dist/slice-string-BwFQg4Yf.d.ts +0 -41
- package/dist/slice-string-BwFQg4Yf.d.ts.map +0 -1
- package/dist/slice-string-DejPzRCB.js +0 -2
- package/dist/slice-string-DejPzRCB.js.map +0 -1
- package/dist/slice-string-LJL__fcW.d.cts +0 -41
- package/dist/slice-string-LJL__fcW.d.cts.map +0 -1
- package/dist/slice-string-q-zH_WUu.cjs +0 -1
- package/dist/slugify-5J_YiC6S.js +0 -2
- package/dist/slugify-5J_YiC6S.js.map +0 -1
- package/dist/slugify-CAFKQvdB.cjs +0 -1
- package/dist/slugify-D7YgZAoM.d.cts +0 -15
- package/dist/slugify-D7YgZAoM.d.cts.map +0 -1
- package/dist/slugify-DXOLjypc.d.ts +0 -15
- package/dist/slugify-DXOLjypc.d.ts.map +0 -1
- package/dist/sort-CTZy6xBq.d.cts +0 -39
- package/dist/sort-CTZy6xBq.d.cts.map +0 -1
- package/dist/sort-CVjvrZjo.d.ts +0 -39
- package/dist/sort-CVjvrZjo.d.ts.map +0 -1
- package/dist/sort-CaAnTT3F.cjs +0 -1
- package/dist/sort-D8s8kRLr.js +0 -2
- package/dist/sort-D8s8kRLr.js.map +0 -1
- package/dist/sort-by-CrMqBzvd.d.cts +0 -88
- package/dist/sort-by-CrMqBzvd.d.cts.map +0 -1
- package/dist/sort-by-DBCZSbb4.cjs +0 -1
- package/dist/sort-by-DPlbBz7L.js +0 -2
- package/dist/sort-by-DPlbBz7L.js.map +0 -1
- package/dist/sort-by-ovbQMg9U.d.ts +0 -88
- package/dist/sort-by-ovbQMg9U.d.ts.map +0 -1
- package/dist/sorted-index-BFrWiZn3.cjs +0 -1
- package/dist/sorted-index-Bmn5VLYJ.d.ts +0 -45
- package/dist/sorted-index-Bmn5VLYJ.d.ts.map +0 -1
- package/dist/sorted-index-CTM_l6te.d.cts +0 -45
- package/dist/sorted-index-CTM_l6te.d.cts.map +0 -1
- package/dist/sorted-index-DMcONUoc.js +0 -2
- package/dist/sorted-index-DMcONUoc.js.map +0 -1
- package/dist/sorted-index-by-CEUsUJdi.d.cts +0 -70
- package/dist/sorted-index-by-CEUsUJdi.d.cts.map +0 -1
- package/dist/sorted-index-by-CLUr58al.js +0 -2
- package/dist/sorted-index-by-CLUr58al.js.map +0 -1
- package/dist/sorted-index-by-CyQx_bQb.d.ts +0 -70
- package/dist/sorted-index-by-CyQx_bQb.d.ts.map +0 -1
- package/dist/sorted-index-by-ywbBQhCr.cjs +0 -1
- package/dist/sorted-index-with-CGyMmjPN.d.ts +0 -72
- package/dist/sorted-index-with-CGyMmjPN.d.ts.map +0 -1
- package/dist/sorted-index-with-Cy9W9sdh.d.cts +0 -72
- package/dist/sorted-index-with-Cy9W9sdh.d.cts.map +0 -1
- package/dist/sorted-index-with-D5BcwSL_.cjs +0 -1
- package/dist/sorted-index-with-kTK8prmw.js +0 -2
- package/dist/sorted-index-with-kTK8prmw.js.map +0 -1
- package/dist/sorted-last-index-B4zg__sQ.js +0 -2
- package/dist/sorted-last-index-B4zg__sQ.js.map +0 -1
- package/dist/sorted-last-index-CHvbfpBS.d.cts +0 -45
- package/dist/sorted-last-index-CHvbfpBS.d.cts.map +0 -1
- package/dist/sorted-last-index-CdPROn6x.cjs +0 -1
- package/dist/sorted-last-index-DnqTn-Ev.d.ts +0 -45
- package/dist/sorted-last-index-DnqTn-Ev.d.ts.map +0 -1
- package/dist/sorted-last-index-by-B-IP-O5g.cjs +0 -1
- package/dist/sorted-last-index-by-BGr5WioW.js +0 -2
- package/dist/sorted-last-index-by-BGr5WioW.js.map +0 -1
- package/dist/sorted-last-index-by-BipSOnBS.d.ts +0 -72
- package/dist/sorted-last-index-by-BipSOnBS.d.ts.map +0 -1
- package/dist/sorted-last-index-by-u7mPctkh.d.cts +0 -72
- package/dist/sorted-last-index-by-u7mPctkh.d.cts.map +0 -1
- package/dist/splice-BwsAFdV8.cjs +0 -1
- package/dist/splice-CR6DLiFm.d.cts +0 -35
- package/dist/splice-CR6DLiFm.d.cts.map +0 -1
- package/dist/splice-CRabhu-x.d.ts +0 -35
- package/dist/splice-CRabhu-x.d.ts.map +0 -1
- package/dist/splice-DCOBlrIJ.js +0 -2
- package/dist/splice-DCOBlrIJ.js.map +0 -1
- package/dist/split-BMnz50TJ.d.ts +0 -62
- package/dist/split-BMnz50TJ.d.ts.map +0 -1
- package/dist/split-BSiis5Fh.d.cts +0 -62
- package/dist/split-BSiis5Fh.d.cts.map +0 -1
- package/dist/split-Bs-frJ_a.cjs +0 -1
- package/dist/split-D1qUxipp.js +0 -2
- package/dist/split-D1qUxipp.js.map +0 -1
- package/dist/split-at-B3v6wCCc.d.ts +0 -31
- package/dist/split-at-B3v6wCCc.d.ts.map +0 -1
- package/dist/split-at-CU-3otme.d.cts +0 -31
- package/dist/split-at-CU-3otme.d.cts.map +0 -1
- package/dist/split-at-DUSqIHw-.cjs +0 -1
- package/dist/split-at-vzCujYHL.js +0 -2
- package/dist/split-at-vzCujYHL.js.map +0 -1
- package/dist/split-when-BTekNxF-.d.ts +0 -29
- package/dist/split-when-BTekNxF-.d.ts.map +0 -1
- package/dist/split-when-C7OSEoW3.js +0 -2
- package/dist/split-when-C7OSEoW3.js.map +0 -1
- package/dist/split-when-CCi2Wq1B.cjs +0 -1
- package/dist/split-when-DaTD5jVa.d.cts +0 -29
- package/dist/split-when-DaTD5jVa.d.cts.map +0 -1
- package/dist/string-to-path-C7H_9SeW.d.cts +0 -39
- package/dist/string-to-path-C7H_9SeW.d.cts.map +0 -1
- package/dist/string-to-path-CS10CXKM.d.ts +0 -39
- package/dist/string-to-path-CS10CXKM.d.ts.map +0 -1
- package/dist/string-to-path-D4HSg6rf.js +0 -2
- package/dist/string-to-path-D4HSg6rf.js.map +0 -1
- package/dist/string-to-path-Q_OMxElX.cjs +0 -1
- package/dist/subtract-CktIeIei.js +0 -2
- package/dist/subtract-CktIeIei.js.map +0 -1
- package/dist/subtract-Crhaj882.cjs +0 -1
- package/dist/subtract-DxrBj9Ir.d.ts +0 -35
- package/dist/subtract-DxrBj9Ir.d.ts.map +0 -1
- package/dist/subtract-WxyebhP-.d.cts +0 -35
- package/dist/subtract-WxyebhP-.d.cts.map +0 -1
- package/dist/sum-BL8tGYgI.cjs +0 -1
- package/dist/sum-CcpwR68x.d.cts +0 -50
- package/dist/sum-CcpwR68x.d.cts.map +0 -1
- package/dist/sum-bjQo9S5Q.d.ts +0 -50
- package/dist/sum-bjQo9S5Q.d.ts.map +0 -1
- package/dist/sum-by-BLqXTrME.d.ts +0 -57
- package/dist/sum-by-BLqXTrME.d.ts.map +0 -1
- package/dist/sum-by-CIOYhCgY.cjs +0 -1
- package/dist/sum-by-CqGEkkyR.d.cts +0 -57
- package/dist/sum-by-CqGEkkyR.d.cts.map +0 -1
- package/dist/sum-by-eeHiHAej.js +0 -2
- package/dist/sum-by-eeHiHAej.js.map +0 -1
- package/dist/sum-lEJNA4zT.js +0 -2
- package/dist/sum-lEJNA4zT.js.map +0 -1
- package/dist/swap-in-place-BBqaxzzG.js +0 -2
- package/dist/swap-in-place-BBqaxzzG.js.map +0 -1
- package/dist/swap-in-place-CJrU2n1_.cjs +0 -1
- package/dist/swap-indices-CMgMD_dW.js +0 -2
- package/dist/swap-indices-CMgMD_dW.js.map +0 -1
- package/dist/swap-indices-CRAsQaXi.cjs +0 -1
- package/dist/swap-indices-CdclLgV-.d.ts +0 -61
- package/dist/swap-indices-CdclLgV-.d.ts.map +0 -1
- package/dist/swap-indices-KQ4fsLkb.d.cts +0 -61
- package/dist/swap-indices-KQ4fsLkb.d.cts.map +0 -1
- package/dist/swap-props-BQ2a9nZO.cjs +0 -1
- package/dist/swap-props-D-buo88H.d.ts +0 -34
- package/dist/swap-props-D-buo88H.d.ts.map +0 -1
- package/dist/swap-props-D7be4C3M.d.cts +0 -34
- package/dist/swap-props-D7be4C3M.d.cts.map +0 -1
- package/dist/swap-props-sxLIvQ4Y.js +0 -2
- package/dist/swap-props-sxLIvQ4Y.js.map +0 -1
- package/dist/take-BV-ctBqK.d.cts +0 -34
- package/dist/take-BV-ctBqK.d.cts.map +0 -1
- package/dist/take-Cn0xLGe4.js +0 -2
- package/dist/take-Cn0xLGe4.js.map +0 -1
- package/dist/take-CnVckkWV.d.ts +0 -34
- package/dist/take-CnVckkWV.d.ts.map +0 -1
- package/dist/take-DwT7ymnA.cjs +0 -1
- package/dist/take-first-by-BGSUzX61.js +0 -2
- package/dist/take-first-by-BGSUzX61.js.map +0 -1
- package/dist/take-first-by-BgONSKvT.d.ts +0 -41
- package/dist/take-first-by-BgONSKvT.d.ts.map +0 -1
- package/dist/take-first-by-Cpgu4Dll.d.cts +0 -41
- package/dist/take-first-by-Cpgu4Dll.d.cts.map +0 -1
- package/dist/take-first-by-CtrznSxG.cjs +0 -1
- package/dist/take-last-8PzLMvw3.js +0 -2
- package/dist/take-last-8PzLMvw3.js.map +0 -1
- package/dist/take-last-BnF7ADxy.d.ts +0 -32
- package/dist/take-last-BnF7ADxy.d.ts.map +0 -1
- package/dist/take-last-BvjeJFre.d.cts +0 -32
- package/dist/take-last-BvjeJFre.d.cts.map +0 -1
- package/dist/take-last-DT3U0fro.cjs +0 -1
- package/dist/take-last-while-7hpO-w-n.cjs +0 -1
- package/dist/take-last-while-CGrVFpA9.d.ts +0 -36
- package/dist/take-last-while-CGrVFpA9.d.ts.map +0 -1
- package/dist/take-last-while-CNlwvmIf.d.cts +0 -36
- package/dist/take-last-while-CNlwvmIf.d.cts.map +0 -1
- package/dist/take-last-while-D4D1elUu.js +0 -2
- package/dist/take-last-while-D4D1elUu.js.map +0 -1
- package/dist/take-while-BoYdbQRK.cjs +0 -1
- package/dist/take-while-CPEBQO5f.d.cts +0 -34
- package/dist/take-while-CPEBQO5f.d.cts.map +0 -1
- package/dist/take-while-D7M5vbwg.js +0 -2
- package/dist/take-while-D7M5vbwg.js.map +0 -1
- package/dist/take-while-e4aa4Rzo.d.ts +0 -34
- package/dist/take-while-e4aa4Rzo.d.ts.map +0 -1
- package/dist/tap-2SHLmCBm.cjs +0 -1
- package/dist/tap-BjWhN6y_.d.ts +0 -42
- package/dist/tap-BjWhN6y_.d.ts.map +0 -1
- package/dist/tap-GLPlAKCD.js +0 -2
- package/dist/tap-GLPlAKCD.js.map +0 -1
- package/dist/tap-gF124Yhn.d.cts +0 -42
- package/dist/tap-gF124Yhn.d.cts.map +0 -1
- package/dist/times-BoE5WrNr.d.cts +0 -48
- package/dist/times-BoE5WrNr.d.cts.map +0 -1
- package/dist/times-C4txaWWG.js +0 -2
- package/dist/times-C4txaWWG.js.map +0 -1
- package/dist/times-ChlK_wAM.cjs +0 -1
- package/dist/times-CzRXDAnV.d.ts +0 -48
- package/dist/times-CzRXDAnV.d.ts.map +0 -1
- package/dist/to-camel-case-5ZN25UuZ.d.cts +0 -32
- package/dist/to-camel-case-5ZN25UuZ.d.cts.map +0 -1
- package/dist/to-camel-case-DJ5dmboH.d.ts +0 -32
- package/dist/to-camel-case-DJ5dmboH.d.ts.map +0 -1
- package/dist/to-camel-case-JdiHeuUd.js +0 -2
- package/dist/to-camel-case-JdiHeuUd.js.map +0 -1
- package/dist/to-camel-case-MCv0xSE_.cjs +0 -1
- package/dist/to-capital-case-BBTx9xpN.d.cts +0 -31
- package/dist/to-capital-case-BBTx9xpN.d.cts.map +0 -1
- package/dist/to-capital-case-BD9MIiKM.cjs +0 -1
- package/dist/to-capital-case-BDs8sikX.d.ts +0 -31
- package/dist/to-capital-case-BDs8sikX.d.ts.map +0 -1
- package/dist/to-capital-case-DFgHWUP7.js +0 -2
- package/dist/to-capital-case-DFgHWUP7.js.map +0 -1
- package/dist/to-constant-case-Bobbz_hT.d.cts +0 -31
- package/dist/to-constant-case-Bobbz_hT.d.cts.map +0 -1
- package/dist/to-constant-case-Bs1J4UNN.js +0 -2
- package/dist/to-constant-case-Bs1J4UNN.js.map +0 -1
- package/dist/to-constant-case-C6XG49MZ.cjs +0 -1
- package/dist/to-constant-case-DlZZVrYx.d.ts +0 -31
- package/dist/to-constant-case-DlZZVrYx.d.ts.map +0 -1
- package/dist/to-kebab-case-BKdi-Rk7.d.ts +0 -31
- package/dist/to-kebab-case-BKdi-Rk7.d.ts.map +0 -1
- package/dist/to-kebab-case-BRVFPXE9.d.cts +0 -31
- package/dist/to-kebab-case-BRVFPXE9.d.cts.map +0 -1
- package/dist/to-kebab-case-Cud7RCjt.cjs +0 -1
- package/dist/to-kebab-case-z5oAWVif.js +0 -2
- package/dist/to-kebab-case-z5oAWVif.js.map +0 -1
- package/dist/to-no-case-BDX0619s.cjs +0 -1
- package/dist/to-no-case-Bt57ASib.js +0 -2
- package/dist/to-no-case-Bt57ASib.js.map +0 -1
- package/dist/to-no-case-D6nPbja8.d.cts +0 -31
- package/dist/to-no-case-D6nPbja8.d.cts.map +0 -1
- package/dist/to-no-case-ctaqyxQN.d.ts +0 -31
- package/dist/to-no-case-ctaqyxQN.d.ts.map +0 -1
- package/dist/to-pascal-case-7nVKvcNg.d.cts +0 -32
- package/dist/to-pascal-case-7nVKvcNg.d.cts.map +0 -1
- package/dist/to-pascal-case-BSZrgkTx.cjs +0 -1
- package/dist/to-pascal-case-COG25kzw.js +0 -2
- package/dist/to-pascal-case-COG25kzw.js.map +0 -1
- package/dist/to-pascal-case-DUupmGjS.d.ts +0 -32
- package/dist/to-pascal-case-DUupmGjS.d.ts.map +0 -1
- package/dist/to-pascal-snake-case-BVvnru7G.d.ts +0 -31
- package/dist/to-pascal-snake-case-BVvnru7G.d.ts.map +0 -1
- package/dist/to-pascal-snake-case-C360MTFV.d.cts +0 -31
- package/dist/to-pascal-snake-case-C360MTFV.d.cts.map +0 -1
- package/dist/to-pascal-snake-case-C38j94Cu.cjs +0 -1
- package/dist/to-pascal-snake-case-C64pBLFr.js +0 -2
- package/dist/to-pascal-snake-case-C64pBLFr.js.map +0 -1
- package/dist/to-sentence-case--9p0YnHo.js +0 -2
- package/dist/to-sentence-case--9p0YnHo.js.map +0 -1
- package/dist/to-sentence-case-7mo0QXqC.d.cts +0 -31
- package/dist/to-sentence-case-7mo0QXqC.d.cts.map +0 -1
- package/dist/to-sentence-case-BTrqI21a.d.ts +0 -31
- package/dist/to-sentence-case-BTrqI21a.d.ts.map +0 -1
- package/dist/to-sentence-case-C2TveqdZ.cjs +0 -1
- package/dist/to-single-Bnq9l8Zp.cjs +0 -1
- package/dist/to-single-bHVECPzX.js +0 -2
- package/dist/to-single-bHVECPzX.js.map +0 -1
- package/dist/to-snake-case-BuWvjluH.cjs +0 -1
- package/dist/to-snake-case-Ddi9YNyo.d.ts +0 -31
- package/dist/to-snake-case-Ddi9YNyo.d.ts.map +0 -1
- package/dist/to-snake-case-IHXwNjtp.js +0 -2
- package/dist/to-snake-case-IHXwNjtp.js.map +0 -1
- package/dist/to-snake-case-e2ooEcFB.d.cts +0 -31
- package/dist/to-snake-case-e2ooEcFB.d.cts.map +0 -1
- package/dist/to-string-RweoJgSy.d.ts +0 -13
- package/dist/to-string-RweoJgSy.d.ts.map +0 -1
- package/dist/to-string-gK5yUyfp.d.cts +0 -13
- package/dist/to-string-gK5yUyfp.d.cts.map +0 -1
- package/dist/to-train-case-B03OndqT.d.cts +0 -31
- package/dist/to-train-case-B03OndqT.d.cts.map +0 -1
- package/dist/to-train-case-B06CqIxe.js +0 -2
- package/dist/to-train-case-B06CqIxe.js.map +0 -1
- package/dist/to-train-case-CLDlt-Y6.d.ts +0 -31
- package/dist/to-train-case-CLDlt-Y6.d.ts.map +0 -1
- package/dist/to-train-case-CsRLhQ9b.cjs +0 -1
- package/dist/tuple-parts-BIyABPYv.d.cts +0 -89
- package/dist/tuple-parts-BIyABPYv.d.cts.map +0 -1
- package/dist/tuple-parts-BxpZLJ7r.d.ts +0 -89
- package/dist/tuple-parts-BxpZLJ7r.d.ts.map +0 -1
- package/dist/type.helpers-C0eszdCH.d.cts +0 -10
- package/dist/type.helpers-C0eszdCH.d.cts.map +0 -1
- package/dist/type.helpers-CNVsSXtV.cjs +0 -0
- package/dist/type.helpers-CRhd_JIH.js +0 -0
- package/dist/type.helpers-CrSxBVxJ.d.ts +0 -10
- package/dist/type.helpers-CrSxBVxJ.d.ts.map +0 -1
- package/dist/unique-4ky12IzI.d.cts +0 -39
- package/dist/unique-4ky12IzI.d.cts.map +0 -1
- package/dist/unique-DMbDhoaS.js +0 -2
- package/dist/unique-DMbDhoaS.js.map +0 -1
- package/dist/unique-Dx_8Tg2u.d.ts +0 -39
- package/dist/unique-Dx_8Tg2u.d.ts.map +0 -1
- package/dist/unique-Na2E_cV5.cjs +0 -1
- package/dist/unique-by-927ymOrT.js +0 -2
- package/dist/unique-by-927ymOrT.js.map +0 -1
- package/dist/unique-by-B1t_QxyV.d.ts +0 -44
- package/dist/unique-by-B1t_QxyV.d.ts.map +0 -1
- package/dist/unique-by-BYeRvKkn.cjs +0 -1
- package/dist/unique-by-D4r9b-C2.d.cts +0 -44
- package/dist/unique-by-D4r9b-C2.d.cts.map +0 -1
- package/dist/unique-with-B0Atc1ch.d.cts +0 -46
- package/dist/unique-with-B0Atc1ch.d.cts.map +0 -1
- package/dist/unique-with-DN7oz8DS.js +0 -2
- package/dist/unique-with-DN7oz8DS.js.map +0 -1
- package/dist/unique-with-DODXeZJO.cjs +0 -1
- package/dist/unique-with-_6gjzVmk.d.ts +0 -46
- package/dist/unique-with-_6gjzVmk.d.ts.map +0 -1
- package/dist/upsert-prop-CE7fi_mP.d.ts +0 -9
- package/dist/upsert-prop-CE7fi_mP.d.ts.map +0 -1
- package/dist/upsert-prop-Dtu5xY0L.d.cts +0 -9
- package/dist/upsert-prop-Dtu5xY0L.d.cts.map +0 -1
- package/dist/utility-evaluators-CnQVdcZv.js +0 -2
- package/dist/utility-evaluators-CnQVdcZv.js.map +0 -1
- package/dist/utility-evaluators-DqJcWENu.cjs +0 -1
- package/dist/values-BXlzhi3A.cjs +0 -1
- package/dist/values-CIS32AYx.d.cts +0 -38
- package/dist/values-CIS32AYx.d.cts.map +0 -1
- package/dist/values-DUzzQ-p6.d.ts +0 -38
- package/dist/values-DUzzQ-p6.d.ts.map +0 -1
- package/dist/values-Dsgo6Wke.js +0 -2
- package/dist/values-Dsgo6Wke.js.map +0 -1
- package/dist/with-precision-BgF-Y_mF.cjs +0 -1
- package/dist/with-precision-BoiuafbM.js +0 -2
- package/dist/with-precision-BoiuafbM.js.map +0 -1
- package/dist/zip-CA2if4ix.cjs +0 -1
- package/dist/zip-CoEM-79C.d.cts +0 -38
- package/dist/zip-CoEM-79C.d.cts.map +0 -1
- package/dist/zip-DhsVpwcO.js +0 -2
- package/dist/zip-DhsVpwcO.js.map +0 -1
- package/dist/zip-with-BRpfRkdc.js +0 -2
- package/dist/zip-with-BRpfRkdc.js.map +0 -1
- package/dist/zip-with-CABk7jf5.d.ts +0 -50
- package/dist/zip-with-CABk7jf5.d.ts.map +0 -1
- package/dist/zip-with-D0Ey6gSU.d.cts +0 -50
- package/dist/zip-with-D0Ey6gSU.d.cts.map +0 -1
- package/dist/zip-with-D7HfIW7V.cjs +0 -1
- package/dist/zip-xjUg1DcS.d.ts +0 -38
- package/dist/zip-xjUg1DcS.d.ts.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e,i as t,n,r}from"./dist-CUT1dnRU.js";import{constant as i}from"./constant.js";import{funnel as a}from"./funnel.js";import{identity as o}from"./identity.js";import{sleep as s}from"./sleep.js";function c(e,{timing:t,waitMs:n,maxWaitMs:r}){if(r!==void 0&&n!==void 0&&r<n)throw Error(`debounce: maxWaitMs (${r.toString()}) cannot be less than waitMs (${n.toString()})`);let i,o=a(t=>{i=e(...t)},{reducer:(e,...t)=>t,minQuietPeriodMs:n??r??0,...r!==void 0&&{maxBurstDurationMs:r},...t===`leading`?{triggerAt:`start`}:t===`both`?{triggerAt:`both`}:{triggerAt:`end`}});return{call:(...e)=>(o.call(...e),i),flush:()=>(o.flush(),i),cancel:()=>{o.cancel()},get isPending(){return!o.isIdle},get cachedValue(){return i}}}t(`main functionality`,()=>{e(`should debounce a function`,async()=>{let e=r.fn(o()),t=c(e,{waitMs:32});n([t.call(`a`),t.call(`b`),t.call(`c`)]).toStrictEqual([void 0,void 0,void 0]),n(e).toHaveBeenCalledTimes(0),await s(128),n(e).toHaveBeenCalledTimes(1),n([t.call(`d`),t.call(`e`),t.call(`f`)]).toStrictEqual([`c`,`c`,`c`]),n(e).toHaveBeenCalledTimes(1),await s(256),n(e).toHaveBeenCalledTimes(2)}),e("subsequent debounced calls return the last `func` result",async()=>{let e=c(o(),{waitMs:32});e.call(`a`),await s(64),n(e.call(`b`)).toBe(`a`),await s(128),n(e.call(`c`)).toBe(`b`)}),e("should not immediately call `func` when `wait` is `0`",async()=>{let e=r.fn(),t=c(e,{});t.call(),t.call(),n(e).toHaveBeenCalledTimes(0),await s(5),n(e).toHaveBeenCalledTimes(1)}),e(`should apply default options`,async()=>{let e=r.fn();c(e,{waitMs:32}).call(),n(e).toHaveBeenCalledTimes(0),await s(64),n(e).toHaveBeenCalledTimes(1)}),e("should support a `leading` option",async()=>{let e=r.fn(),t=r.fn(),i=c(e,{waitMs:32,timing:`leading`});i.call(),n(e).toHaveBeenCalledTimes(1);let a=c(t,{waitMs:32,timing:`both`});a.call(),a.call(),n(t).toHaveBeenCalledTimes(1),await s(64),n(t).toHaveBeenCalledTimes(2),i.call(),n(e).toHaveBeenCalledTimes(2)}),e("subsequent leading debounced calls return the last `func` result",async()=>{let e=c(o(),{waitMs:32,timing:`leading`});n([e.call(`a`),e.call(`b`)]).toStrictEqual([`a`,`a`]),await s(64),n([e.call(`c`),e.call(`d`)]).toStrictEqual([`c`,`c`])}),e("should support a `trailing` option",async()=>{let e=r.fn();c(e,{waitMs:32,timing:`trailing`}).call(),n(e).toHaveBeenCalledTimes(0),await s(64),n(e).toHaveBeenCalledTimes(1)})}),t(`optional param maxWaitMs`,()=>{e("should support a `maxWait` option",async()=>{let e=r.fn(),t=c(e,{waitMs:32,maxWaitMs:64});t.call(`a`),t.call(`b`),n(e).toHaveBeenCalledTimes(0),await s(128),n(e).toHaveBeenCalledTimes(1),t.call(`c`),t.call(`d`),n(e).toHaveBeenCalledTimes(1),await s(256),n(e).toHaveBeenCalledTimes(2)}),e("should support `maxWait` in a tight loop",async()=>{let e=r.fn(),t=r.fn(),i=c(e,{waitMs:32,maxWaitMs:128}),a=c(t,{waitMs:96}),o=Date.now();for(;Date.now()-o<320;)i.call(),a.call();await s(1),n(t).toHaveBeenCalledTimes(0),n(e).not.toHaveBeenCalledTimes(0)}),e("should queue a trailing call for subsequent debounced calls after `maxWait`",async()=>{let e=r.fn(),t=c(e,{waitMs:200,maxWaitMs:200});t.call(),setTimeout(()=>{t.call()},190),setTimeout(()=>{t.call()},200),setTimeout(()=>{t.call()},210),await s(500),n(e).toHaveBeenCalledTimes(2)}),e("should cancel `maxDelayed` when `delayed` is invoked",async()=>{let e=r.fn(),t=c(e,{waitMs:32,maxWaitMs:64});t.call(),await s(128),t.call(),n(e).toHaveBeenCalledTimes(1),await s(192),n(e).toHaveBeenCalledTimes(2)}),e(`works like a leaky bucket when only maxWaitMs is set`,async()=>{let e=r.fn(),t=c(e,{maxWaitMs:32});t.call(),n(e).toHaveBeenCalledTimes(0),await s(16),t.call(),n(e).toHaveBeenCalledTimes(0),await s(17),n(e).toHaveBeenCalledTimes(1)})}),t(`additional functionality`,()=>{e(`can cancel before the timer starts`,async()=>{let e=c(o(),{waitMs:32});n(()=>{e.cancel()}).not.toThrow(),n(e.call(`hello`)).toBeUndefined(),await s(32),n(e.call(`world`)).toBe(`hello`)}),e(`can cancel the timer`,async()=>{let e=r.fn(i(`Hello, World!`)),t=c(e,{waitMs:32});n(t.call()).toBeUndefined(),n(e).toHaveBeenCalledTimes(0),await s(1),n(t.call()).toBeUndefined(),n(e).toHaveBeenCalledTimes(0),t.cancel(),await s(32),n(t.call()).toBeUndefined(),n(e).toHaveBeenCalledTimes(0),await s(32),n(t.call()).toBe(`Hello, World!`),n(e).toHaveBeenCalledTimes(1)}),e(`can cancel after the timer ends`,async()=>{let e=c(o(),{waitMs:32});n(e.call(`hello`)).toBeUndefined(),await s(32),n(e.call(`world`)).toBe(`hello`),n(()=>{e.cancel()}).not.toThrow()}),e(`can cancel maxWait timer`,async()=>{let e=c(o(),{waitMs:16,maxWaitMs:32});n(e.call(`hello`)).toBeUndefined(),await s(1),e.cancel(),await s(32),n(e.call(`world`)).toBeUndefined()}),e(`can return a cached value`,()=>{let e=c(o(),{timing:`leading`,waitMs:32});n(e.cachedValue).toBeUndefined(),n(e.call(`hello`)).toBe(`hello`),n(e.cachedValue).toBe(`hello`)}),e(`can check for inflight timers (trailing)`,async()=>{let e=c(o(),{waitMs:32});n(e.isPending).toBe(!1),n(e.call(`hello`)).toBeUndefined(),n(e.isPending).toBe(!0),await s(1),n(e.isPending).toBe(!0),await s(32),n(e.isPending).toBe(!1)}),e(`can check for inflight timers (leading)`,async()=>{let e=c(o(),{timing:`leading`,waitMs:32});n(e.isPending).toBe(!1),n(e.call(`hello`)).toBe(`hello`),n(e.isPending).toBe(!0),await s(1),n(e.isPending).toBe(!0),await s(32),n(e.isPending).toBe(!1)}),e(`can flush before a cool-down`,async()=>{let e=c(o(),{waitMs:32});n(e.flush()).toBeUndefined(),n(e.call(`hello`)).toBeUndefined(),await s(32),n(e.call(`world`)).toBe(`hello`)}),e(`can flush during a cool-down`,async()=>{let e=c(o(),{waitMs:32});n(e.call(`hello`)).toBeUndefined(),await s(1),n(e.call(`world`)).toBeUndefined(),await s(1),n(e.flush()).toBe(`world`)}),e(`can flush after a cool-down`,async()=>{let e=c(o(),{waitMs:32});n(e.call(`hello`)).toBeUndefined(),await s(32),n(e.flush()).toBe(`hello`)})}),t(`errors`,()=>{e(`prevents maxWaitMs to be less then waitMs`,()=>{n(()=>c(o(),{waitMs:32,maxWaitMs:16})).toThrow(`debounce: maxWaitMs (16) cannot be less than waitMs (32)`)})});
|
|
2
2
|
//# sourceMappingURL=funnel.perkakas-debounce.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnel.perkakas-debounce.test.js","names":["cachedValue: ReturnType<F> | undefined"],"sources":["../src/funnel.perkakas-debounce.test.ts"],"sourcesContent":["/* eslint-disable function-paren-newline, no-nested-ternary, ts/explicit-function-return-type, ts/no-explicit-any --\n * These aren't useful for a reference implementation!\n */\n\nimport { describe, expect, it, vi } from 'vitest';\nimport { constant } from './constant';\nimport { funnel } from './funnel';\nimport { identity } from './identity';\nimport { sleep } from './sleep';\n\ninterface Debouncer<\n F extends (...args: any) => unknown,\n IsNullable extends boolean = true,\n> {\n readonly call: (\n ...args: Parameters<F>\n ) => ReturnType<F> | (true extends IsNullable ? undefined : never);\n readonly cancel: () => void;\n readonly flush: () => ReturnType<F> | undefined;\n readonly isPending: boolean;\n readonly cachedValue: ReturnType<F> | undefined;\n}\n\ninterface DebounceOptions {\n readonly waitMs?: number;\n readonly maxWaitMs?: number;\n}\n\n/**\n * A reference implementation of the now deprecated `debounce` function using\n * the `funnel` function instead. While you update your codebase you can copy\n * this function as-is and use it as a drop-in replacement; but we recommend\n * eventually inlining the call to `funnel` so you can adjust the function to\n * your specific needs.\n *\n * The following tests in this file are the original tests for debounce.\n *\n * @see debounce\n */\nfunction debounce<F extends (...args: any) => any>(\n func: F,\n options: DebounceOptions & { readonly timing?: 'trailing' },\n): Debouncer<F>;\nfunction debounce<F extends (...args: any) => any>(\n func: F,\n options:\n | (DebounceOptions & { readonly timing: 'both' })\n | (Omit<DebounceOptions, 'maxWaitMs'> & { readonly timing: 'leading' }),\n): Debouncer<F, false>;\nfunction debounce<F extends (...args: any) => any>(\n func: F,\n {\n timing,\n waitMs,\n maxWaitMs,\n }: DebounceOptions & {\n readonly timing?: 'both' | 'leading' | 'trailing';\n },\n) {\n if (maxWaitMs !== undefined && waitMs !== undefined && maxWaitMs < waitMs) {\n throw new Error(\n `debounce: maxWaitMs (${maxWaitMs.toString()}) cannot be less than waitMs (${waitMs.toString()})`,\n );\n }\n\n let cachedValue: ReturnType<F> | undefined;\n\n const debouncingFunnel = funnel(\n (args: Parameters<F>) => {\n // Every time the function is invoked the cached value is updated.\n cachedValue = func(...args) as ReturnType<F>;\n },\n {\n // Debounce stores the latest args it was called with for the next invocation of the callback.\n reducer: (_, ...args: Parameters<F>) => args,\n minQuietPeriodMs: waitMs ?? maxWaitMs ?? 0,\n ...(maxWaitMs !== undefined && { maxBurstDurationMs: maxWaitMs }),\n ...(timing === 'leading'\n ? { triggerAt: 'start' }\n : timing === 'both'\n ? { triggerAt: 'both' }\n : { triggerAt: 'end' }),\n },\n );\n\n return {\n call: (...args: Parameters<F>) => {\n debouncingFunnel.call(...args);\n return cachedValue;\n },\n\n flush: () => {\n debouncingFunnel.flush();\n return cachedValue;\n },\n\n cancel: () => {\n debouncingFunnel.cancel();\n },\n\n get isPending() {\n return !debouncingFunnel.isIdle;\n },\n\n get cachedValue() {\n return cachedValue;\n },\n };\n}\n\ndescribe('main functionality', () => {\n it('should debounce a function', async () => {\n const mockFn = vi.fn<(x: string) => string>(identity());\n const debouncer = debounce(mockFn, { waitMs: 32 });\n\n expect([\n debouncer.call('a'),\n debouncer.call('b'),\n debouncer.call('c'),\n ]).toStrictEqual([undefined, undefined, undefined]);\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(128);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n expect([\n debouncer.call('d'),\n debouncer.call('e'),\n debouncer.call('f'),\n ]).toStrictEqual(['c', 'c', 'c']);\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n await sleep(256);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('subsequent debounced calls return the last `func` result', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n debouncer.call('a');\n await sleep(64);\n\n expect(debouncer.call('b')).toBe('a');\n\n await sleep(128);\n\n expect(debouncer.call('c')).toBe('b');\n });\n\n it('should not immediately call `func` when `wait` is `0`', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, {});\n debouncer.call();\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(5);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n\n it('should apply default options', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { waitMs: 32 });\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(64);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n\n it('should support a `leading` option', async () => {\n const leadingMockFn = vi.fn<() => void>();\n const bothMockFn = vi.fn<() => void>();\n const withLeading = debounce(leadingMockFn, {\n waitMs: 32,\n timing: 'leading',\n });\n withLeading.call();\n\n expect(leadingMockFn).toHaveBeenCalledTimes(1);\n\n const withLeadingAndTrailing = debounce(bothMockFn, {\n waitMs: 32,\n timing: 'both',\n });\n withLeadingAndTrailing.call();\n withLeadingAndTrailing.call();\n\n expect(bothMockFn).toHaveBeenCalledTimes(1);\n\n await sleep(64);\n\n expect(bothMockFn).toHaveBeenCalledTimes(2);\n\n withLeading.call();\n\n expect(leadingMockFn).toHaveBeenCalledTimes(2);\n });\n\n it('subsequent leading debounced calls return the last `func` result', async () => {\n const debouncer = debounce(identity(), { waitMs: 32, timing: 'leading' });\n\n expect([debouncer.call('a'), debouncer.call('b')]).toStrictEqual([\n 'a',\n 'a',\n ]);\n\n await sleep(64);\n\n expect([debouncer.call('c'), debouncer.call('d')]).toStrictEqual([\n 'c',\n 'c',\n ]);\n });\n\n it('should support a `trailing` option', async () => {\n const mockFn = vi.fn<() => void>();\n const withTrailing = debounce(mockFn, { waitMs: 32, timing: 'trailing' });\n withTrailing.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(64);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n});\n\ndescribe('optional param maxWaitMs', () => {\n it('should support a `maxWait` option', async () => {\n const mockFn = vi.fn<(x: string) => void>();\n const debouncer = debounce(mockFn, { waitMs: 32, maxWaitMs: 64 });\n debouncer.call('a');\n debouncer.call('b');\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(128);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n debouncer.call('c');\n debouncer.call('d');\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n await sleep(256);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('should support `maxWait` in a tight loop', async () => {\n const withMockFn = vi.fn<() => void>();\n const withoutMockFn = vi.fn<() => void>();\n const withMaxWait = debounce(withMockFn, { waitMs: 32, maxWaitMs: 128 });\n const withoutMaxWait = debounce(withoutMockFn, { waitMs: 96 });\n const start = Date.now();\n while (Date.now() - start < 320) {\n withMaxWait.call();\n withoutMaxWait.call();\n }\n await sleep(1);\n\n expect(withoutMockFn).toHaveBeenCalledTimes(0);\n expect(withMockFn).not.toHaveBeenCalledTimes(0);\n });\n\n it('should queue a trailing call for subsequent debounced calls after `maxWait`', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { waitMs: 200, maxWaitMs: 200 });\n debouncer.call();\n setTimeout(() => {\n debouncer.call();\n }, 190);\n setTimeout(() => {\n debouncer.call();\n }, 200);\n setTimeout(() => {\n debouncer.call();\n }, 210);\n await sleep(500);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('should cancel `maxDelayed` when `delayed` is invoked', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { waitMs: 32, maxWaitMs: 64 });\n debouncer.call();\n await sleep(128);\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n await sleep(192);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('works like a leaky bucket when only maxWaitMs is set', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { maxWaitMs: 32 });\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(16);\n // Without maxWaitMs this call would cause the actual invocation to be\n // postponed for a full window.\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(17);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n});\n\ndescribe('additional functionality', () => {\n it('can cancel before the timer starts', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(() => {\n debouncer.cancel();\n }).not.toThrow();\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.call('world')).toBe('hello');\n });\n\n it('can cancel the timer', async () => {\n const mockFn = vi.fn<() => string>(constant('Hello, World!'));\n const debouncer = debounce(mockFn, { waitMs: 32 });\n\n expect(debouncer.call()).toBeUndefined();\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(1);\n\n expect(debouncer.call()).toBeUndefined();\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n debouncer.cancel();\n await sleep(32);\n\n expect(debouncer.call()).toBeUndefined();\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(32);\n\n expect(debouncer.call()).toBe('Hello, World!');\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n\n it('can cancel after the timer ends', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.call('world')).toBe('hello');\n expect(() => {\n debouncer.cancel();\n }).not.toThrow();\n });\n\n it('can cancel maxWait timer', async () => {\n const debouncer = debounce(identity(), { waitMs: 16, maxWaitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(1);\n debouncer.cancel();\n await sleep(32);\n\n expect(debouncer.call('world')).toBeUndefined();\n });\n\n it('can return a cached value', () => {\n const debouncer = debounce(identity(), { timing: 'leading', waitMs: 32 });\n\n expect(debouncer.cachedValue).toBeUndefined();\n expect(debouncer.call('hello')).toBe('hello');\n expect(debouncer.cachedValue).toBe('hello');\n });\n\n it('can check for inflight timers (trailing)', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.isPending).toBe(false);\n expect(debouncer.call('hello')).toBeUndefined();\n expect(debouncer.isPending).toBe(true);\n\n await sleep(1);\n\n expect(debouncer.isPending).toBe(true);\n\n await sleep(32);\n\n expect(debouncer.isPending).toBe(false);\n });\n\n it('can check for inflight timers (leading)', async () => {\n const debouncer = debounce(identity(), { timing: 'leading', waitMs: 32 });\n\n expect(debouncer.isPending).toBe(false);\n expect(debouncer.call('hello')).toBe('hello');\n expect(debouncer.isPending).toBe(true);\n\n await sleep(1);\n\n expect(debouncer.isPending).toBe(true);\n\n await sleep(32);\n\n expect(debouncer.isPending).toBe(false);\n });\n\n it('can flush before a cool-down', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.flush()).toBeUndefined();\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.call('world')).toBe('hello');\n });\n\n it('can flush during a cool-down', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(1);\n\n expect(debouncer.call('world')).toBeUndefined();\n\n await sleep(1);\n\n expect(debouncer.flush()).toBe('world');\n });\n\n it('can flush after a cool-down', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.flush()).toBe('hello');\n });\n});\n\ndescribe('errors', () => {\n it('prevents maxWaitMs to be less then waitMs', () => {\n expect(() => debounce(identity(), { waitMs: 32, maxWaitMs: 16 })).toThrow(\n 'debounce: maxWaitMs (16) cannot be less than waitMs (32)',\n );\n });\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"funnel.perkakas-debounce.test.js","names":["cachedValue: ReturnType<F> | undefined"],"sources":["../src/funnel.perkakas-debounce.test.ts"],"sourcesContent":["/* eslint-disable function-paren-newline, no-nested-ternary, ts/explicit-function-return-type, ts/no-explicit-any --\n * These aren't useful for a reference implementation!\n */\n\nimport { describe, expect, it, vi } from 'vitest';\nimport { constant } from './constant';\nimport { funnel } from './funnel';\nimport { identity } from './identity';\nimport { sleep } from './sleep';\n\ninterface Debouncer<\n F extends (...args: any) => unknown,\n IsNullable extends boolean = true,\n> {\n readonly call: (\n ...args: Parameters<F>\n ) => ReturnType<F> | (true extends IsNullable ? undefined : never);\n readonly cancel: () => void;\n readonly flush: () => ReturnType<F> | undefined;\n readonly isPending: boolean;\n readonly cachedValue: ReturnType<F> | undefined;\n}\n\ninterface DebounceOptions {\n readonly waitMs?: number;\n readonly maxWaitMs?: number;\n}\n\n/**\n * A reference implementation of the now deprecated `debounce` function using\n * the `funnel` function instead. While you update your codebase you can copy\n * this function as-is and use it as a drop-in replacement; but we recommend\n * eventually inlining the call to `funnel` so you can adjust the function to\n * your specific needs.\n *\n * The following tests in this file are the original tests for debounce.\n *\n * @see debounce\n */\nfunction debounce<F extends (...args: any) => any>(\n func: F,\n options: DebounceOptions & { readonly timing?: 'trailing' },\n): Debouncer<F>;\nfunction debounce<F extends (...args: any) => any>(\n func: F,\n options:\n | (DebounceOptions & { readonly timing: 'both' })\n | (Omit<DebounceOptions, 'maxWaitMs'> & { readonly timing: 'leading' }),\n): Debouncer<F, false>;\nfunction debounce<F extends (...args: any) => any>(\n func: F,\n {\n timing,\n waitMs,\n maxWaitMs,\n }: DebounceOptions & {\n readonly timing?: 'both' | 'leading' | 'trailing';\n },\n) {\n if (maxWaitMs !== undefined && waitMs !== undefined && maxWaitMs < waitMs) {\n throw new Error(\n `debounce: maxWaitMs (${maxWaitMs.toString()}) cannot be less than waitMs (${waitMs.toString()})`,\n );\n }\n\n let cachedValue: ReturnType<F> | undefined;\n\n const debouncingFunnel = funnel(\n (args: Parameters<F>) => {\n // Every time the function is invoked the cached value is updated.\n cachedValue = func(...args) as ReturnType<F>;\n },\n {\n // Debounce stores the latest args it was called with for the next invocation of the callback.\n reducer: (_, ...args: Parameters<F>) => args,\n minQuietPeriodMs: waitMs ?? maxWaitMs ?? 0,\n ...(maxWaitMs !== undefined && { maxBurstDurationMs: maxWaitMs }),\n ...(timing === 'leading'\n ? { triggerAt: 'start' }\n : timing === 'both'\n ? { triggerAt: 'both' }\n : { triggerAt: 'end' }),\n },\n );\n\n return {\n call: (...args: Parameters<F>) => {\n debouncingFunnel.call(...args);\n return cachedValue;\n },\n\n flush: () => {\n debouncingFunnel.flush();\n return cachedValue;\n },\n\n cancel: () => {\n debouncingFunnel.cancel();\n },\n\n get isPending() {\n return !debouncingFunnel.isIdle;\n },\n\n get cachedValue() {\n return cachedValue;\n },\n };\n}\n\ndescribe('main functionality', () => {\n it('should debounce a function', async () => {\n const mockFn = vi.fn<(x: string) => string>(identity());\n const debouncer = debounce(mockFn, { waitMs: 32 });\n\n expect([\n debouncer.call('a'),\n debouncer.call('b'),\n debouncer.call('c'),\n ]).toStrictEqual([undefined, undefined, undefined]);\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(128);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n expect([\n debouncer.call('d'),\n debouncer.call('e'),\n debouncer.call('f'),\n ]).toStrictEqual(['c', 'c', 'c']);\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n await sleep(256);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('subsequent debounced calls return the last `func` result', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n debouncer.call('a');\n await sleep(64);\n\n expect(debouncer.call('b')).toBe('a');\n\n await sleep(128);\n\n expect(debouncer.call('c')).toBe('b');\n });\n\n it('should not immediately call `func` when `wait` is `0`', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, {});\n debouncer.call();\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(5);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n\n it('should apply default options', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { waitMs: 32 });\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(64);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n\n it('should support a `leading` option', async () => {\n const leadingMockFn = vi.fn<() => void>();\n const bothMockFn = vi.fn<() => void>();\n const withLeading = debounce(leadingMockFn, {\n waitMs: 32,\n timing: 'leading',\n });\n withLeading.call();\n\n expect(leadingMockFn).toHaveBeenCalledTimes(1);\n\n const withLeadingAndTrailing = debounce(bothMockFn, {\n waitMs: 32,\n timing: 'both',\n });\n withLeadingAndTrailing.call();\n withLeadingAndTrailing.call();\n\n expect(bothMockFn).toHaveBeenCalledTimes(1);\n\n await sleep(64);\n\n expect(bothMockFn).toHaveBeenCalledTimes(2);\n\n withLeading.call();\n\n expect(leadingMockFn).toHaveBeenCalledTimes(2);\n });\n\n it('subsequent leading debounced calls return the last `func` result', async () => {\n const debouncer = debounce(identity(), { waitMs: 32, timing: 'leading' });\n\n expect([debouncer.call('a'), debouncer.call('b')]).toStrictEqual([\n 'a',\n 'a',\n ]);\n\n await sleep(64);\n\n expect([debouncer.call('c'), debouncer.call('d')]).toStrictEqual([\n 'c',\n 'c',\n ]);\n });\n\n it('should support a `trailing` option', async () => {\n const mockFn = vi.fn<() => void>();\n const withTrailing = debounce(mockFn, { waitMs: 32, timing: 'trailing' });\n withTrailing.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(64);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n});\n\ndescribe('optional param maxWaitMs', () => {\n it('should support a `maxWait` option', async () => {\n const mockFn = vi.fn<(x: string) => void>();\n const debouncer = debounce(mockFn, { waitMs: 32, maxWaitMs: 64 });\n debouncer.call('a');\n debouncer.call('b');\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(128);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n debouncer.call('c');\n debouncer.call('d');\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n await sleep(256);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('should support `maxWait` in a tight loop', async () => {\n const withMockFn = vi.fn<() => void>();\n const withoutMockFn = vi.fn<() => void>();\n const withMaxWait = debounce(withMockFn, { waitMs: 32, maxWaitMs: 128 });\n const withoutMaxWait = debounce(withoutMockFn, { waitMs: 96 });\n const start = Date.now();\n while (Date.now() - start < 320) {\n withMaxWait.call();\n withoutMaxWait.call();\n }\n await sleep(1);\n\n expect(withoutMockFn).toHaveBeenCalledTimes(0);\n expect(withMockFn).not.toHaveBeenCalledTimes(0);\n });\n\n it('should queue a trailing call for subsequent debounced calls after `maxWait`', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { waitMs: 200, maxWaitMs: 200 });\n debouncer.call();\n setTimeout(() => {\n debouncer.call();\n }, 190);\n setTimeout(() => {\n debouncer.call();\n }, 200);\n setTimeout(() => {\n debouncer.call();\n }, 210);\n await sleep(500);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('should cancel `maxDelayed` when `delayed` is invoked', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { waitMs: 32, maxWaitMs: 64 });\n debouncer.call();\n await sleep(128);\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n await sleep(192);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('works like a leaky bucket when only maxWaitMs is set', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { maxWaitMs: 32 });\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(16);\n // Without maxWaitMs this call would cause the actual invocation to be\n // postponed for a full window.\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(17);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n});\n\ndescribe('additional functionality', () => {\n it('can cancel before the timer starts', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(() => {\n debouncer.cancel();\n }).not.toThrow();\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.call('world')).toBe('hello');\n });\n\n it('can cancel the timer', async () => {\n const mockFn = vi.fn<() => string>(constant('Hello, World!'));\n const debouncer = debounce(mockFn, { waitMs: 32 });\n\n expect(debouncer.call()).toBeUndefined();\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(1);\n\n expect(debouncer.call()).toBeUndefined();\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n debouncer.cancel();\n await sleep(32);\n\n expect(debouncer.call()).toBeUndefined();\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(32);\n\n expect(debouncer.call()).toBe('Hello, World!');\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n\n it('can cancel after the timer ends', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.call('world')).toBe('hello');\n expect(() => {\n debouncer.cancel();\n }).not.toThrow();\n });\n\n it('can cancel maxWait timer', async () => {\n const debouncer = debounce(identity(), { waitMs: 16, maxWaitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(1);\n debouncer.cancel();\n await sleep(32);\n\n expect(debouncer.call('world')).toBeUndefined();\n });\n\n it('can return a cached value', () => {\n const debouncer = debounce(identity(), { timing: 'leading', waitMs: 32 });\n\n expect(debouncer.cachedValue).toBeUndefined();\n expect(debouncer.call('hello')).toBe('hello');\n expect(debouncer.cachedValue).toBe('hello');\n });\n\n it('can check for inflight timers (trailing)', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.isPending).toBe(false);\n expect(debouncer.call('hello')).toBeUndefined();\n expect(debouncer.isPending).toBe(true);\n\n await sleep(1);\n\n expect(debouncer.isPending).toBe(true);\n\n await sleep(32);\n\n expect(debouncer.isPending).toBe(false);\n });\n\n it('can check for inflight timers (leading)', async () => {\n const debouncer = debounce(identity(), { timing: 'leading', waitMs: 32 });\n\n expect(debouncer.isPending).toBe(false);\n expect(debouncer.call('hello')).toBe('hello');\n expect(debouncer.isPending).toBe(true);\n\n await sleep(1);\n\n expect(debouncer.isPending).toBe(true);\n\n await sleep(32);\n\n expect(debouncer.isPending).toBe(false);\n });\n\n it('can flush before a cool-down', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.flush()).toBeUndefined();\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.call('world')).toBe('hello');\n });\n\n it('can flush during a cool-down', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(1);\n\n expect(debouncer.call('world')).toBeUndefined();\n\n await sleep(1);\n\n expect(debouncer.flush()).toBe('world');\n });\n\n it('can flush after a cool-down', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.flush()).toBe('hello');\n });\n});\n\ndescribe('errors', () => {\n it('prevents maxWaitMs to be less then waitMs', () => {\n expect(() => debounce(identity(), { waitMs: 32, maxWaitMs: 16 })).toThrow(\n 'debounce: maxWaitMs (16) cannot be less than waitMs (32)',\n );\n });\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./dist-
|
|
1
|
+
const e=require(`./dist-CiyBKPT6.cjs`),t=require(`./do-nothing.cjs`),n=require(`./from-keys.cjs`),r=require(`./funnel.cjs`);function i(e,t,n=0){let i=r.funnel(n=>{e(n.map(({params:e})=>e)).then(e=>{for(let[r,{params:i,promiseCallbacks:[a]}]of n.entries())a(t(e,r,...i))}).catch(e=>{for(let{promiseCallbacks:[,t]}of n)t(e)})},{reducer:(e,t)=>[...e??[],t],maxBurstDurationMs:n,triggerAt:`end`});return{...i,call:async(...e)=>new Promise((...t)=>{i.call({promiseCallbacks:t,params:e})})}}e.i(`showcase`,()=>{e.a(`results as object`,async()=>{let t=e.r.fn(async e=>n.fromKeys(e,e=>e.length)),r=i(async e=>await t(e.flat()),(e,t,n)=>e[n]),a=[r.call(`short`),r.call(`medium`),r.call(`loooooooooooooong`)];e.n(t).toHaveBeenCalledTimes(0);let[o,s,c]=await Promise.all(a);e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`short`,`medium`,`loooooooooooooong`]),e.n(t).toHaveLastResolvedWith({short:5,medium:6,loooooooooooooong:17}),e.n(o).toBe(5),e.n(s).toBe(6),e.n(c).toBe(17)}),e.a(`results as array`,async()=>{let t=e.r.fn(async e=>e.map(e=>e.length)),n=i(async e=>await t(e.flat()),(e,t)=>e[t]),r=[n.call(`short`),n.call(`medium`),n.call(`loooooooooooooong`)];e.n(t).toHaveBeenCalledTimes(0);let[a,o,s]=await Promise.all(r);e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`short`,`medium`,`loooooooooooooong`]),e.n(t).toHaveLastResolvedWith([5,6,17]),e.n(a).toBe(5),e.n(o).toBe(6),e.n(s).toBe(17)}),e.a(`error handling`,async()=>{let n=i(async e=>{if(e.length>1)throw Error(`Batch too big! ${JSON.stringify(e)}`)},t.doNothing());await e.n(n.call(`a`)).resolves.toBeUndefined(),await e.n(Promise.all([n.call(`hello`),n.call(`world`)])).rejects.toThrow(`Batch too big! [["hello"],["world"]]`)})});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e,i as t,n,r}from"./dist-CUT1dnRU.js";import{doNothing as i}from"./do-nothing.js";import{fromKeys as a}from"./from-keys.js";import{funnel as o}from"./funnel.js";function s(e,t,n=0){let r=o(n=>{e(n.map(({params:e})=>e)).then(e=>{for(let[r,{params:i,promiseCallbacks:[a]}]of n.entries())a(t(e,r,...i))}).catch(e=>{for(let{promiseCallbacks:[,t]}of n)t(e)})},{reducer:(e,t)=>[...e??[],t],maxBurstDurationMs:n,triggerAt:`end`});return{...r,call:async(...e)=>new Promise((...t)=>{r.call({promiseCallbacks:t,params:e})})}}t(`showcase`,()=>{e(`results as object`,async()=>{let e=r.fn(async e=>a(e,e=>e.length)),t=s(async t=>await e(t.flat()),(e,t,n)=>e[n]),i=[t.call(`short`),t.call(`medium`),t.call(`loooooooooooooong`)];n(e).toHaveBeenCalledTimes(0);let[o,c,l]=await Promise.all(i);n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`short`,`medium`,`loooooooooooooong`]),n(e).toHaveLastResolvedWith({short:5,medium:6,loooooooooooooong:17}),n(o).toBe(5),n(c).toBe(6),n(l).toBe(17)}),e(`results as array`,async()=>{let e=r.fn(async e=>e.map(e=>e.length)),t=s(async t=>await e(t.flat()),(e,t)=>e[t]),i=[t.call(`short`),t.call(`medium`),t.call(`loooooooooooooong`)];n(e).toHaveBeenCalledTimes(0);let[a,o,c]=await Promise.all(i);n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`short`,`medium`,`loooooooooooooong`]),n(e).toHaveLastResolvedWith([5,6,17]),n(a).toBe(5),n(o).toBe(6),n(c).toBe(17)}),e(`error handling`,async()=>{let e=s(async e=>{if(e.length>1)throw Error(`Batch too big! ${JSON.stringify(e)}`)},i());await n(e.call(`a`)).resolves.toBeUndefined(),await n(Promise.all([e.call(`hello`),e.call(`world`)])).rejects.toThrow(`Batch too big! [["hello"],["world"]]`)})});
|
|
2
2
|
//# sourceMappingURL=funnel.reference-batch.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnel.reference-batch.test.js","names":["expect"],"sources":["../src/funnel.reference-batch.test.ts"],"sourcesContent":["/* eslint-disable ts/explicit-function-return-type, ts/no-explicit-any --\n * These aren't useful for a reference implementation!\n */\n\nimport { describe, expect, it, vi } from 'vitest';\nimport { doNothing } from './do-nothing';\nimport { fromKeys } from './from-keys';\nimport { funnel } from './funnel';\n\ninterface BatchRequest<Params extends Array<any>, Result> {\n readonly params: Params;\n readonly promiseCallbacks: Readonly<\n Parameters<ConstructorParameters<typeof Promise<Result>>[0]>\n >;\n}\n\n/**\n * A reference implementation for an async batching utility function built on\n * top of the `funnel` general purpose execution utility function. It will\n * accumulate all params passed to an async `call` method within the defined\n * burst duration and then use an async executor to process them in one\n * invocation. It then extracts an individual result for each call which is\n * used to resolve the original call.\n *\n * This allows synchronizing multiple async calls while keeping each call site\n * isolated from the rest (for example, as react components).\n *\n * This reference implementation can be copied into your project as-is, or you\n * can use it as the basis for a more complex implementation with additional\n * features.\n *\n * @param callback - The main function that takes a batch and returns an\n * aggregated response. The typing for the it's parameters will derive the\n * typing for the extractor and the `call` method.\n * @param extractor - A function that takes the aggregated response and extracts\n * from it the result for each individual call. The function is called with both\n * the index in the batch, and the params passed to the `call` method. This\n * allows handling APIs that return batch results as both objects and arrays.\n * @param maxBurstDurationMs - The period of time where the batcher would\n * collect params before triggering the executor. When set to 0 the batcher\n * does not incur any additional delays to the execution and would trigger at\n * the next tick, just like a regular async function would. This is also the\n * default value.\n * @returns A Funnel object with the `call` method augmented to support async\n * response.\n */\nfunction batch<Params extends Array<any>, BatchResponse, Result>(\n callback: (requests: ReadonlyArray<Params>) => Promise<BatchResponse>,\n extractor: (\n response: BatchResponse,\n index: number,\n ...params: Params\n ) => Result,\n maxBurstDurationMs = 0,\n) {\n const batchFunnel = funnel(\n // Passes all accumulated parameters to the callback and then extracts the response for each individual call via the extractor.\n (requests: ReadonlyArray<BatchRequest<Params, Result>>) => {\n callback(requests.map(({ params }) => params))\n // On success we iterate again over all calls and allow the extractor to pull a value out of the aggregated response for each one.\n .then((response) => {\n for (const [\n index,\n {\n params,\n promiseCallbacks: [resolve],\n },\n ] of requests.entries()) {\n const result = extractor(response, index, ...params);\n resolve(result);\n }\n })\n\n // On error we simply pass the error along to all reject callbacks.\n .catch((error) => {\n for (const {\n promiseCallbacks: [, reject],\n } of requests) {\n reject(error);\n }\n });\n },\n {\n // Reducer: Accumulates the parameters for each call, together with the promise executor callbacks needed to resolve or reject the call.\n reducer: (requests, request: BatchRequest<Params, Result>) => [\n ...(requests ?? []),\n request,\n ],\n maxBurstDurationMs,\n triggerAt: 'end',\n },\n );\n\n return {\n ...batchFunnel,\n\n call: async (...params: Params) =>\n new Promise<Result>((...promiseCallbacks) => {\n batchFunnel.call({ promiseCallbacks, params });\n }),\n };\n}\n\ndescribe('showcase', () => {\n it('results as object', async () => {\n const mockApi = vi.fn<\n (words: ReadonlyArray<string>) => Promise<Record<string, number>>\n >(async (words) => fromKeys(words, (word) => word.length));\n\n const countLettersApi = batch(\n // We only need to type the `requests` param of the `executor` callback.\n // All other types are derived from it.\n async (requests: ReadonlyArray<[word: string]>) =>\n await mockApi(requests.flat()),\n (response, _, word) => response[word],\n );\n\n const prepared = [\n countLettersApi.call('short'),\n countLettersApi.call('medium'),\n countLettersApi.call('loooooooooooooong'),\n ];\n\n expect(mockApi).toHaveBeenCalledTimes(0);\n\n const [shortResult, mediumResult, longResult] = await Promise.all(prepared);\n\n expect(mockApi).toHaveBeenCalledTimes(1);\n expect(mockApi).toHaveBeenLastCalledWith([\n 'short',\n 'medium',\n 'loooooooooooooong',\n ]);\n expect(mockApi).toHaveLastResolvedWith({\n short: 5,\n medium: 6,\n loooooooooooooong: 17,\n });\n expect(shortResult).toBe(5);\n expect(mediumResult).toBe(6);\n expect(longResult).toBe(17);\n });\n\n it('results as array', async () => {\n const mockApi = vi.fn<\n (words: ReadonlyArray<string>) => Promise<ReadonlyArray<number>>\n >(async (words) => words.map((word) => word.length));\n\n const countLettersApi = batch(\n // We only need to type the `requests` param of the `executor` callback.\n // All other types are derived from it.\n async (requests: ReadonlyArray<[word: string]>) =>\n await mockApi(requests.flat()),\n (response, index) => response[index],\n );\n\n const prepared = [\n countLettersApi.call('short'),\n countLettersApi.call('medium'),\n countLettersApi.call('loooooooooooooong'),\n ];\n\n expect(mockApi).toHaveBeenCalledTimes(0);\n\n const [shortResult, mediumResult, longResult] = await Promise.all(prepared);\n\n expect(mockApi).toHaveBeenCalledTimes(1);\n expect(mockApi).toHaveBeenLastCalledWith([\n 'short',\n 'medium',\n 'loooooooooooooong',\n ]);\n expect(mockApi).toHaveLastResolvedWith([5, 6, 17]);\n expect(shortResult).toBe(5);\n expect(mediumResult).toBe(6);\n expect(longResult).toBe(17);\n });\n\n it('error handling', async () => {\n const failingApi = batch(\n // We only need to type the `requests` param of the `executor` callback.\n // All other types are derived from it.\n async (requests: ReadonlyArray<[id: string]>) => {\n if (requests.length > 1) {\n throw new Error(`Batch too big! ${JSON.stringify(requests)}`);\n }\n },\n doNothing(),\n );\n\n await expect(failingApi.call('a')).resolves.toBeUndefined();\n\n await expect(\n Promise.all([failingApi.call('hello'), failingApi.call('world')]),\n ).rejects.toThrow('Batch too big! [[\"hello\"],[\"world\"]]');\n });\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"funnel.reference-batch.test.js","names":["expect"],"sources":["../src/funnel.reference-batch.test.ts"],"sourcesContent":["/* eslint-disable ts/explicit-function-return-type, ts/no-explicit-any --\n * These aren't useful for a reference implementation!\n */\n\nimport { describe, expect, it, vi } from 'vitest';\nimport { doNothing } from './do-nothing';\nimport { fromKeys } from './from-keys';\nimport { funnel } from './funnel';\n\ninterface BatchRequest<Params extends Array<any>, Result> {\n readonly params: Params;\n readonly promiseCallbacks: Readonly<\n Parameters<ConstructorParameters<typeof Promise<Result>>[0]>\n >;\n}\n\n/**\n * A reference implementation for an async batching utility function built on\n * top of the `funnel` general purpose execution utility function. It will\n * accumulate all params passed to an async `call` method within the defined\n * burst duration and then use an async executor to process them in one\n * invocation. It then extracts an individual result for each call which is\n * used to resolve the original call.\n *\n * This allows synchronizing multiple async calls while keeping each call site\n * isolated from the rest (for example, as react components).\n *\n * This reference implementation can be copied into your project as-is, or you\n * can use it as the basis for a more complex implementation with additional\n * features.\n *\n * @param callback - The main function that takes a batch and returns an\n * aggregated response. The typing for the it's parameters will derive the\n * typing for the extractor and the `call` method.\n * @param extractor - A function that takes the aggregated response and extracts\n * from it the result for each individual call. The function is called with both\n * the index in the batch, and the params passed to the `call` method. This\n * allows handling APIs that return batch results as both objects and arrays.\n * @param maxBurstDurationMs - The period of time where the batcher would\n * collect params before triggering the executor. When set to 0 the batcher\n * does not incur any additional delays to the execution and would trigger at\n * the next tick, just like a regular async function would. This is also the\n * default value.\n * @returns A Funnel object with the `call` method augmented to support async\n * response.\n */\nfunction batch<Params extends Array<any>, BatchResponse, Result>(\n callback: (requests: ReadonlyArray<Params>) => Promise<BatchResponse>,\n extractor: (\n response: BatchResponse,\n index: number,\n ...params: Params\n ) => Result,\n maxBurstDurationMs = 0,\n) {\n const batchFunnel = funnel(\n // Passes all accumulated parameters to the callback and then extracts the response for each individual call via the extractor.\n (requests: ReadonlyArray<BatchRequest<Params, Result>>) => {\n callback(requests.map(({ params }) => params))\n // On success we iterate again over all calls and allow the extractor to pull a value out of the aggregated response for each one.\n .then((response) => {\n for (const [\n index,\n {\n params,\n promiseCallbacks: [resolve],\n },\n ] of requests.entries()) {\n const result = extractor(response, index, ...params);\n resolve(result);\n }\n })\n\n // On error we simply pass the error along to all reject callbacks.\n .catch((error) => {\n for (const {\n promiseCallbacks: [, reject],\n } of requests) {\n reject(error);\n }\n });\n },\n {\n // Reducer: Accumulates the parameters for each call, together with the promise executor callbacks needed to resolve or reject the call.\n reducer: (requests, request: BatchRequest<Params, Result>) => [\n ...(requests ?? []),\n request,\n ],\n maxBurstDurationMs,\n triggerAt: 'end',\n },\n );\n\n return {\n ...batchFunnel,\n\n call: async (...params: Params) =>\n new Promise<Result>((...promiseCallbacks) => {\n batchFunnel.call({ promiseCallbacks, params });\n }),\n };\n}\n\ndescribe('showcase', () => {\n it('results as object', async () => {\n const mockApi = vi.fn<\n (words: ReadonlyArray<string>) => Promise<Record<string, number>>\n >(async (words) => fromKeys(words, (word) => word.length));\n\n const countLettersApi = batch(\n // We only need to type the `requests` param of the `executor` callback.\n // All other types are derived from it.\n async (requests: ReadonlyArray<[word: string]>) =>\n await mockApi(requests.flat()),\n (response, _, word) => response[word],\n );\n\n const prepared = [\n countLettersApi.call('short'),\n countLettersApi.call('medium'),\n countLettersApi.call('loooooooooooooong'),\n ];\n\n expect(mockApi).toHaveBeenCalledTimes(0);\n\n const [shortResult, mediumResult, longResult] = await Promise.all(prepared);\n\n expect(mockApi).toHaveBeenCalledTimes(1);\n expect(mockApi).toHaveBeenLastCalledWith([\n 'short',\n 'medium',\n 'loooooooooooooong',\n ]);\n expect(mockApi).toHaveLastResolvedWith({\n short: 5,\n medium: 6,\n loooooooooooooong: 17,\n });\n expect(shortResult).toBe(5);\n expect(mediumResult).toBe(6);\n expect(longResult).toBe(17);\n });\n\n it('results as array', async () => {\n const mockApi = vi.fn<\n (words: ReadonlyArray<string>) => Promise<ReadonlyArray<number>>\n >(async (words) => words.map((word) => word.length));\n\n const countLettersApi = batch(\n // We only need to type the `requests` param of the `executor` callback.\n // All other types are derived from it.\n async (requests: ReadonlyArray<[word: string]>) =>\n await mockApi(requests.flat()),\n (response, index) => response[index],\n );\n\n const prepared = [\n countLettersApi.call('short'),\n countLettersApi.call('medium'),\n countLettersApi.call('loooooooooooooong'),\n ];\n\n expect(mockApi).toHaveBeenCalledTimes(0);\n\n const [shortResult, mediumResult, longResult] = await Promise.all(prepared);\n\n expect(mockApi).toHaveBeenCalledTimes(1);\n expect(mockApi).toHaveBeenLastCalledWith([\n 'short',\n 'medium',\n 'loooooooooooooong',\n ]);\n expect(mockApi).toHaveLastResolvedWith([5, 6, 17]);\n expect(shortResult).toBe(5);\n expect(mediumResult).toBe(6);\n expect(longResult).toBe(17);\n });\n\n it('error handling', async () => {\n const failingApi = batch(\n // We only need to type the `requests` param of the `executor` callback.\n // All other types are derived from it.\n async (requests: ReadonlyArray<[id: string]>) => {\n if (requests.length > 1) {\n throw new Error(`Batch too big! ${JSON.stringify(requests)}`);\n }\n },\n doNothing(),\n );\n\n await expect(failingApi.call('a')).resolves.toBeUndefined();\n\n await expect(\n Promise.all([failingApi.call('hello'), failingApi.call('world')]),\n ).rejects.toThrow('Batch too big! [[\"hello\"],[\"world\"]]');\n });\n});\n"],"mappings":"6KA8CA,SAAS,EACP,EACA,EAKA,EAAqB,EACrB,CACA,IAAM,EAAc,EAEjB,GAA0D,CACzD,EAAS,EAAS,KAAK,CAAE,YAAa,EAAO,CAAC,CAE3C,KAAM,GAAa,CAClB,IAAK,GAAM,CACT,EACA,CACE,SACA,iBAAkB,CAAC,OAElB,EAAS,SAAS,CAErB,EADe,EAAU,EAAU,EAAO,GAAG,EAAO,CACrC,EAEjB,CAGD,MAAO,GAAU,CAChB,IAAK,GAAM,CACT,iBAAkB,EAAG,MAClB,EACH,EAAO,EAAM,EAEf,EAEN,CAEE,SAAU,EAAU,IAA0C,CAC5D,GAAI,GAAY,EAAE,CAClB,EACD,CACD,qBACA,UAAW,MACZ,CACF,CAED,MAAO,CACL,GAAG,EAEH,KAAM,MAAO,GAAG,IACd,IAAI,SAAiB,GAAG,IAAqB,CAC3C,EAAY,KAAK,CAAE,mBAAkB,SAAQ,CAAC,EAC9C,CACL,CAGH,EAAS,eAAkB,CACzB,EAAG,oBAAqB,SAAY,CAClC,IAAM,EAAU,EAAG,GAEb,KAAO,IAAU,EAAS,EAAQ,GAAS,EAAK,OAAO,CAAC,CAExD,EAAkB,EAGtB,KAAO,IACL,MAAM,EAAQ,EAAS,MAAM,CAAC,EAC/B,EAAU,EAAG,IAAS,EAAS,GACjC,CAEK,EAAW,CACf,EAAgB,KAAK,QAAQ,CAC7B,EAAgB,KAAK,SAAS,CAC9B,EAAgB,KAAK,oBAAoB,CAC1C,CAED,EAAO,EAAQ,CAAC,sBAAsB,EAAE,CAExC,GAAM,CAAC,EAAa,EAAc,GAAc,MAAM,QAAQ,IAAI,EAAS,CAE3E,EAAO,EAAQ,CAAC,sBAAsB,EAAE,CACxC,EAAO,EAAQ,CAAC,yBAAyB,CACvC,QACA,SACA,oBACD,CAAC,CACF,EAAO,EAAQ,CAAC,uBAAuB,CACrC,MAAO,EACP,OAAQ,EACR,kBAAmB,GACpB,CAAC,CACF,EAAO,EAAY,CAAC,KAAK,EAAE,CAC3B,EAAO,EAAa,CAAC,KAAK,EAAE,CAC5B,EAAO,EAAW,CAAC,KAAK,GAAG,EAC3B,CAEF,EAAG,mBAAoB,SAAY,CACjC,IAAM,EAAU,EAAG,GAEb,KAAO,IAAU,EAAM,IAAK,GAAS,EAAK,OAAO,CAAC,CAElD,EAAkB,EAGtB,KAAO,IACL,MAAM,EAAQ,EAAS,MAAM,CAAC,EAC/B,EAAU,IAAU,EAAS,GAC/B,CAEK,EAAW,CACf,EAAgB,KAAK,QAAQ,CAC7B,EAAgB,KAAK,SAAS,CAC9B,EAAgB,KAAK,oBAAoB,CAC1C,CAED,EAAO,EAAQ,CAAC,sBAAsB,EAAE,CAExC,GAAM,CAAC,EAAa,EAAc,GAAc,MAAM,QAAQ,IAAI,EAAS,CAE3E,EAAO,EAAQ,CAAC,sBAAsB,EAAE,CACxC,EAAO,EAAQ,CAAC,yBAAyB,CACvC,QACA,SACA,oBACD,CAAC,CACF,EAAO,EAAQ,CAAC,uBAAuB,CAAC,EAAG,EAAG,GAAG,CAAC,CAClD,EAAO,EAAY,CAAC,KAAK,EAAE,CAC3B,EAAO,EAAa,CAAC,KAAK,EAAE,CAC5B,EAAO,EAAW,CAAC,KAAK,GAAG,EAC3B,CAEF,EAAG,iBAAkB,SAAY,CAC/B,IAAM,EAAa,EAGjB,KAAO,IAA0C,CAC/C,GAAI,EAAS,OAAS,EACpB,MAAU,MAAM,kBAAkB,KAAK,UAAU,EAAS,GAAG,EAGjE,GAAW,CACZ,CAED,MAAMA,EAAO,EAAW,KAAK,IAAI,CAAC,CAAC,SAAS,eAAe,CAE3D,MAAMA,EACJ,QAAQ,IAAI,CAAC,EAAW,KAAK,QAAQ,CAAE,EAAW,KAAK,QAAQ,CAAC,CAAC,CAClE,CAAC,QAAQ,QAAQ,uCAAuC,EACzD,EACF"}
|
package/dist/funnel.test-d.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./dist-
|
|
1
|
+
const e=require(`./dist-CiyBKPT6.cjs`),t=require(`./do-nothing.cjs`),n=require(`./funnel.cjs`);e.i(`'call' method args`,()=>{e.a(`no args`,()=>{(0,e.t.expectTypeOf)(n.funnel(t.doNothing(),{reducer:e=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()}),e.a(`non-optional args`,()=>{(0,e.t.expectTypeOf)(n.funnel(t.doNothing(),{reducer:(e,t,n,r)=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()}),e.a(`optional args`,()=>{(0,e.t.expectTypeOf)(n.funnel(t.doNothing(),{reducer:(e,t)=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()}),e.a(`rest args`,()=>{(0,e.t.expectTypeOf)(n.funnel(t.doNothing(),{reducer:(e,...t)=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()})}),e.i(`derive the reducer accumulator type from the executor param`,()=>{e.a(`simple types`,()=>{n.funnel(e=>{},{reducer:t=>((0,e.t.expectTypeOf)(t).toEqualTypeOf(),t),triggerAt:`start`})}),e.a(`arrays`,()=>{n.funnel(e=>{},{reducer:t=>((0,e.t.expectTypeOf)(t).toEqualTypeOf(),t),triggerAt:`start`})}),e.a(`objects`,()=>{n.funnel(e=>{},{reducer:t=>((0,e.t.expectTypeOf)(t).toEqualTypeOf(),t),triggerAt:`start`})})}),e.i(`prevent bad options`,()=>{e.a(`minGapMs cannot be the only option with timing: end`,()=>{n.funnel(t.doNothing(),{minGapMs:100}),n.funnel(t.doNothing(),{triggerAt:`end`,minGapMs:100}),n.funnel(t.doNothing(),{triggerAt:`start`,minGapMs:100}),n.funnel(t.doNothing(),{triggerAt:`both`,minGapMs:100})})});
|
package/dist/funnel.test-d.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e,i as t,t as n}from"./dist-CUT1dnRU.js";import{doNothing as r}from"./do-nothing.js";import{funnel as i}from"./funnel.js";t(`'call' method args`,()=>{e(`no args`,()=>{n(i(r(),{reducer:e=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()}),e(`non-optional args`,()=>{n(i(r(),{reducer:(e,t,n,r)=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()}),e(`optional args`,()=>{n(i(r(),{reducer:(e,t)=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()}),e(`rest args`,()=>{n(i(r(),{reducer:(e,...t)=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()})}),t(`derive the reducer accumulator type from the executor param`,()=>{e(`simple types`,()=>{i(e=>{},{reducer:e=>(n(e).toEqualTypeOf(),e),triggerAt:`start`})}),e(`arrays`,()=>{i(e=>{},{reducer:e=>(n(e).toEqualTypeOf(),e),triggerAt:`start`})}),e(`objects`,()=>{i(e=>{},{reducer:e=>(n(e).toEqualTypeOf(),e),triggerAt:`start`})})}),t(`prevent bad options`,()=>{e(`minGapMs cannot be the only option with timing: end`,()=>{i(r(),{minGapMs:100}),i(r(),{triggerAt:`end`,minGapMs:100}),i(r(),{triggerAt:`start`,minGapMs:100}),i(r(),{triggerAt:`both`,minGapMs:100})})});
|
|
2
2
|
//# sourceMappingURL=funnel.test-d.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnel.test-d.js","names":[],"sources":["../src/funnel.test-d.ts"],"sourcesContent":["/* eslint-disable ts/no-unused-vars -- We just want to build types, we don't care about using the params... */\n\nimport { describe, expectTypeOf, it } from 'vitest';\nimport { doNothing } from './do-nothing';\nimport { funnel } from './funnel';\n\ndescribe('\\'call\\' method args', () => {\n it('no args', () => {\n const foo = funnel(doNothing(), {\n reducer: (_: 'test' | undefined) => 'test' as const,\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<[]>();\n });\n\n it('non-optional args', () => {\n const foo = funnel(doNothing(), {\n // @ts-expect-error [ts(6133)] -- We want to use explicit names, not prefixed with _\n reducer: (_: 'test' | undefined, a: string, b: number, c: boolean) =>\n 'test' as const,\n\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<\n [a: string, b: number, c: boolean]\n >();\n });\n\n it('optional args', () => {\n const foo = funnel(doNothing(), {\n // @ts-expect-error [ts(6133)] -- We want to use explicit names, not prefixed with _\n reducer: (_: 'test' | undefined, a?: string) => 'test' as const,\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<[a?: string | undefined]>();\n });\n\n it('rest args', () => {\n const foo = funnel(doNothing(), {\n reducer:\n // @ts-expect-error [ts(6133)] -- We want to use explicit names, not prefixed with _\n (_: 'test' | undefined, ...as: Array<string>) => 'test' as const,\n\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<Array<string>>();\n });\n});\n\ndescribe('derive the reducer accumulator type from the executor param', () => {\n it('simple types', () => {\n funnel(\n (_: number) => {\n // do nothing\n },\n {\n reducer: (reduced) => {\n expectTypeOf(reduced).toEqualTypeOf<number | undefined>();\n\n return reduced!;\n },\n triggerAt: 'start',\n },\n );\n });\n\n it('arrays', () => {\n funnel(\n (_: ReadonlyArray<number>) => {\n // do nothing,\n },\n {\n reducer: (reduced) => {\n expectTypeOf(reduced).toEqualTypeOf<\n ReadonlyArray<number> | undefined\n >();\n\n return reduced!;\n },\n triggerAt: 'start',\n },\n );\n });\n\n it('objects', () => {\n funnel(\n (_: { readonly a: number }) => {\n // do nothing\n },\n {\n reducer: (reduced) => {\n expectTypeOf(reduced).toEqualTypeOf<\n { readonly a: number } | undefined\n >();\n\n return reduced!;\n },\n triggerAt: 'start',\n },\n );\n });\n});\n\ndescribe('prevent bad options', () => {\n it('minGapMs cannot be the only option with timing: end', () => {\n funnel(\n doNothing(),\n // @ts-expect-error [ts(2345)] -- minGapMs cannot be set alone]\n { minGapMs: 100 },\n );\n\n funnel(\n doNothing(),\n // @ts-expect-error [ts(2345)] -- minGapMs cannot be set alone]\n { triggerAt: 'end', minGapMs: 100 },\n );\n\n // But it works with \"start\" and \"both\"\n\n funnel(doNothing(), { triggerAt: 'start', minGapMs: 100 });\n funnel(doNothing(), { triggerAt: 'both', minGapMs: 100 });\n });\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"funnel.test-d.js","names":[],"sources":["../src/funnel.test-d.ts"],"sourcesContent":["/* eslint-disable ts/no-unused-vars -- We just want to build types, we don't care about using the params... */\n\nimport { describe, expectTypeOf, it } from 'vitest';\nimport { doNothing } from './do-nothing';\nimport { funnel } from './funnel';\n\ndescribe('\\'call\\' method args', () => {\n it('no args', () => {\n const foo = funnel(doNothing(), {\n reducer: (_: 'test' | undefined) => 'test' as const,\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<[]>();\n });\n\n it('non-optional args', () => {\n const foo = funnel(doNothing(), {\n // @ts-expect-error [ts(6133)] -- We want to use explicit names, not prefixed with _\n reducer: (_: 'test' | undefined, a: string, b: number, c: boolean) =>\n 'test' as const,\n\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<\n [a: string, b: number, c: boolean]\n >();\n });\n\n it('optional args', () => {\n const foo = funnel(doNothing(), {\n // @ts-expect-error [ts(6133)] -- We want to use explicit names, not prefixed with _\n reducer: (_: 'test' | undefined, a?: string) => 'test' as const,\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<[a?: string | undefined]>();\n });\n\n it('rest args', () => {\n const foo = funnel(doNothing(), {\n reducer:\n // @ts-expect-error [ts(6133)] -- We want to use explicit names, not prefixed with _\n (_: 'test' | undefined, ...as: Array<string>) => 'test' as const,\n\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<Array<string>>();\n });\n});\n\ndescribe('derive the reducer accumulator type from the executor param', () => {\n it('simple types', () => {\n funnel(\n (_: number) => {\n // do nothing\n },\n {\n reducer: (reduced) => {\n expectTypeOf(reduced).toEqualTypeOf<number | undefined>();\n\n return reduced!;\n },\n triggerAt: 'start',\n },\n );\n });\n\n it('arrays', () => {\n funnel(\n (_: ReadonlyArray<number>) => {\n // do nothing,\n },\n {\n reducer: (reduced) => {\n expectTypeOf(reduced).toEqualTypeOf<\n ReadonlyArray<number> | undefined\n >();\n\n return reduced!;\n },\n triggerAt: 'start',\n },\n );\n });\n\n it('objects', () => {\n funnel(\n (_: { readonly a: number }) => {\n // do nothing\n },\n {\n reducer: (reduced) => {\n expectTypeOf(reduced).toEqualTypeOf<\n { readonly a: number } | undefined\n >();\n\n return reduced!;\n },\n triggerAt: 'start',\n },\n );\n });\n});\n\ndescribe('prevent bad options', () => {\n it('minGapMs cannot be the only option with timing: end', () => {\n funnel(\n doNothing(),\n // @ts-expect-error [ts(2345)] -- minGapMs cannot be set alone]\n { minGapMs: 100 },\n );\n\n funnel(\n doNothing(),\n // @ts-expect-error [ts(2345)] -- minGapMs cannot be set alone]\n { triggerAt: 'end', minGapMs: 100 },\n );\n\n // But it works with \"start\" and \"both\"\n\n funnel(doNothing(), { triggerAt: 'start', minGapMs: 100 });\n funnel(doNothing(), { triggerAt: 'both', minGapMs: 100 });\n });\n});\n"],"mappings":"sIAMA,EAAS,yBAA8B,CACrC,EAAG,cAAiB,CAMlB,EALY,EAAO,GAAW,CAAE,CAC9B,QAAU,GAA0B,OACpC,UAAW,QACZ,CAAC,CAEe,KAAK,CAAC,WAAW,eAAmB,EACrD,CAEF,EAAG,wBAA2B,CAS5B,EARY,EAAO,GAAW,CAAE,CAE9B,SAAU,EAAuB,EAAW,EAAW,IACrD,OAEF,UAAW,QACZ,CAAC,CAEe,KAAK,CAAC,WAAW,eAE/B,EACH,CAEF,EAAG,oBAAuB,CAOxB,EANY,EAAO,GAAW,CAAE,CAE9B,SAAU,EAAuB,IAAe,OAChD,UAAW,QACZ,CAAC,CAEe,KAAK,CAAC,WAAW,eAAyC,EAC3E,CAEF,EAAG,gBAAmB,CASpB,EARY,EAAO,GAAW,CAAE,CAC9B,SAEG,EAAuB,GAAG,IAAsB,OAEnD,UAAW,QACZ,CAAC,CAEe,KAAK,CAAC,WAAW,eAA8B,EAChE,EACF,CAEF,EAAS,kEAAqE,CAC5E,EAAG,mBAAsB,CACvB,EACG,GAAc,GAGf,CACE,QAAU,IACR,EAAa,EAAQ,CAAC,eAAmC,CAElD,GAET,UAAW,QACZ,CACF,EACD,CAEF,EAAG,aAAgB,CACjB,EACG,GAA6B,GAG9B,CACE,QAAU,IACR,EAAa,EAAQ,CAAC,eAEnB,CAEI,GAET,UAAW,QACZ,CACF,EACD,CAEF,EAAG,cAAiB,CAClB,EACG,GAA8B,GAG/B,CACE,QAAU,IACR,EAAa,EAAQ,CAAC,eAEnB,CAEI,GAET,UAAW,QACZ,CACF,EACD,EACF,CAEF,EAAS,0BAA6B,CACpC,EAAG,0DAA6D,CAC9D,EACE,GAAW,CAEX,CAAE,SAAU,IAAK,CAClB,CAED,EACE,GAAW,CAEX,CAAE,UAAW,MAAO,SAAU,IAAK,CACpC,CAID,EAAO,GAAW,CAAE,CAAE,UAAW,QAAS,SAAU,IAAK,CAAC,CAC1D,EAAO,GAAW,CAAE,CAAE,UAAW,OAAQ,SAAU,IAAK,CAAC,EACzD,EACF"}
|
package/dist/funnel.test.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./dist-gvJoKj_M.cjs`),t=require(`./constant-BuIJ9GIn.cjs`),n=require(`./do-nothing-Cc1faYu6.cjs`),r=require(`./funnel-CL-QFpGk.cjs`),i=require(`./sleep-1rGV3wAg.cjs`),a=16;function o(e,t){return e===void 0?[t]:[...e,t]}e.describe(`reducer behavior`,()=>{e.it(`passes the reduced arg to the executor`,()=>{let n=e.vi.fn();r.funnel(n,{reducer:t.constant(`hello world`),triggerAt:`start`,minQuietPeriodMs:16}).call(),e.globalExpect(n).toHaveBeenCalledTimes(1),e.globalExpect(n).toHaveBeenLastCalledWith(`hello world`)}),e.it(`reduces call args`,async()=>{let t=e.vi.fn(e=>{}),n=r.funnel(t,{reducer:(e,t)=>(e??0)+t,minQuietPeriodMs:32,triggerAt:`end`});n.call(1),n.call(2),n.call(3),await i.sleep(16),n.call(4),n.call(5),n.call(6),await i.sleep(32),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith(21)}),e.it(`does not invoke if reduceArgs returns undefined`,async()=>{let n=e.vi.fn();r.funnel(n,{reducer:t.constant(void 0),triggerAt:`end`,minQuietPeriodMs:16}).call(),await i.sleep(32),e.globalExpect(n).toHaveBeenCalledTimes(0)}),e.it(`supports multiple arguments`,()=>{let t=e.vi.fn();r.funnel(t,{reducer:(e,t,n,r)=>[e,t,n,r],triggerAt:`start`,minQuietPeriodMs:16}).call(1,`a`,!0),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([void 0,1,`a`,!0])}),e.it(`reducer isn't called again when 'invokedAt: start'`,async()=>{let t=e.vi.fn(o),a=r.funnel(n.doNothing(),{reducer:t,triggerAt:`start`,minQuietPeriodMs:16});a.call(`a`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith(void 0,`a`),a.call(`b`),a.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(32),e.globalExpect(t).toHaveBeenCalledTimes(1)})}),e.describe(`non-trivial (>0ms) timer duration`,()=>{e.describe(`delay timer`,()=>{e.it(`invokedAt: start`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1),n.call(`d`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`d`])}),e.it(`invokedAt: both`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(2),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(3),e.globalExpect(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.it(`invocations in the middle of a window`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(.75*16),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(.75*16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])})}),e.describe(`burst timer`,()=>{e.it(`invokedAt: start`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1),n.call(`d`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`d`])}),e.it(`invokedAt: both`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(3),e.globalExpect(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(4),e.globalExpect(t).toHaveBeenLastCalledWith([`e`,`f`])}),e.it(`invokedAt: end`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(0),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),n.call(`e`),n.call(`f`),n.call(`g`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`e`,`f`,`g`])}),e.it(`invocations in the middle of a window`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(0),await i.sleep(.9*16),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(0),await i.sleep(.1*16),e.globalExpect(t).toHaveBeenCalledTimes(0),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`,`b`,`c`,`d`,`e`,`f`])}),e.it(`maxBurstDurationMs limits the burst duration`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,minQuietPeriodMs:16,maxBurstDurationMs:32,triggerAt:`end`});n.call(`a`),await i.sleep(.75*16),n.call(`b`),await i.sleep(.75*16),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(0),await i.sleep(.75*16),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),e.describe(`both timers`,()=>{e.it(`delay is longer than burst`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,minGapMs:32,minQuietPeriodMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e.it(`burst is longer than delay`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,minGapMs:16,minQuietPeriodMs:32,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e.it(`burst and delay are equal`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,minGapMs:16,minQuietPeriodMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(3),e.globalExpect(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.it(`delay and maxBurstDurationMs are equal`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,minGapMs:16,minQuietPeriodMs:32,maxBurstDurationMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(3),e.globalExpect(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])})})}),e.describe(`immediate (===0) timer durations`,()=>{e.describe(`delay timer`,()=>{e.it(`invokedAt: start`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minGapMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(2)}),e.it(`invokedAt: both`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(3),e.globalExpect(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.it(`with a non-trivial burst timer`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:16});n.call(`a`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),n.call(`b`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`])})}),e.describe(`burst timer`,()=>{e.it(`invokedAt: start`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(2)}),e.it(`invokedAt: both`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(3),e.globalExpect(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(4),e.globalExpect(t).toHaveBeenLastCalledWith([`e`,`f`])}),e.it(`invokedAt: end`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(0),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.it(`with a non-trivial delay timer`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:16,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`])}),e.it(`burst timer with non-trivial maxBurstDuration`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,minQuietPeriodMs:0,maxBurstDurationMs:16,triggerAt:`end`});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(0),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),e.it(`both timers`,async()=>{let t=e.vi.fn();r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0}).call(`a`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(1)}),e.it(`maxBurstDurationMs = 0 limits the burst immediately`,async()=>{let t=e.vi.fn();r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16,maxBurstDurationMs:0}).call(`a`),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`])}),e.it(`all timeouts zero`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0,maxBurstDurationMs:0});n.call(`a`),n.call(`b`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`])})}),e.describe(`default minQuietPeriodMs === 0 when minGapMs is not defined`,()=>{e.it(`invokedAt: start`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`});n.call(`a`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),n.call(`b`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(1),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`c`])}),e.it(`invokedAt: both`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`});n.call(`a`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),n.call(`b`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`]),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(3),e.globalExpect(t).toHaveBeenLastCalledWith([`c`])})}),e.describe(`utility functions`,()=>{e.describe(`flush`,()=>{e.it(`flush triggers an immediate invocation`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),n.flush(),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1)}),e.it(`flush during active burst`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:32});n.call(`a`),n.call(`b`),n.call(`c`),await i.sleep(16),n.flush(),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await i.sleep(32),e.globalExpect(t).toHaveBeenCalledTimes(1)})}),e.describe(`cancel`,()=>{e.it(`cancel prevents invocation`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),n.cancel(),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(0)}),e.it(`cancel during delay period`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minGapMs:32});n.call(`a`),n.call(`b`),await i.sleep(16),n.cancel(),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1)})}),e.describe(`isIdle`,()=>{e.it(`isIdle reflects the funnel's state`,()=>{let t=r.funnel(e.vi.fn(),{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});e.globalExpect(t.isIdle).toBe(!0),t.call(`a`),e.globalExpect(t.isIdle).toBe(!1),t.cancel(),e.globalExpect(t.isIdle).toBe(!0)}),e.it(`isIdle works when burst duration is 0`,async()=>{let t=r.funnel(e.vi.fn(),{reducer:o,triggerAt:`end`,minQuietPeriodMs:0});e.globalExpect(t.isIdle).toBe(!0),t.call(`a`),t.call(`b`),t.call(`c`),e.globalExpect(t.isIdle).toBe(!1),await i.sleep(0),e.globalExpect(t.isIdle).toBe(!0)})})}),e.describe(`edge-cases`,()=>{e.it(`bursts that start late don't prevent delayed invocations`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:16,minGapMs:32});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(1.5*16),e.globalExpect(t).toHaveBeenCalledTimes(1),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(.5*16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e.it(`delay timeouts don't cause an invocation in the middle of bursts`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:32,minGapMs:16});n.call(`a`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`b`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),n.call(`d`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2)})});
|
|
1
|
+
const e=require(`./dist-CiyBKPT6.cjs`),t=require(`./constant.cjs`),n=require(`./do-nothing.cjs`),r=require(`./funnel.cjs`),i=require(`./sleep.cjs`),a=16;function o(e,t){return e===void 0?[t]:[...e,t]}e.i(`reducer behavior`,()=>{e.a(`passes the reduced arg to the executor`,()=>{let n=e.r.fn();r.funnel(n,{reducer:t.constant(`hello world`),triggerAt:`start`,minQuietPeriodMs:16}).call(),e.n(n).toHaveBeenCalledTimes(1),e.n(n).toHaveBeenLastCalledWith(`hello world`)}),e.a(`reduces call args`,async()=>{let t=e.r.fn(e=>{}),n=r.funnel(t,{reducer:(e,t)=>(e??0)+t,minQuietPeriodMs:32,triggerAt:`end`});n.call(1),n.call(2),n.call(3),await i.sleep(16),n.call(4),n.call(5),n.call(6),await i.sleep(32),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith(21)}),e.a(`does not invoke if reduceArgs returns undefined`,async()=>{let n=e.r.fn();r.funnel(n,{reducer:t.constant(void 0),triggerAt:`end`,minQuietPeriodMs:16}).call(),await i.sleep(32),e.n(n).toHaveBeenCalledTimes(0)}),e.a(`supports multiple arguments`,()=>{let t=e.r.fn();r.funnel(t,{reducer:(e,t,n,r)=>[e,t,n,r],triggerAt:`start`,minQuietPeriodMs:16}).call(1,`a`,!0),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([void 0,1,`a`,!0])}),e.a(`reducer isn't called again when 'invokedAt: start'`,async()=>{let t=e.r.fn(o),a=r.funnel(n.doNothing(),{reducer:t,triggerAt:`start`,minQuietPeriodMs:16});a.call(`a`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith(void 0,`a`),a.call(`b`),a.call(`c`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(32),e.n(t).toHaveBeenCalledTimes(1)})}),e.i(`non-trivial (>0ms) timer duration`,()=>{e.i(`delay timer`,()=>{e.a(`invokedAt: start`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1),n.call(`d`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`d`])}),e.a(`invokedAt: both`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(2),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(3),e.n(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.a(`invocations in the middle of a window`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(.75*16),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(.75*16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])})}),e.i(`burst timer`,()=>{e.a(`invokedAt: start`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1),n.call(`d`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`d`])}),e.a(`invokedAt: both`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(3),e.n(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(4),e.n(t).toHaveBeenLastCalledWith([`e`,`f`])}),e.a(`invokedAt: end`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(0),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),n.call(`e`),n.call(`f`),n.call(`g`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`e`,`f`,`g`])}),e.a(`invocations in the middle of a window`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(0),await i.sleep(.9*16),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(0),await i.sleep(.1*16),e.n(t).toHaveBeenCalledTimes(0),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`,`b`,`c`,`d`,`e`,`f`])}),e.a(`maxBurstDurationMs limits the burst duration`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,minQuietPeriodMs:16,maxBurstDurationMs:32,triggerAt:`end`});n.call(`a`),await i.sleep(.75*16),n.call(`b`),await i.sleep(.75*16),n.call(`c`),e.n(t).toHaveBeenCalledTimes(0),await i.sleep(.75*16),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),e.i(`both timers`,()=>{e.a(`delay is longer than burst`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,minGapMs:32,minQuietPeriodMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e.a(`burst is longer than delay`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,minGapMs:16,minQuietPeriodMs:32,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e.a(`burst and delay are equal`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,minGapMs:16,minQuietPeriodMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(3),e.n(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.a(`delay and maxBurstDurationMs are equal`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,minGapMs:16,minQuietPeriodMs:32,maxBurstDurationMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(3),e.n(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])})})}),e.i(`immediate (===0) timer durations`,()=>{e.i(`delay timer`,()=>{e.a(`invokedAt: start`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minGapMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(2)}),e.a(`invokedAt: both`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(3),e.n(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.a(`with a non-trivial burst timer`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:16});n.call(`a`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),n.call(`b`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`])})}),e.i(`burst timer`,()=>{e.a(`invokedAt: start`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(2)}),e.a(`invokedAt: both`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(3),e.n(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(4),e.n(t).toHaveBeenLastCalledWith([`e`,`f`])}),e.a(`invokedAt: end`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(0),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.a(`with a non-trivial delay timer`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:16,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`])}),e.a(`burst timer with non-trivial maxBurstDuration`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,minQuietPeriodMs:0,maxBurstDurationMs:16,triggerAt:`end`});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(0),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),e.a(`both timers`,async()=>{let t=e.r.fn();r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0}).call(`a`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(1)}),e.a(`maxBurstDurationMs = 0 limits the burst immediately`,async()=>{let t=e.r.fn();r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16,maxBurstDurationMs:0}).call(`a`),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`])}),e.a(`all timeouts zero`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0,maxBurstDurationMs:0});n.call(`a`),n.call(`b`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`])})}),e.i(`default minQuietPeriodMs === 0 when minGapMs is not defined`,()=>{e.a(`invokedAt: start`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`});n.call(`a`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),n.call(`b`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(1),n.call(`c`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`c`])}),e.a(`invokedAt: both`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`});n.call(`a`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),n.call(`b`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`]),n.call(`c`),e.n(t).toHaveBeenCalledTimes(3),e.n(t).toHaveBeenLastCalledWith([`c`])})}),e.i(`utility functions`,()=>{e.i(`flush`,()=>{e.a(`flush triggers an immediate invocation`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),n.flush(),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1)}),e.a(`flush during active burst`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:32});n.call(`a`),n.call(`b`),n.call(`c`),await i.sleep(16),n.flush(),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await i.sleep(32),e.n(t).toHaveBeenCalledTimes(1)})}),e.i(`cancel`,()=>{e.a(`cancel prevents invocation`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),n.cancel(),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(0)}),e.a(`cancel during delay period`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minGapMs:32});n.call(`a`),n.call(`b`),await i.sleep(16),n.cancel(),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1)})}),e.i(`isIdle`,()=>{e.a(`isIdle reflects the funnel's state`,()=>{let t=r.funnel(e.r.fn(),{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});e.n(t.isIdle).toBe(!0),t.call(`a`),e.n(t.isIdle).toBe(!1),t.cancel(),e.n(t.isIdle).toBe(!0)}),e.a(`isIdle works when burst duration is 0`,async()=>{let t=r.funnel(e.r.fn(),{reducer:o,triggerAt:`end`,minQuietPeriodMs:0});e.n(t.isIdle).toBe(!0),t.call(`a`),t.call(`b`),t.call(`c`),e.n(t.isIdle).toBe(!1),await i.sleep(0),e.n(t.isIdle).toBe(!0)})})}),e.i(`edge-cases`,()=>{e.a(`bursts that start late don't prevent delayed invocations`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:16,minGapMs:32});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(1.5*16),e.n(t).toHaveBeenCalledTimes(1),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(.5*16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e.a(`delay timeouts don't cause an invocation in the middle of bursts`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:32,minGapMs:16});n.call(`a`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`b`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),n.call(`d`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2)})});
|
package/dist/funnel.test.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{describe as e,globalExpect as t,it as n,vi as r}from"./dist-BQGZfjDS.js";import{constant as i}from"./constant-DrpDXHc7.js";import{doNothing as a}from"./do-nothing-Be29JGDG.js";import{funnel as o}from"./funnel-CEbURcmp.js";import{sleep as s}from"./sleep-DvzRMgY-.js";function c(e,t){return e===void 0?[t]:[...e,t]}e(`reducer behavior`,()=>{n(`passes the reduced arg to the executor`,()=>{let e=r.fn();o(e,{reducer:i(`hello world`),triggerAt:`start`,minQuietPeriodMs:16}).call(),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith(`hello world`)}),n(`reduces call args`,async()=>{let e=r.fn(e=>{}),n=o(e,{reducer:(e,t)=>(e??0)+t,minQuietPeriodMs:32,triggerAt:`end`});n.call(1),n.call(2),n.call(3),await s(16),n.call(4),n.call(5),n.call(6),await s(32),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith(21)}),n(`does not invoke if reduceArgs returns undefined`,async()=>{let e=r.fn();o(e,{reducer:i(void 0),triggerAt:`end`,minQuietPeriodMs:16}).call(),await s(32),t(e).toHaveBeenCalledTimes(0)}),n(`supports multiple arguments`,()=>{let e=r.fn();o(e,{reducer:(e,t,n,r)=>[e,t,n,r],triggerAt:`start`,minQuietPeriodMs:16}).call(1,`a`,!0),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([void 0,1,`a`,!0])}),n(`reducer isn't called again when 'invokedAt: start'`,async()=>{let e=r.fn(c),n=o(a(),{reducer:e,triggerAt:`start`,minQuietPeriodMs:16});n.call(`a`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith(void 0,`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),await s(32),t(e).toHaveBeenCalledTimes(1)})}),e(`non-trivial (>0ms) timer duration`,()=>{e(`delay timer`,()=>{n(`invokedAt: start`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`start`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),t(e).toHaveBeenCalledTimes(1),n.call(`d`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`d`])}),n(`invokedAt: both`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(2),await s(16),t(e).toHaveBeenCalledTimes(3),t(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),n(`invocations in the middle of a window`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(.75*16),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(1),await s(.75*16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])})}),e(`burst timer`,()=>{n(`invokedAt: start`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`start`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),t(e).toHaveBeenCalledTimes(1),n.call(`d`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`d`])}),n(`invokedAt: both`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(3),t(e).toHaveBeenLastCalledWith([`d`]),await s(16),t(e).toHaveBeenCalledTimes(4),t(e).toHaveBeenLastCalledWith([`e`,`f`])}),n(`invokedAt: end`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(0),await s(16),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),n.call(`e`),n.call(`f`),n.call(`g`),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`e`,`f`,`g`])}),n(`invocations in the middle of a window`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(0),await s(.9*16),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(0),await s(.1*16),t(e).toHaveBeenCalledTimes(0),await s(16),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`,`b`,`c`,`d`,`e`,`f`])}),n(`maxBurstDurationMs limits the burst duration`,async()=>{let e=r.fn(),n=o(e,{reducer:c,minQuietPeriodMs:16,maxBurstDurationMs:32,triggerAt:`end`});n.call(`a`),await s(.75*16),n.call(`b`),await s(.75*16),n.call(`c`),t(e).toHaveBeenCalledTimes(0),await s(.75*16),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),e(`both timers`,()=>{n(`delay is longer than burst`,async()=>{let e=r.fn(),n=o(e,{reducer:c,minGapMs:32,minQuietPeriodMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),n(`burst is longer than delay`,async()=>{let e=r.fn(),n=o(e,{reducer:c,minGapMs:16,minQuietPeriodMs:32,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),n(`burst and delay are equal`,async()=>{let e=r.fn(),n=o(e,{reducer:c,minGapMs:16,minQuietPeriodMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`]),await s(16),t(e).toHaveBeenCalledTimes(3),t(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),n(`delay and maxBurstDurationMs are equal`,async()=>{let e=r.fn(),n=o(e,{reducer:c,minGapMs:16,minQuietPeriodMs:32,maxBurstDurationMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`]),await s(16),t(e).toHaveBeenCalledTimes(3),t(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])})})}),e(`immediate (===0) timer durations`,()=>{e(`delay timer`,()=>{n(`invokedAt: start`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`start`,minGapMs:0});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(0),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`d`]),await s(0),t(e).toHaveBeenCalledTimes(2)}),n(`invokedAt: both`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minGapMs:0});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(0),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`]),await s(0),t(e).toHaveBeenCalledTimes(3),t(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),n(`with a non-trivial burst timer`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:16});n.call(`a`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),n.call(`b`),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`])})}),e(`burst timer`,()=>{n(`invokedAt: start`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`start`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(0),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`d`]),await s(0),t(e).toHaveBeenCalledTimes(2)}),n(`invokedAt: both`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(0),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(3),t(e).toHaveBeenLastCalledWith([`d`]),await s(0),t(e).toHaveBeenCalledTimes(4),t(e).toHaveBeenLastCalledWith([`e`,`f`])}),n(`invokedAt: end`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(0),await s(0),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(1),await s(0),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),n(`with a non-trivial delay timer`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minGapMs:16,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(0),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`])}),n(`burst timer with non-trivial maxBurstDuration`,async()=>{let e=r.fn(),n=o(e,{reducer:c,minQuietPeriodMs:0,maxBurstDurationMs:16,triggerAt:`end`});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(0),await s(0),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),n(`both timers`,async()=>{let e=r.fn();o(e,{reducer:c,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0}).call(`a`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(0),t(e).toHaveBeenCalledTimes(1)}),n(`maxBurstDurationMs = 0 limits the burst immediately`,async()=>{let e=r.fn();o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16,maxBurstDurationMs:0}).call(`a`),await s(0),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`])}),n(`all timeouts zero`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0,maxBurstDurationMs:0});n.call(`a`),n.call(`b`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(0),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`])})}),e(`default minQuietPeriodMs === 0 when minGapMs is not defined`,()=>{n(`invokedAt: start`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`start`});n.call(`a`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),n.call(`b`),t(e).toHaveBeenCalledTimes(1),await s(0),t(e).toHaveBeenCalledTimes(1),n.call(`c`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`c`])}),n(`invokedAt: both`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`});n.call(`a`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),n.call(`b`),t(e).toHaveBeenCalledTimes(1),await s(0),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`]),n.call(`c`),t(e).toHaveBeenCalledTimes(3),t(e).toHaveBeenLastCalledWith([`c`])})}),e(`utility functions`,()=>{e(`flush`,()=>{n(`flush triggers an immediate invocation`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),n.flush(),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await s(16),t(e).toHaveBeenCalledTimes(1)}),n(`flush during active burst`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:32});n.call(`a`),n.call(`b`),n.call(`c`),await s(16),n.flush(),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await s(32),t(e).toHaveBeenCalledTimes(1)})}),e(`cancel`,()=>{n(`cancel prevents invocation`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),n.cancel(),await s(16),t(e).toHaveBeenCalledTimes(0)}),n(`cancel during delay period`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`start`,minGapMs:32});n.call(`a`),n.call(`b`),await s(16),n.cancel(),await s(16),t(e).toHaveBeenCalledTimes(1)})}),e(`isIdle`,()=>{n(`isIdle reflects the funnel's state`,()=>{let e=o(r.fn(),{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});t(e.isIdle).toBe(!0),e.call(`a`),t(e.isIdle).toBe(!1),e.cancel(),t(e.isIdle).toBe(!0)}),n(`isIdle works when burst duration is 0`,async()=>{let e=o(r.fn(),{reducer:c,triggerAt:`end`,minQuietPeriodMs:0});t(e.isIdle).toBe(!0),e.call(`a`),e.call(`b`),e.call(`c`),t(e.isIdle).toBe(!1),await s(0),t(e.isIdle).toBe(!0)})})}),e(`edge-cases`,()=>{n(`bursts that start late don't prevent delayed invocations`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:16,minGapMs:32});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(1.5*16),t(e).toHaveBeenCalledTimes(1),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(1),await s(.5*16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),n(`delay timeouts don't cause an invocation in the middle of bursts`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:32,minGapMs:16});n.call(`a`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),n.call(`b`),t(e).toHaveBeenCalledTimes(1),await s(16),n.call(`c`),t(e).toHaveBeenCalledTimes(1),await s(16),n.call(`d`),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(2)})});
|
|
1
|
+
import{a as e,i as t,n,r}from"./dist-CUT1dnRU.js";import{constant as i}from"./constant.js";import{doNothing as a}from"./do-nothing.js";import{funnel as o}from"./funnel.js";import{sleep as s}from"./sleep.js";function c(e,t){return e===void 0?[t]:[...e,t]}t(`reducer behavior`,()=>{e(`passes the reduced arg to the executor`,()=>{let e=r.fn();o(e,{reducer:i(`hello world`),triggerAt:`start`,minQuietPeriodMs:16}).call(),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith(`hello world`)}),e(`reduces call args`,async()=>{let e=r.fn(e=>{}),t=o(e,{reducer:(e,t)=>(e??0)+t,minQuietPeriodMs:32,triggerAt:`end`});t.call(1),t.call(2),t.call(3),await s(16),t.call(4),t.call(5),t.call(6),await s(32),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith(21)}),e(`does not invoke if reduceArgs returns undefined`,async()=>{let e=r.fn();o(e,{reducer:i(void 0),triggerAt:`end`,minQuietPeriodMs:16}).call(),await s(32),n(e).toHaveBeenCalledTimes(0)}),e(`supports multiple arguments`,()=>{let e=r.fn();o(e,{reducer:(e,t,n,r)=>[e,t,n,r],triggerAt:`start`,minQuietPeriodMs:16}).call(1,`a`,!0),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([void 0,1,`a`,!0])}),e(`reducer isn't called again when 'invokedAt: start'`,async()=>{let e=r.fn(c),t=o(a(),{reducer:e,triggerAt:`start`,minQuietPeriodMs:16});t.call(`a`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith(void 0,`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),await s(32),n(e).toHaveBeenCalledTimes(1)})}),t(`non-trivial (>0ms) timer duration`,()=>{t(`delay timer`,()=>{e(`invokedAt: start`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`start`,minGapMs:16});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(16),n(e).toHaveBeenCalledTimes(1),t.call(`d`),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`d`])}),e(`invokedAt: both`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`both`,minGapMs:16});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(16),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`b`,`c`]),t.call(`d`),t.call(`e`),t.call(`f`),n(e).toHaveBeenCalledTimes(2),await s(16),n(e).toHaveBeenCalledTimes(3),n(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e(`invocations in the middle of a window`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`both`,minGapMs:16});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(.75*16),t.call(`d`),t.call(`e`),t.call(`f`),n(e).toHaveBeenCalledTimes(1),await s(.75*16),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])})}),t(`burst timer`,()=>{e(`invokedAt: start`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`start`,minQuietPeriodMs:16});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(16),n(e).toHaveBeenCalledTimes(1),t.call(`d`),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`d`])}),e(`invokedAt: both`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:16});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(16),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`b`,`c`]),t.call(`d`),t.call(`e`),t.call(`f`),n(e).toHaveBeenCalledTimes(3),n(e).toHaveBeenLastCalledWith([`d`]),await s(16),n(e).toHaveBeenCalledTimes(4),n(e).toHaveBeenLastCalledWith([`e`,`f`])}),e(`invokedAt: end`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(0),await s(16),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),t.call(`e`),t.call(`f`),t.call(`g`),n(e).toHaveBeenCalledTimes(1),await s(16),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`e`,`f`,`g`])}),e(`invocations in the middle of a window`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(0),await s(.9*16),t.call(`d`),t.call(`e`),t.call(`f`),n(e).toHaveBeenCalledTimes(0),await s(.1*16),n(e).toHaveBeenCalledTimes(0),await s(16),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`,`b`,`c`,`d`,`e`,`f`])}),e(`maxBurstDurationMs limits the burst duration`,async()=>{let e=r.fn(),t=o(e,{reducer:c,minQuietPeriodMs:16,maxBurstDurationMs:32,triggerAt:`end`});t.call(`a`),await s(.75*16),t.call(`b`),await s(.75*16),t.call(`c`),n(e).toHaveBeenCalledTimes(0),await s(.75*16),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),t(`both timers`,()=>{e(`delay is longer than burst`,async()=>{let e=r.fn(),t=o(e,{reducer:c,minGapMs:32,minQuietPeriodMs:16,triggerAt:`both`});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(16),t.call(`d`),t.call(`e`),t.call(`f`),n(e).toHaveBeenCalledTimes(1),await s(16),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e(`burst is longer than delay`,async()=>{let e=r.fn(),t=o(e,{reducer:c,minGapMs:16,minQuietPeriodMs:32,triggerAt:`both`});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(16),t.call(`d`),t.call(`e`),t.call(`f`),n(e).toHaveBeenCalledTimes(1),await s(16),n(e).toHaveBeenCalledTimes(1),await s(16),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e(`burst and delay are equal`,async()=>{let e=r.fn(),t=o(e,{reducer:c,minGapMs:16,minQuietPeriodMs:16,triggerAt:`both`});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(16),t.call(`d`),t.call(`e`),t.call(`f`),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`b`,`c`]),await s(16),n(e).toHaveBeenCalledTimes(3),n(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e(`delay and maxBurstDurationMs are equal`,async()=>{let e=r.fn(),t=o(e,{reducer:c,minGapMs:16,minQuietPeriodMs:32,maxBurstDurationMs:16,triggerAt:`both`});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(16),t.call(`d`),t.call(`e`),t.call(`f`),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`b`,`c`]),await s(16),n(e).toHaveBeenCalledTimes(3),n(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])})})}),t(`immediate (===0) timer durations`,()=>{t(`delay timer`,()=>{e(`invokedAt: start`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`start`,minGapMs:0});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(0),t.call(`d`),t.call(`e`),t.call(`f`),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`d`]),await s(0),n(e).toHaveBeenCalledTimes(2)}),e(`invokedAt: both`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`both`,minGapMs:0});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(0),t.call(`d`),t.call(`e`),t.call(`f`),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`b`,`c`]),await s(0),n(e).toHaveBeenCalledTimes(3),n(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e(`with a non-trivial burst timer`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:16});t.call(`a`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),t.call(`b`),n(e).toHaveBeenCalledTimes(1),await s(16),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`b`])})}),t(`burst timer`,()=>{e(`invokedAt: start`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`start`,minQuietPeriodMs:0});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(0),t.call(`d`),t.call(`e`),t.call(`f`),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`d`]),await s(0),n(e).toHaveBeenCalledTimes(2)}),e(`invokedAt: both`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:0});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(0),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`b`,`c`]),t.call(`d`),t.call(`e`),t.call(`f`),n(e).toHaveBeenCalledTimes(3),n(e).toHaveBeenLastCalledWith([`d`]),await s(0),n(e).toHaveBeenCalledTimes(4),n(e).toHaveBeenLastCalledWith([`e`,`f`])}),e(`invokedAt: end`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:0});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(0),await s(0),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),t.call(`d`),t.call(`e`),t.call(`f`),n(e).toHaveBeenCalledTimes(1),await s(0),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e(`with a non-trivial delay timer`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`both`,minGapMs:16,minQuietPeriodMs:0});t.call(`a`),t.call(`b`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(0),n(e).toHaveBeenCalledTimes(1),await s(16),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`b`])}),e(`burst timer with non-trivial maxBurstDuration`,async()=>{let e=r.fn(),t=o(e,{reducer:c,minQuietPeriodMs:0,maxBurstDurationMs:16,triggerAt:`end`});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(0),await s(0),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),e(`both timers`,async()=>{let e=r.fn();o(e,{reducer:c,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0}).call(`a`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(0),n(e).toHaveBeenCalledTimes(1)}),e(`maxBurstDurationMs = 0 limits the burst immediately`,async()=>{let e=r.fn();o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16,maxBurstDurationMs:0}).call(`a`),await s(0),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`])}),e(`all timeouts zero`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0,maxBurstDurationMs:0});t.call(`a`),t.call(`b`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(0),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`b`])})}),t(`default minQuietPeriodMs === 0 when minGapMs is not defined`,()=>{e(`invokedAt: start`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`start`});t.call(`a`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),t.call(`b`),n(e).toHaveBeenCalledTimes(1),await s(0),n(e).toHaveBeenCalledTimes(1),t.call(`c`),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`c`])}),e(`invokedAt: both`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`both`});t.call(`a`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),t.call(`b`),n(e).toHaveBeenCalledTimes(1),await s(0),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`b`]),t.call(`c`),n(e).toHaveBeenCalledTimes(3),n(e).toHaveBeenLastCalledWith([`c`])})}),t(`utility functions`,()=>{t(`flush`,()=>{e(`flush triggers an immediate invocation`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});t.call(`a`),t.call(`b`),t.call(`c`),t.flush(),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await s(16),n(e).toHaveBeenCalledTimes(1)}),e(`flush during active burst`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:32});t.call(`a`),t.call(`b`),t.call(`c`),await s(16),t.flush(),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await s(32),n(e).toHaveBeenCalledTimes(1)})}),t(`cancel`,()=>{e(`cancel prevents invocation`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});t.call(`a`),t.call(`b`),t.call(`c`),t.cancel(),await s(16),n(e).toHaveBeenCalledTimes(0)}),e(`cancel during delay period`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`start`,minGapMs:32});t.call(`a`),t.call(`b`),await s(16),t.cancel(),await s(16),n(e).toHaveBeenCalledTimes(1)})}),t(`isIdle`,()=>{e(`isIdle reflects the funnel's state`,()=>{let e=o(r.fn(),{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});n(e.isIdle).toBe(!0),e.call(`a`),n(e.isIdle).toBe(!1),e.cancel(),n(e.isIdle).toBe(!0)}),e(`isIdle works when burst duration is 0`,async()=>{let e=o(r.fn(),{reducer:c,triggerAt:`end`,minQuietPeriodMs:0});n(e.isIdle).toBe(!0),e.call(`a`),e.call(`b`),e.call(`c`),n(e.isIdle).toBe(!1),await s(0),n(e.isIdle).toBe(!0)})})}),t(`edge-cases`,()=>{e(`bursts that start late don't prevent delayed invocations`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:16,minGapMs:32});t.call(`a`),t.call(`b`),t.call(`c`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(1.5*16),n(e).toHaveBeenCalledTimes(1),t.call(`d`),t.call(`e`),t.call(`f`),n(e).toHaveBeenCalledTimes(1),await s(.5*16),n(e).toHaveBeenCalledTimes(2),n(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e(`delay timeouts don't cause an invocation in the middle of bursts`,async()=>{let e=r.fn(),t=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:32,minGapMs:16});t.call(`a`),n(e).toHaveBeenCalledTimes(1),n(e).toHaveBeenLastCalledWith([`a`]),await s(16),t.call(`b`),n(e).toHaveBeenCalledTimes(1),await s(16),t.call(`c`),n(e).toHaveBeenCalledTimes(1),await s(16),t.call(`d`),n(e).toHaveBeenCalledTimes(1),await s(16),n(e).toHaveBeenCalledTimes(1),await s(16),n(e).toHaveBeenCalledTimes(2)})});
|
|
2
2
|
//# sourceMappingURL=funnel.test.js.map
|