@daiso-tech/core 0.0.1 → 0.1.1
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/.changeset/config.json +11 -11
- package/.gitattributes +5 -5
- package/.github/workflows/main.yaml +53 -53
- package/.github/workflows/release.yaml +31 -31
- package/.prettierignore +3 -3
- package/.prettierrc.json +3 -3
- package/.vscode/settings.json +45 -45
- package/CHANGELOG.md +13 -0
- package/LICENSE.md +193 -193
- package/dist/cjs/_module.js +19 -0
- package/dist/cjs/_module.js.map +1 -0
- package/dist/cjs/collection/_module.js +21 -0
- package/dist/cjs/collection/_module.js.map +1 -0
- package/dist/cjs/collection/_shared.js +28 -0
- package/dist/cjs/collection/_shared.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/_module.js +18 -0
- package/dist/cjs/collection/async-iterable-collection/_module.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-collection.js +678 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-collection.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/_module.js +52 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/_module.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-abort-iterable.js +25 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-abort-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-chunk-iterable.js +43 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-chunk-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-chunk-whilte-iterable.js +43 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-chunk-whilte-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-collapse-iterable.js +32 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-collapse-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-count-by-iterable.js +39 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-count-by-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-cross-join-iterable.js +43 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-cross-join-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-delay-iterable.js +19 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-delay-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-entries-iterable.js +24 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-entries-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-filter-iterable.js +32 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-filter-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-flat-map-iterable.js +30 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-flat-map-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-group-by-iterable.js +30 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-group-by-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-insert-after-iterable.js +43 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-insert-after-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-insert-before-iterable.js +43 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-insert-before-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-map-iterable.js +30 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-map-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-merge-iterable.js +27 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-merge-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-pad-end-iterable.js +34 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-pad-end-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-pad-start-iterable.js +34 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-pad-start-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-partion-iterable.js +45 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-partion-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-repeat-iterable.js +32 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-repeat-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-reverse-iterable.js +28 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-reverse-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-shuffle-iterable.js +25 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-shuffle-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-skip-iterable.js +33 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-skip-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-skip-until-iterable.js +41 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-skip-until-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-slice-iterable.js +36 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-slice-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-sliding-iterable.js +45 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-sliding-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-sort-iterable.js +16 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-sort-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-split-iterable.js +49 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-split-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-take-iterable.js +33 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-take-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-take-until-iterable.js +33 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-take-until-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-tap-iterable.js +27 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-tap-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-timeout-iterable.js +21 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-timeout-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-unique-iterable.js +35 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-unique-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-update-iterable.js +37 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-update-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-when-iterable.js +32 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-when-iterable.js.map +1 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-zip-iterable.js +37 -0
- package/dist/cjs/collection/async-iterable-collection/async-iterable-helpers/async-zip-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/_module.js +18 -0
- package/dist/cjs/collection/iterable-collection/_module.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-collection.js +758 -0
- package/dist/cjs/collection/iterable-collection/iterable-collection.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/_module.js +49 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/_module.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/chunk-iterable.js +43 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/chunk-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/chunk-whilte-iterable.js +43 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/chunk-whilte-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/collapse-iterable.js +32 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/collapse-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/count-by-iterable.js +39 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/count-by-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/cross-join-iterable.js +43 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/cross-join-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/entries-iterable.js +34 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/entries-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/filter-iterable.js +32 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/filter-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/flat-map-iterable.js +30 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/flat-map-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/group-by-iterable.js +40 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/group-by-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/insert-after-iterable.js +37 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/insert-after-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/insert-before-iterable.js +37 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/insert-before-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/map-iterable.js +30 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/map-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/merge-iterable.js +27 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/merge-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/pad-end-iterable.js +44 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/pad-end-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/pad-start-iterable.js +44 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/pad-start-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/partion-iterable.js +40 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/partion-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/repeat-iterable.js +32 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/repeat-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/reverse-iterable.js +38 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/reverse-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/shuffle-iterable.js +35 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/shuffle-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/skip-iterable.js +32 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/skip-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/skip-until-iterable.js +36 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/skip-until-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/slice-iterable.js +46 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/slice-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/sliding-iterable.js +45 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/sliding-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/sort-iterable.js +26 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/sort-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/split-iterable.js +49 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/split-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/take-iterable.js +32 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/take-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/take-until-iterable.js +33 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/take-until-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/tap-iterable.js +27 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/tap-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/unique-iterable.js +35 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/unique-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/update-iterable.js +37 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/update-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/when-iterable.js +32 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/when-iterable.js.map +1 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/zip-iterable.js +33 -0
- package/dist/cjs/collection/iterable-collection/iterable-helpers/zip-iterable.js.map +1 -0
- package/dist/cjs/collection/list-collection/_module.js +18 -0
- package/dist/cjs/collection/list-collection/_module.js.map +1 -0
- package/dist/cjs/collection/list-collection/list-collection.js +1264 -0
- package/dist/cjs/collection/list-collection/list-collection.js.map +1 -0
- package/dist/cjs/contracts/_module.js +18 -0
- package/dist/cjs/contracts/_module.js.map +1 -0
- package/dist/cjs/contracts/collection/_module.js +20 -0
- package/dist/cjs/contracts/collection/_module.js.map +1 -0
- package/dist/cjs/contracts/collection/_shared.js +39 -0
- package/dist/cjs/contracts/collection/_shared.js.map +1 -0
- package/dist/cjs/contracts/collection/async-collection.contract.js +3 -0
- package/dist/cjs/contracts/collection/async-collection.contract.js.map +1 -0
- package/dist/cjs/contracts/collection/collection.contract.js +3 -0
- package/dist/cjs/contracts/collection/collection.contract.js.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/_module.js +3 -0
- package/dist/esm/_module.js.map +1 -0
- package/dist/esm/collection/_module.js +5 -0
- package/dist/esm/collection/_module.js.map +1 -0
- package/dist/esm/collection/_shared.js +23 -0
- package/dist/esm/collection/_shared.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/_module.js +2 -0
- package/dist/esm/collection/async-iterable-collection/_module.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-collection.js +674 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-collection.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/_module.js +36 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/_module.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-abort-iterable.js +21 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-abort-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-chunk-iterable.js +39 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-chunk-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-chunk-whilte-iterable.js +39 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-chunk-whilte-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-collapse-iterable.js +28 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-collapse-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-count-by-iterable.js +35 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-count-by-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-cross-join-iterable.js +39 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-cross-join-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-delay-iterable.js +15 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-delay-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-entries-iterable.js +20 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-entries-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-filter-iterable.js +28 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-filter-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-flat-map-iterable.js +26 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-flat-map-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-group-by-iterable.js +26 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-group-by-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-insert-after-iterable.js +39 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-insert-after-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-insert-before-iterable.js +39 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-insert-before-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-map-iterable.js +26 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-map-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-merge-iterable.js +23 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-merge-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-pad-end-iterable.js +30 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-pad-end-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-pad-start-iterable.js +30 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-pad-start-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-partion-iterable.js +41 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-partion-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-repeat-iterable.js +28 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-repeat-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-reverse-iterable.js +24 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-reverse-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-shuffle-iterable.js +21 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-shuffle-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-skip-iterable.js +29 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-skip-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-skip-until-iterable.js +37 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-skip-until-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-slice-iterable.js +32 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-slice-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-sliding-iterable.js +41 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-sliding-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-sort-iterable.js +12 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-sort-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-split-iterable.js +45 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-split-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-take-iterable.js +29 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-take-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-take-until-iterable.js +29 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-take-until-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-tap-iterable.js +23 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-tap-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-timeout-iterable.js +17 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-timeout-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-unique-iterable.js +31 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-unique-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-update-iterable.js +33 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-update-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-when-iterable.js +28 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-when-iterable.js.map +1 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-zip-iterable.js +33 -0
- package/dist/esm/collection/async-iterable-collection/async-iterable-helpers/async-zip-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/_module.js +2 -0
- package/dist/esm/collection/iterable-collection/_module.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-collection.js +754 -0
- package/dist/esm/collection/iterable-collection/iterable-collection.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/_module.js +33 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/_module.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/chunk-iterable.js +39 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/chunk-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/chunk-whilte-iterable.js +39 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/chunk-whilte-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/collapse-iterable.js +28 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/collapse-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/count-by-iterable.js +35 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/count-by-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/cross-join-iterable.js +39 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/cross-join-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/entries-iterable.js +30 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/entries-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/filter-iterable.js +28 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/filter-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/flat-map-iterable.js +26 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/flat-map-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/group-by-iterable.js +36 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/group-by-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/insert-after-iterable.js +33 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/insert-after-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/insert-before-iterable.js +33 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/insert-before-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/map-iterable.js +26 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/map-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/merge-iterable.js +23 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/merge-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/pad-end-iterable.js +40 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/pad-end-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/pad-start-iterable.js +40 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/pad-start-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/partion-iterable.js +36 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/partion-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/repeat-iterable.js +28 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/repeat-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/reverse-iterable.js +34 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/reverse-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/shuffle-iterable.js +31 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/shuffle-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/skip-iterable.js +28 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/skip-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/skip-until-iterable.js +32 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/skip-until-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/slice-iterable.js +42 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/slice-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/sliding-iterable.js +41 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/sliding-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/sort-iterable.js +22 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/sort-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/split-iterable.js +45 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/split-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/take-iterable.js +28 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/take-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/take-until-iterable.js +29 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/take-until-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/tap-iterable.js +23 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/tap-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/unique-iterable.js +31 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/unique-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/update-iterable.js +33 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/update-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/when-iterable.js +28 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/when-iterable.js.map +1 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/zip-iterable.js +29 -0
- package/dist/esm/collection/iterable-collection/iterable-helpers/zip-iterable.js.map +1 -0
- package/dist/esm/collection/list-collection/_module.js +2 -0
- package/dist/esm/collection/list-collection/_module.js.map +1 -0
- package/dist/esm/collection/list-collection/list-collection.js +1260 -0
- package/dist/esm/collection/list-collection/list-collection.js.map +1 -0
- package/dist/esm/contracts/_module.js +2 -0
- package/dist/esm/contracts/_module.js.map +1 -0
- package/dist/esm/contracts/collection/_module.js +4 -0
- package/dist/esm/contracts/collection/_module.js.map +1 -0
- package/dist/esm/contracts/collection/_shared.js +31 -0
- package/dist/esm/contracts/collection/_shared.js.map +1 -0
- package/dist/esm/contracts/collection/async-collection.contract.js +1 -0
- package/dist/esm/contracts/collection/async-collection.contract.js.map +1 -0
- package/dist/esm/contracts/collection/collection.contract.js +1 -0
- package/dist/esm/contracts/collection/collection.contract.js.map +1 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/types/_module.d.ts +2 -0
- package/dist/types/collection/_module.d.ts +4 -0
- package/dist/types/collection/_shared.d.ts +16 -0
- package/dist/types/collection/async-iterable-collection/_module.d.ts +1 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-collection.d.ts +92 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/_module.d.ts +35 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-abort-iterable.d.ts +10 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-chunk-iterable.d.ts +11 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-chunk-whilte-iterable.d.ts +12 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-collapse-iterable.d.ts +9 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-count-by-iterable.d.ts +11 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-cross-join-iterable.d.ts +11 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-delay-iterable.d.ts +10 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-entries-iterable.d.ts +11 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-filter-iterable.d.ts +11 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-flat-map-iterable.d.ts +11 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-group-by-iterable.d.ts +12 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-insert-after-iterable.d.ts +12 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-insert-before-iterable.d.ts +12 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-map-iterable.d.ts +11 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-merge-iterable.d.ts +10 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-pad-end-iterable.d.ts +12 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-pad-start-iterable.d.ts +12 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-partion-iterable.d.ts +12 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-repeat-iterable.d.ts +11 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-reverse-iterable.d.ts +12 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-shuffle-iterable.d.ts +9 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-skip-iterable.d.ts +11 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-skip-until-iterable.d.ts +11 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-slice-iterable.d.ts +12 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-sliding-iterable.d.ts +12 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-sort-iterable.d.ts +10 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-split-iterable.d.ts +12 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-take-iterable.d.ts +11 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-take-until-iterable.d.ts +11 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-tap-iterable.d.ts +10 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-timeout-iterable.d.ts +10 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-unique-iterable.d.ts +11 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-update-iterable.d.ts +12 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-when-iterable.d.ts +11 -0
- package/dist/types/collection/async-iterable-collection/async-iterable-helpers/async-zip-iterable.d.ts +10 -0
- package/dist/types/collection/iterable-collection/_module.d.ts +1 -0
- package/dist/types/collection/iterable-collection/iterable-collection.d.ts +89 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/_module.d.ts +32 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/chunk-iterable.d.ts +8 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/chunk-whilte-iterable.d.ts +9 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/collapse-iterable.d.ts +6 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/count-by-iterable.d.ts +8 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/cross-join-iterable.d.ts +8 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/entries-iterable.d.ts +7 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/filter-iterable.d.ts +8 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/flat-map-iterable.d.ts +8 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/group-by-iterable.d.ts +9 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/insert-after-iterable.d.ts +9 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/insert-before-iterable.d.ts +9 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/map-iterable.d.ts +8 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/merge-iterable.d.ts +6 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/pad-end-iterable.d.ts +9 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/pad-start-iterable.d.ts +9 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/partion-iterable.d.ts +9 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/repeat-iterable.d.ts +8 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/reverse-iterable.d.ts +9 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/shuffle-iterable.d.ts +5 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/skip-iterable.d.ts +8 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/skip-until-iterable.d.ts +8 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/slice-iterable.d.ts +9 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/sliding-iterable.d.ts +9 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/sort-iterable.d.ts +7 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/split-iterable.d.ts +9 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/take-iterable.d.ts +8 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/take-until-iterable.d.ts +8 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/tap-iterable.d.ts +7 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/unique-iterable.d.ts +8 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/update-iterable.d.ts +9 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/when-iterable.d.ts +8 -0
- package/dist/types/collection/iterable-collection/iterable-helpers/zip-iterable.d.ts +7 -0
- package/dist/types/collection/list-collection/_module.d.ts +1 -0
- package/dist/types/collection/list-collection/list-collection.d.ts +86 -0
- package/dist/types/contracts/_module.d.ts +1 -0
- package/dist/types/contracts/collection/_module.d.ts +3 -0
- package/dist/types/contracts/collection/_shared.d.ts +259 -0
- package/dist/types/contracts/collection/async-collection.contract.d.ts +731 -0
- package/dist/types/contracts/collection/collection.contract.d.ts +723 -0
- package/dist/types/types.d.ts +1 -0
- package/package.json +45 -47
- package/.changeset/sweet-peas-beg.md +0 -5
|
@@ -0,0 +1,758 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IterableCollection = void 0;
|
|
4
|
+
const _module_1 = require("../../contracts/collection/_module");
|
|
5
|
+
const _module_2 = require("../../collection/iterable-collection/iterable-helpers/_module");
|
|
6
|
+
class IterableCollection {
|
|
7
|
+
iterable;
|
|
8
|
+
static THROW_ON_NUMBER_LIMIT = false;
|
|
9
|
+
static DEFAULT_CHUNK_SIZE = 1024;
|
|
10
|
+
static makeCollection = (iterable) => {
|
|
11
|
+
return new IterableCollection(iterable);
|
|
12
|
+
};
|
|
13
|
+
constructor(iterable) {
|
|
14
|
+
this.iterable = iterable;
|
|
15
|
+
}
|
|
16
|
+
*[Symbol.iterator]() {
|
|
17
|
+
try {
|
|
18
|
+
yield* this.iterable;
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
if (error instanceof _module_1.CollectionError ||
|
|
22
|
+
error instanceof TypeError) {
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
iterator() {
|
|
29
|
+
return this[Symbol.iterator]();
|
|
30
|
+
}
|
|
31
|
+
entries(throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
32
|
+
return new IterableCollection(new _module_2.EntriesIterable(this, throwOnNumberLimit));
|
|
33
|
+
}
|
|
34
|
+
keys(throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
35
|
+
return this.entries(throwOnNumberLimit).map(([key]) => key);
|
|
36
|
+
}
|
|
37
|
+
values() {
|
|
38
|
+
return this.entries().map(([_key, value]) => value);
|
|
39
|
+
}
|
|
40
|
+
filter(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
41
|
+
return new IterableCollection(new _module_2.FilterIterable(this, filter, throwOnNumberLimit));
|
|
42
|
+
}
|
|
43
|
+
map(map, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
44
|
+
return new IterableCollection(new _module_2.MapIterable(this, map, throwOnNumberLimit));
|
|
45
|
+
}
|
|
46
|
+
reduce(settings) {
|
|
47
|
+
try {
|
|
48
|
+
const { reduceFn: reduce, initialValue, throwOnNumberLimit, } = settings;
|
|
49
|
+
if (initialValue === undefined && this.empty()) {
|
|
50
|
+
throw new TypeError("Reduce of empty array must be inputed a initial value");
|
|
51
|
+
}
|
|
52
|
+
if (initialValue !== undefined) {
|
|
53
|
+
let output = initialValue, index = 0;
|
|
54
|
+
for (const item of this) {
|
|
55
|
+
if (throwOnNumberLimit &&
|
|
56
|
+
index === Number.MAX_SAFE_INTEGER) {
|
|
57
|
+
throw new _module_1.IndexOverflowError("Index has overflowed");
|
|
58
|
+
}
|
|
59
|
+
output = reduce(output, item, index, this);
|
|
60
|
+
index++;
|
|
61
|
+
}
|
|
62
|
+
return output;
|
|
63
|
+
}
|
|
64
|
+
let output = this.firstOrFail(), index = 0, isFirstIteration = true;
|
|
65
|
+
for (const item of this) {
|
|
66
|
+
if (!isFirstIteration) {
|
|
67
|
+
if (throwOnNumberLimit &&
|
|
68
|
+
index === Number.MAX_SAFE_INTEGER) {
|
|
69
|
+
throw new _module_1.IndexOverflowError("Index has overflowed");
|
|
70
|
+
}
|
|
71
|
+
output = reduce(output, item, index, this);
|
|
72
|
+
}
|
|
73
|
+
isFirstIteration = false;
|
|
74
|
+
index++;
|
|
75
|
+
}
|
|
76
|
+
return output;
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
if (error instanceof _module_1.CollectionError ||
|
|
80
|
+
error instanceof TypeError) {
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
join(settings) {
|
|
87
|
+
try {
|
|
88
|
+
return this.reduce({
|
|
89
|
+
reduceFn(str, item) {
|
|
90
|
+
if (typeof item !== "string") {
|
|
91
|
+
throw new TypeError("Item type is invalid must be string");
|
|
92
|
+
}
|
|
93
|
+
const separator = settings?.seperator ?? ",";
|
|
94
|
+
return str + separator + item;
|
|
95
|
+
},
|
|
96
|
+
throwOnNumberLimit: settings?.throwOnNumberLimit ??
|
|
97
|
+
IterableCollection.THROW_ON_NUMBER_LIMIT,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
if (error instanceof _module_1.CollectionError ||
|
|
102
|
+
error instanceof TypeError) {
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
collapse() {
|
|
109
|
+
return new IterableCollection(new _module_2.CollapseIterable(this));
|
|
110
|
+
}
|
|
111
|
+
flatMap(map, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
112
|
+
return new IterableCollection(new _module_2.FlatMapIterable(this, map, throwOnNumberLimit));
|
|
113
|
+
}
|
|
114
|
+
update(filter, map, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
115
|
+
return new IterableCollection(new _module_2.UpdateIterable(this, filter, map, throwOnNumberLimit));
|
|
116
|
+
}
|
|
117
|
+
page(settings) {
|
|
118
|
+
const { page, pageSize, throwOnNumberLimit } = settings;
|
|
119
|
+
if (page < 0) {
|
|
120
|
+
return this.skip(page * pageSize, throwOnNumberLimit).take(pageSize, throwOnNumberLimit);
|
|
121
|
+
}
|
|
122
|
+
return this.skip((page - 1) * pageSize, throwOnNumberLimit).take(page * pageSize, throwOnNumberLimit);
|
|
123
|
+
}
|
|
124
|
+
sum(throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
125
|
+
try {
|
|
126
|
+
let sum = 0;
|
|
127
|
+
for (const item of this) {
|
|
128
|
+
if (throwOnNumberLimit && sum === Number.MAX_SAFE_INTEGER) {
|
|
129
|
+
throw new _module_1.IndexOverflowError("Sum has overflowed");
|
|
130
|
+
}
|
|
131
|
+
if (typeof item !== "number") {
|
|
132
|
+
throw new TypeError("Item type is invalid must be number");
|
|
133
|
+
}
|
|
134
|
+
sum += item;
|
|
135
|
+
}
|
|
136
|
+
return sum;
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
if (error instanceof _module_1.CollectionError ||
|
|
140
|
+
error instanceof TypeError) {
|
|
141
|
+
throw error;
|
|
142
|
+
}
|
|
143
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
average(throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
147
|
+
try {
|
|
148
|
+
let size = 0, sum = 0;
|
|
149
|
+
for (const item of this) {
|
|
150
|
+
if (throwOnNumberLimit && sum === Number.MAX_SAFE_INTEGER) {
|
|
151
|
+
throw new _module_1.IndexOverflowError("The sum has overflowed");
|
|
152
|
+
}
|
|
153
|
+
if (throwOnNumberLimit && size === Number.MAX_SAFE_INTEGER) {
|
|
154
|
+
throw new _module_1.IndexOverflowError("The size has overflowed");
|
|
155
|
+
}
|
|
156
|
+
if (typeof item !== "number") {
|
|
157
|
+
throw new TypeError("Item type is invalid must be number");
|
|
158
|
+
}
|
|
159
|
+
size++;
|
|
160
|
+
sum += item;
|
|
161
|
+
}
|
|
162
|
+
return (sum / size);
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
if (error instanceof _module_1.CollectionError ||
|
|
166
|
+
error instanceof TypeError) {
|
|
167
|
+
throw error;
|
|
168
|
+
}
|
|
169
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
median(throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
173
|
+
if (this.empty()) {
|
|
174
|
+
return 0;
|
|
175
|
+
}
|
|
176
|
+
const size = this.size(throwOnNumberLimit);
|
|
177
|
+
if (size === 0) {
|
|
178
|
+
return 0;
|
|
179
|
+
}
|
|
180
|
+
const isEven = size % 2 === 0, items = this.map((item) => {
|
|
181
|
+
if (typeof item !== "number") {
|
|
182
|
+
throw new TypeError("Item type is invalid must be number");
|
|
183
|
+
}
|
|
184
|
+
return item;
|
|
185
|
+
}, throwOnNumberLimit)
|
|
186
|
+
.filter((_item, index) => {
|
|
187
|
+
if (isEven) {
|
|
188
|
+
return index === size / 2 || index === size / 2 - 1;
|
|
189
|
+
}
|
|
190
|
+
return index === Math.floor(size / 2);
|
|
191
|
+
}, throwOnNumberLimit)
|
|
192
|
+
.toArray();
|
|
193
|
+
if (isEven) {
|
|
194
|
+
const [a, b] = items;
|
|
195
|
+
if (a === undefined) {
|
|
196
|
+
throw new _module_1.UnexpectedCollectionError("Is in invalid state");
|
|
197
|
+
}
|
|
198
|
+
if (b === undefined) {
|
|
199
|
+
throw new _module_1.UnexpectedCollectionError("Is in invalid state");
|
|
200
|
+
}
|
|
201
|
+
return ((a + b) / 2);
|
|
202
|
+
}
|
|
203
|
+
const [median] = items;
|
|
204
|
+
if (median === undefined) {
|
|
205
|
+
throw new _module_1.UnexpectedCollectionError("Is in invalid state");
|
|
206
|
+
}
|
|
207
|
+
return median;
|
|
208
|
+
}
|
|
209
|
+
min() {
|
|
210
|
+
try {
|
|
211
|
+
let min = 0;
|
|
212
|
+
for (const item of this) {
|
|
213
|
+
if (typeof item !== "number") {
|
|
214
|
+
throw new TypeError("Item type is invalid must be number");
|
|
215
|
+
}
|
|
216
|
+
if (min === 0) {
|
|
217
|
+
min = item;
|
|
218
|
+
}
|
|
219
|
+
else if (min > item) {
|
|
220
|
+
min = item;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return min;
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
if (error instanceof _module_1.CollectionError ||
|
|
227
|
+
error instanceof TypeError) {
|
|
228
|
+
throw error;
|
|
229
|
+
}
|
|
230
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
max() {
|
|
234
|
+
try {
|
|
235
|
+
let max = 0;
|
|
236
|
+
for (const item of this) {
|
|
237
|
+
if (typeof item !== "number") {
|
|
238
|
+
throw new TypeError("Item type is invalid must be number");
|
|
239
|
+
}
|
|
240
|
+
if (max === 0) {
|
|
241
|
+
max = item;
|
|
242
|
+
}
|
|
243
|
+
else if (max < item) {
|
|
244
|
+
max = item;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return max;
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
if (error instanceof _module_1.CollectionError ||
|
|
251
|
+
error instanceof TypeError) {
|
|
252
|
+
throw error;
|
|
253
|
+
}
|
|
254
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
percentage(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
258
|
+
try {
|
|
259
|
+
if (this.empty()) {
|
|
260
|
+
return 0;
|
|
261
|
+
}
|
|
262
|
+
let part = 0, total = 0;
|
|
263
|
+
for (const item of this) {
|
|
264
|
+
if (throwOnNumberLimit && total === Number.MAX_SAFE_INTEGER) {
|
|
265
|
+
throw new _module_1.IndexOverflowError("The total amount has overflowed");
|
|
266
|
+
}
|
|
267
|
+
if (filter(item, total, this)) {
|
|
268
|
+
part++;
|
|
269
|
+
}
|
|
270
|
+
total++;
|
|
271
|
+
}
|
|
272
|
+
return (part / total) * 100;
|
|
273
|
+
}
|
|
274
|
+
catch (error) {
|
|
275
|
+
if (error instanceof _module_1.CollectionError ||
|
|
276
|
+
error instanceof TypeError) {
|
|
277
|
+
throw error;
|
|
278
|
+
}
|
|
279
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
some(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
283
|
+
try {
|
|
284
|
+
let index = 0;
|
|
285
|
+
for (const item of this) {
|
|
286
|
+
if (throwOnNumberLimit && index === Number.MAX_SAFE_INTEGER) {
|
|
287
|
+
throw new _module_1.IndexOverflowError("Index has overflowed");
|
|
288
|
+
}
|
|
289
|
+
if (filter(item, index, this)) {
|
|
290
|
+
return true;
|
|
291
|
+
}
|
|
292
|
+
index++;
|
|
293
|
+
}
|
|
294
|
+
return false;
|
|
295
|
+
}
|
|
296
|
+
catch (error) {
|
|
297
|
+
if (error instanceof _module_1.CollectionError ||
|
|
298
|
+
error instanceof TypeError) {
|
|
299
|
+
throw error;
|
|
300
|
+
}
|
|
301
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
every(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
305
|
+
try {
|
|
306
|
+
let index = 0, isTrue = true;
|
|
307
|
+
for (const item of this) {
|
|
308
|
+
if (throwOnNumberLimit && index === Number.MAX_SAFE_INTEGER) {
|
|
309
|
+
throw new _module_1.IndexOverflowError("Index has overflowed");
|
|
310
|
+
}
|
|
311
|
+
isTrue &&= filter(item, index, this);
|
|
312
|
+
if (!isTrue) {
|
|
313
|
+
break;
|
|
314
|
+
}
|
|
315
|
+
index++;
|
|
316
|
+
}
|
|
317
|
+
return isTrue;
|
|
318
|
+
}
|
|
319
|
+
catch (error) {
|
|
320
|
+
if (error instanceof _module_1.CollectionError ||
|
|
321
|
+
error instanceof TypeError) {
|
|
322
|
+
throw error;
|
|
323
|
+
}
|
|
324
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
take(limit, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
328
|
+
return new IterableCollection(new _module_2.TakeIterable(this, limit, throwOnNumberLimit));
|
|
329
|
+
}
|
|
330
|
+
takeUntil(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
331
|
+
return new IterableCollection(new _module_2.TakeUntilIterable(this, filter, throwOnNumberLimit));
|
|
332
|
+
}
|
|
333
|
+
takeWhile(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
334
|
+
return this.takeUntil((...arguments_) => !filter(...arguments_), throwOnNumberLimit);
|
|
335
|
+
}
|
|
336
|
+
skip(offset, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
337
|
+
return new IterableCollection(new _module_2.SkipIterable(this, offset, throwOnNumberLimit));
|
|
338
|
+
}
|
|
339
|
+
skipUntil(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
340
|
+
return new IterableCollection(new _module_2.SkipUntilIterable(this, filter, throwOnNumberLimit));
|
|
341
|
+
}
|
|
342
|
+
skipWhile(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
343
|
+
return this.skipUntil((...arguments_) => !filter(...arguments_), throwOnNumberLimit);
|
|
344
|
+
}
|
|
345
|
+
when(condition, callback) {
|
|
346
|
+
return new IterableCollection(new _module_2.WhenIterable(this, () => condition, callback));
|
|
347
|
+
}
|
|
348
|
+
whenEmpty(callback) {
|
|
349
|
+
return new IterableCollection(new _module_2.WhenIterable(this, () => this.empty(), callback));
|
|
350
|
+
}
|
|
351
|
+
whenNot(condition, callback) {
|
|
352
|
+
return this.when(!condition, callback);
|
|
353
|
+
}
|
|
354
|
+
whenNotEmpty(callback) {
|
|
355
|
+
return new IterableCollection(new _module_2.WhenIterable(this, () => this.notEmpty(), callback));
|
|
356
|
+
}
|
|
357
|
+
pipe(callback) {
|
|
358
|
+
try {
|
|
359
|
+
return callback(this);
|
|
360
|
+
}
|
|
361
|
+
catch (error) {
|
|
362
|
+
if (error instanceof _module_1.CollectionError ||
|
|
363
|
+
error instanceof TypeError) {
|
|
364
|
+
throw error;
|
|
365
|
+
}
|
|
366
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
tap(callback) {
|
|
370
|
+
return new IterableCollection(new _module_2.TapIterable(this, callback));
|
|
371
|
+
}
|
|
372
|
+
chunk(chunkSize) {
|
|
373
|
+
return new IterableCollection(new _module_2.ChunkIterable(this, chunkSize, IterableCollection.makeCollection));
|
|
374
|
+
}
|
|
375
|
+
chunkWhile(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
376
|
+
return new IterableCollection(new _module_2.ChunkWhileIterable(this, filter, throwOnNumberLimit, (iterable) => new IterableCollection(iterable)));
|
|
377
|
+
}
|
|
378
|
+
split(chunkAmount, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
379
|
+
return new IterableCollection(new _module_2.SplitIterable(this, chunkAmount, throwOnNumberLimit, IterableCollection.makeCollection));
|
|
380
|
+
}
|
|
381
|
+
partition(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
382
|
+
return new IterableCollection(new _module_2.PartionIterable(this, filter, throwOnNumberLimit, IterableCollection.makeCollection));
|
|
383
|
+
}
|
|
384
|
+
sliding(settings) {
|
|
385
|
+
const { chunkSize, step = chunkSize - 1, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT, } = settings;
|
|
386
|
+
return new IterableCollection(new _module_2.SlidingIteralbe(this, chunkSize, step, throwOnNumberLimit));
|
|
387
|
+
}
|
|
388
|
+
groupBy(settings) {
|
|
389
|
+
return new IterableCollection(new _module_2.GroupByIterable(this, settings?.mapFn, settings?.throwOnNumberLimit ??
|
|
390
|
+
IterableCollection.THROW_ON_NUMBER_LIMIT, (iterable) => new IterableCollection(iterable)));
|
|
391
|
+
}
|
|
392
|
+
countBy(settings) {
|
|
393
|
+
return new IterableCollection(new _module_2.CountByIterable(this, settings?.mapFn, settings?.throwOnNumberLimit ??
|
|
394
|
+
IterableCollection.THROW_ON_NUMBER_LIMIT));
|
|
395
|
+
}
|
|
396
|
+
unique(settings) {
|
|
397
|
+
return new IterableCollection(new _module_2.UniqueIterable(this, settings?.mapFn, settings?.throwOnNumberLimit ??
|
|
398
|
+
IterableCollection.THROW_ON_NUMBER_LIMIT));
|
|
399
|
+
}
|
|
400
|
+
difference(iterable, map = (item) => item) {
|
|
401
|
+
const differenceCollection = new IterableCollection(iterable);
|
|
402
|
+
return this.filter((item, index, collection) => {
|
|
403
|
+
return !differenceCollection.some((matchItem, matchIndex, matchCollection) => {
|
|
404
|
+
return (map(item, index, collection) ===
|
|
405
|
+
map(matchItem, matchIndex, matchCollection));
|
|
406
|
+
});
|
|
407
|
+
});
|
|
408
|
+
}
|
|
409
|
+
repeat(amount) {
|
|
410
|
+
return new IterableCollection(new _module_2.RepeatIterable(this, amount, IterableCollection.makeCollection));
|
|
411
|
+
}
|
|
412
|
+
padStart(maxLength, fillItems) {
|
|
413
|
+
return new IterableCollection(new _module_2.PadStartIterable(this, maxLength, fillItems, IterableCollection.makeCollection));
|
|
414
|
+
}
|
|
415
|
+
padEnd(maxLength, fillItems) {
|
|
416
|
+
return new IterableCollection(new _module_2.PadEndIterable(this, maxLength, fillItems, IterableCollection.makeCollection));
|
|
417
|
+
}
|
|
418
|
+
slice(settings) {
|
|
419
|
+
return new IterableCollection(new _module_2.SliceIterable(this, settings?.start, settings?.end, settings?.throwOnNumberLimit ??
|
|
420
|
+
IterableCollection.THROW_ON_NUMBER_LIMIT));
|
|
421
|
+
}
|
|
422
|
+
prepend(iterable) {
|
|
423
|
+
return new IterableCollection(new _module_2.MergeIterable(iterable, this));
|
|
424
|
+
}
|
|
425
|
+
append(iterable) {
|
|
426
|
+
return new IterableCollection(new _module_2.MergeIterable(this, iterable));
|
|
427
|
+
}
|
|
428
|
+
insertBefore(filter, iterable, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
429
|
+
return new IterableCollection(new _module_2.InsertBeforeIterable(this, filter, iterable, throwOnNumberLimit));
|
|
430
|
+
}
|
|
431
|
+
insertAfter(filter, iterable, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
432
|
+
return new IterableCollection(new _module_2.InsertAfterIterable(this, filter, iterable, throwOnNumberLimit));
|
|
433
|
+
}
|
|
434
|
+
crossJoin(...iterables) {
|
|
435
|
+
return new IterableCollection(new _module_2.CrossJoinIterable(this, iterables, IterableCollection.makeCollection));
|
|
436
|
+
}
|
|
437
|
+
zip(iterable) {
|
|
438
|
+
return new IterableCollection(new _module_2.ZipIterable(this, iterable));
|
|
439
|
+
}
|
|
440
|
+
sort(compare) {
|
|
441
|
+
return new IterableCollection(new _module_2.SortIterable(this, compare));
|
|
442
|
+
}
|
|
443
|
+
reverse(settings) {
|
|
444
|
+
return new IterableCollection(new _module_2.ReverseIterable(this, settings?.chunkSize ?? IterableCollection.DEFAULT_CHUNK_SIZE, settings?.throwOnNumberLimit ??
|
|
445
|
+
IterableCollection.THROW_ON_NUMBER_LIMIT, (iterable) => new IterableCollection(iterable)));
|
|
446
|
+
}
|
|
447
|
+
shuffle() {
|
|
448
|
+
return new IterableCollection(new _module_2.ShuffleIterable(this));
|
|
449
|
+
}
|
|
450
|
+
first(settings) {
|
|
451
|
+
try {
|
|
452
|
+
return this.firstOr({
|
|
453
|
+
...settings,
|
|
454
|
+
defaultValue: null,
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
catch (error) {
|
|
458
|
+
if (error instanceof _module_1.CollectionError ||
|
|
459
|
+
error instanceof TypeError) {
|
|
460
|
+
throw error;
|
|
461
|
+
}
|
|
462
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
firstOr(settings) {
|
|
466
|
+
try {
|
|
467
|
+
const throwOnNumberLimit = settings.throwOnNumberLimit ??
|
|
468
|
+
IterableCollection.THROW_ON_NUMBER_LIMIT;
|
|
469
|
+
let index = 0;
|
|
470
|
+
const filter = settings.filterFn ?? (() => true);
|
|
471
|
+
for (const item of this) {
|
|
472
|
+
if (throwOnNumberLimit && index === Number.MAX_SAFE_INTEGER) {
|
|
473
|
+
throw new _module_1.IndexOverflowError("Index has overflowed");
|
|
474
|
+
}
|
|
475
|
+
if (filter(item, index, this)) {
|
|
476
|
+
return item;
|
|
477
|
+
}
|
|
478
|
+
index++;
|
|
479
|
+
}
|
|
480
|
+
if (typeof settings.defaultValue === "function") {
|
|
481
|
+
const defaultFn = settings.defaultValue;
|
|
482
|
+
return defaultFn();
|
|
483
|
+
}
|
|
484
|
+
return settings.defaultValue;
|
|
485
|
+
}
|
|
486
|
+
catch (error) {
|
|
487
|
+
if (error instanceof _module_1.CollectionError ||
|
|
488
|
+
error instanceof TypeError) {
|
|
489
|
+
throw error;
|
|
490
|
+
}
|
|
491
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
firstOrFail(settings) {
|
|
495
|
+
const item = this.first(settings);
|
|
496
|
+
if (item === null) {
|
|
497
|
+
throw new _module_1.ItemNotFoundError("Item was not found");
|
|
498
|
+
}
|
|
499
|
+
return item;
|
|
500
|
+
}
|
|
501
|
+
last(settings) {
|
|
502
|
+
try {
|
|
503
|
+
return this.lastOr({
|
|
504
|
+
...settings,
|
|
505
|
+
defaultValue: null,
|
|
506
|
+
});
|
|
507
|
+
}
|
|
508
|
+
catch (error) {
|
|
509
|
+
if (error instanceof _module_1.CollectionError ||
|
|
510
|
+
error instanceof TypeError) {
|
|
511
|
+
throw error;
|
|
512
|
+
}
|
|
513
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
lastOr(settings) {
|
|
517
|
+
try {
|
|
518
|
+
const throwOnNumberLimit = settings.throwOnNumberLimit ??
|
|
519
|
+
IterableCollection.THROW_ON_NUMBER_LIMIT;
|
|
520
|
+
let index = 0;
|
|
521
|
+
const filter = settings.filterFn ?? (() => true);
|
|
522
|
+
let matchedItem = null;
|
|
523
|
+
for (const item of this) {
|
|
524
|
+
if (throwOnNumberLimit && index === Number.MAX_SAFE_INTEGER) {
|
|
525
|
+
throw new _module_1.IndexOverflowError("Index has overflowed");
|
|
526
|
+
}
|
|
527
|
+
if (filter(item, index, this)) {
|
|
528
|
+
matchedItem = item;
|
|
529
|
+
}
|
|
530
|
+
index++;
|
|
531
|
+
}
|
|
532
|
+
if (matchedItem) {
|
|
533
|
+
return matchedItem;
|
|
534
|
+
}
|
|
535
|
+
if (typeof settings.defaultValue === "function") {
|
|
536
|
+
const defaultFn = settings.defaultValue;
|
|
537
|
+
return defaultFn();
|
|
538
|
+
}
|
|
539
|
+
return settings.defaultValue;
|
|
540
|
+
}
|
|
541
|
+
catch (error) {
|
|
542
|
+
if (error instanceof _module_1.CollectionError ||
|
|
543
|
+
error instanceof TypeError) {
|
|
544
|
+
throw error;
|
|
545
|
+
}
|
|
546
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
lastOrFail(settings) {
|
|
550
|
+
const item = this.last(settings);
|
|
551
|
+
if (item === null) {
|
|
552
|
+
throw new _module_1.ItemNotFoundError("Item was not found");
|
|
553
|
+
}
|
|
554
|
+
return item;
|
|
555
|
+
}
|
|
556
|
+
before(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
557
|
+
return this.beforeOr(null, filter, throwOnNumberLimit);
|
|
558
|
+
}
|
|
559
|
+
beforeOr(defaultValue, filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
560
|
+
try {
|
|
561
|
+
let beforeItem = null, index = 0;
|
|
562
|
+
for (const item of this) {
|
|
563
|
+
if (throwOnNumberLimit && index === Number.MAX_SAFE_INTEGER) {
|
|
564
|
+
throw new _module_1.IndexOverflowError("Index has overflowed");
|
|
565
|
+
}
|
|
566
|
+
if (filter(item, index, this) && beforeItem) {
|
|
567
|
+
return beforeItem;
|
|
568
|
+
}
|
|
569
|
+
index++;
|
|
570
|
+
beforeItem = item;
|
|
571
|
+
}
|
|
572
|
+
if (typeof defaultValue === "function") {
|
|
573
|
+
const defaultFn = defaultValue;
|
|
574
|
+
return defaultFn();
|
|
575
|
+
}
|
|
576
|
+
return defaultValue;
|
|
577
|
+
}
|
|
578
|
+
catch (error) {
|
|
579
|
+
if (error instanceof _module_1.CollectionError ||
|
|
580
|
+
error instanceof TypeError) {
|
|
581
|
+
throw error;
|
|
582
|
+
}
|
|
583
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
beforeOrFail(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
587
|
+
const item = this.before(filter, throwOnNumberLimit);
|
|
588
|
+
if (item === null) {
|
|
589
|
+
throw new _module_1.ItemNotFoundError("Item was not found");
|
|
590
|
+
}
|
|
591
|
+
return item;
|
|
592
|
+
}
|
|
593
|
+
after(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
594
|
+
return this.afterOr(null, filter, throwOnNumberLimit);
|
|
595
|
+
}
|
|
596
|
+
afterOr(defaultValue, filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
597
|
+
try {
|
|
598
|
+
let hasMatched = false, index = 0;
|
|
599
|
+
for (const item of this) {
|
|
600
|
+
if (hasMatched) {
|
|
601
|
+
return item;
|
|
602
|
+
}
|
|
603
|
+
if (throwOnNumberLimit && index === Number.MAX_SAFE_INTEGER) {
|
|
604
|
+
throw new _module_1.IndexOverflowError("Index has overflowed");
|
|
605
|
+
}
|
|
606
|
+
hasMatched = filter(item, index, this);
|
|
607
|
+
index++;
|
|
608
|
+
}
|
|
609
|
+
if (typeof defaultValue === "function") {
|
|
610
|
+
const defaultFn = defaultValue;
|
|
611
|
+
return defaultFn();
|
|
612
|
+
}
|
|
613
|
+
return defaultValue;
|
|
614
|
+
}
|
|
615
|
+
catch (error) {
|
|
616
|
+
if (error instanceof _module_1.CollectionError ||
|
|
617
|
+
error instanceof TypeError) {
|
|
618
|
+
throw error;
|
|
619
|
+
}
|
|
620
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
afterOrFail(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
624
|
+
const item = this.after(filter, throwOnNumberLimit);
|
|
625
|
+
if (item === null) {
|
|
626
|
+
throw new _module_1.ItemNotFoundError("Item was not found");
|
|
627
|
+
}
|
|
628
|
+
return item;
|
|
629
|
+
}
|
|
630
|
+
sole(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
631
|
+
try {
|
|
632
|
+
let index = 0, matchedItem = null;
|
|
633
|
+
for (const item of this) {
|
|
634
|
+
if (throwOnNumberLimit && index === Number.MAX_SAFE_INTEGER) {
|
|
635
|
+
throw new _module_1.IndexOverflowError("Index has overflowed");
|
|
636
|
+
}
|
|
637
|
+
if (filter(item, index, this)) {
|
|
638
|
+
if (matchedItem !== null) {
|
|
639
|
+
throw new _module_1.MultipleItemsFoundError("Multiple items were found");
|
|
640
|
+
}
|
|
641
|
+
matchedItem = item;
|
|
642
|
+
}
|
|
643
|
+
index++;
|
|
644
|
+
}
|
|
645
|
+
if (matchedItem === null) {
|
|
646
|
+
throw new _module_1.ItemNotFoundError("Item was not found");
|
|
647
|
+
}
|
|
648
|
+
return matchedItem;
|
|
649
|
+
}
|
|
650
|
+
catch (error) {
|
|
651
|
+
if (error instanceof _module_1.CollectionError ||
|
|
652
|
+
error instanceof TypeError) {
|
|
653
|
+
throw error;
|
|
654
|
+
}
|
|
655
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
nth(step) {
|
|
659
|
+
return this.filter((_item, index) => index % step === 0);
|
|
660
|
+
}
|
|
661
|
+
count(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
662
|
+
try {
|
|
663
|
+
let size = 0;
|
|
664
|
+
for (const item of this) {
|
|
665
|
+
if (throwOnNumberLimit && size === Number.MAX_SAFE_INTEGER) {
|
|
666
|
+
throw new _module_1.IndexOverflowError("Size has overflowed");
|
|
667
|
+
}
|
|
668
|
+
if (filter(item, size, this)) {
|
|
669
|
+
size++;
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
return size;
|
|
673
|
+
}
|
|
674
|
+
catch (error) {
|
|
675
|
+
if (error instanceof _module_1.CollectionError ||
|
|
676
|
+
error instanceof TypeError) {
|
|
677
|
+
throw error;
|
|
678
|
+
}
|
|
679
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
size(throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
683
|
+
return this.count(() => true, throwOnNumberLimit);
|
|
684
|
+
}
|
|
685
|
+
empty() {
|
|
686
|
+
try {
|
|
687
|
+
for (const _ of this) {
|
|
688
|
+
return false;
|
|
689
|
+
}
|
|
690
|
+
return true;
|
|
691
|
+
}
|
|
692
|
+
catch (error) {
|
|
693
|
+
if (error instanceof _module_1.CollectionError ||
|
|
694
|
+
error instanceof TypeError) {
|
|
695
|
+
throw error;
|
|
696
|
+
}
|
|
697
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
notEmpty() {
|
|
701
|
+
return !this.empty();
|
|
702
|
+
}
|
|
703
|
+
search(filter, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
704
|
+
try {
|
|
705
|
+
let index = 0;
|
|
706
|
+
for (const item of this) {
|
|
707
|
+
if (throwOnNumberLimit && index === Number.MAX_SAFE_INTEGER) {
|
|
708
|
+
throw new _module_1.IndexOverflowError("Index has overflowed");
|
|
709
|
+
}
|
|
710
|
+
if (filter(item, index, this)) {
|
|
711
|
+
return index;
|
|
712
|
+
}
|
|
713
|
+
index++;
|
|
714
|
+
}
|
|
715
|
+
return -1;
|
|
716
|
+
}
|
|
717
|
+
catch (error) {
|
|
718
|
+
if (error instanceof _module_1.CollectionError ||
|
|
719
|
+
error instanceof TypeError) {
|
|
720
|
+
throw error;
|
|
721
|
+
}
|
|
722
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
forEach(callback, throwOnNumberLimit = IterableCollection.THROW_ON_NUMBER_LIMIT) {
|
|
726
|
+
try {
|
|
727
|
+
let index = 0;
|
|
728
|
+
for (const item of this) {
|
|
729
|
+
if (throwOnNumberLimit && index === Number.MAX_SAFE_INTEGER) {
|
|
730
|
+
throw new _module_1.IndexOverflowError("Index has overflowed");
|
|
731
|
+
}
|
|
732
|
+
callback(item, index, this);
|
|
733
|
+
index++;
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
catch (error) {
|
|
737
|
+
if (error instanceof _module_1.CollectionError ||
|
|
738
|
+
error instanceof TypeError) {
|
|
739
|
+
throw error;
|
|
740
|
+
}
|
|
741
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
toArray() {
|
|
745
|
+
try {
|
|
746
|
+
return [...this];
|
|
747
|
+
}
|
|
748
|
+
catch (error) {
|
|
749
|
+
if (error instanceof _module_1.CollectionError ||
|
|
750
|
+
error instanceof TypeError) {
|
|
751
|
+
throw error;
|
|
752
|
+
}
|
|
753
|
+
throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
exports.IterableCollection = IterableCollection;
|
|
758
|
+
//# sourceMappingURL=iterable-collection.js.map
|