es-toolkit 1.48.1 → 1.49.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/CHANGELOG.md +23 -0
- package/dist/array/chunkBy.d.mts +32 -0
- package/dist/array/chunkBy.d.ts +32 -0
- package/dist/array/chunkBy.js +42 -0
- package/dist/array/chunkBy.mjs +42 -0
- package/dist/array/index.d.mts +2 -1
- package/dist/array/index.d.ts +2 -1
- package/dist/array/index.js +2 -0
- package/dist/array/index.mjs +2 -1
- package/dist/array/take.d.mts +1 -7
- package/dist/array/take.d.ts +1 -7
- package/dist/array/take.js +1 -9
- package/dist/array/take.mjs +1 -9
- package/dist/array/takeRight.d.mts +2 -2
- package/dist/array/takeRight.d.ts +2 -2
- package/dist/array/takeRight.js +2 -4
- package/dist/array/takeRight.mjs +2 -4
- package/dist/array/windowed.d.mts +1 -1
- package/dist/array/windowed.d.ts +1 -1
- package/dist/browser.global.js +3 -3
- package/dist/compat/array/chunk.js +4 -2
- package/dist/compat/array/chunk.mjs +4 -2
- package/dist/compat/array/differenceBy.js +5 -5
- package/dist/compat/array/differenceBy.mjs +5 -5
- package/dist/compat/array/drop.d.mts +2 -3
- package/dist/compat/array/drop.d.ts +2 -3
- package/dist/compat/array/drop.js +4 -4
- package/dist/compat/array/drop.mjs +4 -4
- package/dist/compat/array/dropRight.js +1 -1
- package/dist/compat/array/dropRight.mjs +1 -1
- package/dist/compat/array/dropRightWhile.d.mts +1 -1
- package/dist/compat/array/dropRightWhile.d.ts +1 -1
- package/dist/compat/array/dropRightWhile.js +5 -4
- package/dist/compat/array/dropRightWhile.mjs +5 -4
- package/dist/compat/array/dropWhile.d.mts +2 -2
- package/dist/compat/array/dropWhile.d.ts +2 -2
- package/dist/compat/array/dropWhile.js +4 -4
- package/dist/compat/array/dropWhile.mjs +4 -4
- package/dist/compat/array/findLast.js +1 -1
- package/dist/compat/array/findLast.mjs +1 -1
- package/dist/compat/array/includes.js +1 -1
- package/dist/compat/array/includes.mjs +1 -1
- package/dist/compat/array/nth.js +1 -1
- package/dist/compat/array/nth.mjs +1 -1
- package/dist/compat/array/slice.js +1 -1
- package/dist/compat/array/slice.mjs +1 -1
- package/dist/compat/array/sortedIndexBy.js +1 -1
- package/dist/compat/array/sortedIndexBy.mjs +1 -1
- package/dist/compat/array/take.js +2 -2
- package/dist/compat/array/take.mjs +2 -2
- package/dist/compat/array/takeRight.js +1 -1
- package/dist/compat/array/takeRight.mjs +1 -1
- package/dist/compat/compat.js +4 -4
- package/dist/compat/compat.mjs +4 -4
- package/dist/compat/index.js +4 -4
- package/dist/compat/index.mjs +4 -4
- package/dist/compat/math/add.js +1 -1
- package/dist/compat/math/add.mjs +1 -1
- package/dist/compat/math/divide.js +1 -1
- package/dist/compat/math/divide.mjs +1 -1
- package/dist/compat/math/multiply.js +1 -1
- package/dist/compat/math/multiply.mjs +1 -1
- package/dist/compat/math/random.js +3 -1
- package/dist/compat/math/random.mjs +3 -1
- package/dist/compat/math/subtract.js +1 -1
- package/dist/compat/math/subtract.mjs +1 -1
- package/dist/compat/object/get.js +1 -1
- package/dist/compat/object/get.mjs +1 -1
- package/dist/compat/object/omitBy.js +1 -1
- package/dist/compat/object/omitBy.mjs +1 -1
- package/dist/compat/object/pick.js +1 -1
- package/dist/compat/object/pick.mjs +1 -1
- package/dist/compat/object/pickBy.js +1 -1
- package/dist/compat/object/pickBy.mjs +1 -1
- package/dist/compat/string/repeat.js +1 -1
- package/dist/compat/string/repeat.mjs +1 -1
- package/dist/fp/_internal/lazy.js +58 -0
- package/dist/fp/_internal/lazy.mjs +57 -0
- package/dist/fp/array/at.d.mts +20 -0
- package/dist/fp/array/at.d.ts +20 -0
- package/dist/fp/array/at.js +25 -0
- package/dist/fp/array/at.mjs +25 -0
- package/dist/fp/array/cartesianProduct.d.mts +61 -0
- package/dist/fp/array/cartesianProduct.d.ts +61 -0
- package/dist/fp/array/cartesianProduct.js +9 -0
- package/dist/fp/array/cartesianProduct.mjs +9 -0
- package/dist/fp/array/chunk.d.mts +19 -0
- package/dist/fp/array/chunk.d.ts +19 -0
- package/dist/fp/array/chunk.js +24 -0
- package/dist/fp/array/chunk.mjs +24 -0
- package/dist/fp/array/chunkBy.d.mts +20 -0
- package/dist/fp/array/chunkBy.d.ts +20 -0
- package/dist/fp/array/chunkBy.js +25 -0
- package/dist/fp/array/chunkBy.mjs +25 -0
- package/dist/fp/array/combinations.d.mts +21 -0
- package/dist/fp/array/combinations.d.ts +21 -0
- package/dist/fp/array/combinations.js +26 -0
- package/dist/fp/array/combinations.mjs +26 -0
- package/dist/fp/array/compact.d.mts +22 -0
- package/dist/fp/array/compact.d.ts +22 -0
- package/dist/fp/array/compact.js +31 -0
- package/dist/fp/array/compact.mjs +30 -0
- package/dist/fp/array/countBy.d.mts +21 -0
- package/dist/fp/array/countBy.d.ts +21 -0
- package/dist/fp/array/countBy.js +26 -0
- package/dist/fp/array/countBy.mjs +26 -0
- package/dist/fp/array/difference.d.mts +21 -0
- package/dist/fp/array/difference.d.ts +21 -0
- package/dist/fp/array/difference.js +32 -0
- package/dist/fp/array/difference.mjs +31 -0
- package/dist/fp/array/differenceBy.d.mts +22 -0
- package/dist/fp/array/differenceBy.d.ts +22 -0
- package/dist/fp/array/differenceBy.js +33 -0
- package/dist/fp/array/differenceBy.mjs +32 -0
- package/dist/fp/array/differenceWith.d.mts +22 -0
- package/dist/fp/array/differenceWith.d.ts +22 -0
- package/dist/fp/array/differenceWith.js +32 -0
- package/dist/fp/array/differenceWith.mjs +31 -0
- package/dist/fp/array/drop.d.mts +20 -0
- package/dist/fp/array/drop.d.ts +20 -0
- package/dist/fp/array/drop.js +31 -0
- package/dist/fp/array/drop.mjs +30 -0
- package/dist/fp/array/dropRight.d.mts +20 -0
- package/dist/fp/array/dropRight.d.ts +20 -0
- package/dist/fp/array/dropRight.js +25 -0
- package/dist/fp/array/dropRight.mjs +25 -0
- package/dist/fp/array/dropRightWhile.d.mts +20 -0
- package/dist/fp/array/dropRightWhile.d.ts +20 -0
- package/dist/fp/array/dropRightWhile.js +25 -0
- package/dist/fp/array/dropRightWhile.mjs +25 -0
- package/dist/fp/array/dropWhile.d.mts +20 -0
- package/dist/fp/array/dropWhile.d.ts +20 -0
- package/dist/fp/array/dropWhile.js +36 -0
- package/dist/fp/array/dropWhile.mjs +36 -0
- package/dist/fp/array/filter.d.mts +45 -0
- package/dist/fp/array/filter.d.ts +45 -0
- package/dist/fp/array/filter.js +13 -0
- package/dist/fp/array/filter.mjs +12 -0
- package/dist/fp/array/find.d.mts +39 -0
- package/dist/fp/array/find.d.ts +39 -0
- package/dist/fp/array/find.js +8 -0
- package/dist/fp/array/find.mjs +8 -0
- package/dist/fp/array/findIndex.d.mts +20 -0
- package/dist/fp/array/findIndex.d.ts +20 -0
- package/dist/fp/array/findIndex.js +24 -0
- package/dist/fp/array/findIndex.mjs +24 -0
- package/dist/fp/array/findLast.d.mts +39 -0
- package/dist/fp/array/findLast.d.ts +39 -0
- package/dist/fp/array/findLast.js +11 -0
- package/dist/fp/array/findLast.mjs +11 -0
- package/dist/fp/array/findLastIndex.d.mts +20 -0
- package/dist/fp/array/findLastIndex.d.ts +20 -0
- package/dist/fp/array/findLastIndex.js +25 -0
- package/dist/fp/array/findLastIndex.mjs +25 -0
- package/dist/fp/array/flatMap.d.mts +28 -0
- package/dist/fp/array/flatMap.d.ts +28 -0
- package/dist/fp/array/flatMap.js +39 -0
- package/dist/fp/array/flatMap.mjs +38 -0
- package/dist/fp/array/flatMapDeep.d.mts +23 -0
- package/dist/fp/array/flatMapDeep.d.ts +23 -0
- package/dist/fp/array/flatMapDeep.js +38 -0
- package/dist/fp/array/flatMapDeep.mjs +37 -0
- package/dist/fp/array/flatten.d.mts +21 -0
- package/dist/fp/array/flatten.d.ts +21 -0
- package/dist/fp/array/flatten.js +39 -0
- package/dist/fp/array/flatten.mjs +38 -0
- package/dist/fp/array/flattenDeep.d.mts +21 -0
- package/dist/fp/array/flattenDeep.d.ts +21 -0
- package/dist/fp/array/flattenDeep.js +36 -0
- package/dist/fp/array/flattenDeep.mjs +35 -0
- package/dist/fp/array/forEach.d.mts +22 -0
- package/dist/fp/array/forEach.d.ts +22 -0
- package/dist/fp/array/forEach.js +33 -0
- package/dist/fp/array/forEach.mjs +32 -0
- package/dist/fp/array/groupBy.d.mts +21 -0
- package/dist/fp/array/groupBy.d.ts +21 -0
- package/dist/fp/array/groupBy.js +26 -0
- package/dist/fp/array/groupBy.mjs +26 -0
- package/dist/fp/array/head.d.mts +35 -0
- package/dist/fp/array/head.d.ts +35 -0
- package/dist/fp/array/head.js +9 -0
- package/dist/fp/array/head.mjs +9 -0
- package/dist/fp/array/index.d.mts +69 -0
- package/dist/fp/array/index.d.ts +69 -0
- package/dist/fp/array/index.js +68 -0
- package/dist/fp/array/index.mjs +68 -0
- package/dist/fp/array/initial.d.mts +19 -0
- package/dist/fp/array/initial.d.ts +19 -0
- package/dist/fp/array/initial.js +24 -0
- package/dist/fp/array/initial.mjs +24 -0
- package/dist/fp/array/intersection.d.mts +21 -0
- package/dist/fp/array/intersection.d.ts +21 -0
- package/dist/fp/array/intersection.js +32 -0
- package/dist/fp/array/intersection.mjs +31 -0
- package/dist/fp/array/intersectionBy.d.mts +22 -0
- package/dist/fp/array/intersectionBy.d.ts +22 -0
- package/dist/fp/array/intersectionBy.js +33 -0
- package/dist/fp/array/intersectionBy.mjs +32 -0
- package/dist/fp/array/intersectionWith.d.mts +22 -0
- package/dist/fp/array/intersectionWith.d.ts +22 -0
- package/dist/fp/array/intersectionWith.js +32 -0
- package/dist/fp/array/intersectionWith.mjs +31 -0
- package/dist/fp/array/isSubset.d.mts +20 -0
- package/dist/fp/array/isSubset.d.ts +20 -0
- package/dist/fp/array/isSubset.js +25 -0
- package/dist/fp/array/isSubset.mjs +25 -0
- package/dist/fp/array/isSubsetWith.d.mts +21 -0
- package/dist/fp/array/isSubsetWith.d.ts +21 -0
- package/dist/fp/array/isSubsetWith.js +26 -0
- package/dist/fp/array/isSubsetWith.mjs +26 -0
- package/dist/fp/array/join.d.mts +20 -0
- package/dist/fp/array/join.d.ts +20 -0
- package/dist/fp/array/join.js +24 -0
- package/dist/fp/array/join.mjs +24 -0
- package/dist/fp/array/keyBy.d.mts +21 -0
- package/dist/fp/array/keyBy.d.ts +21 -0
- package/dist/fp/array/keyBy.js +26 -0
- package/dist/fp/array/keyBy.mjs +26 -0
- package/dist/fp/array/last.d.mts +35 -0
- package/dist/fp/array/last.d.ts +35 -0
- package/dist/fp/array/last.js +9 -0
- package/dist/fp/array/last.mjs +9 -0
- package/dist/fp/array/length.d.mts +18 -0
- package/dist/fp/array/length.d.ts +18 -0
- package/dist/fp/array/length.js +22 -0
- package/dist/fp/array/length.mjs +22 -0
- package/dist/fp/array/map.d.mts +27 -0
- package/dist/fp/array/map.d.ts +27 -0
- package/dist/fp/array/map.js +36 -0
- package/dist/fp/array/map.mjs +35 -0
- package/dist/fp/array/maxBy.d.mts +37 -0
- package/dist/fp/array/maxBy.d.ts +37 -0
- package/dist/fp/array/maxBy.js +9 -0
- package/dist/fp/array/maxBy.mjs +9 -0
- package/dist/fp/array/minBy.d.mts +37 -0
- package/dist/fp/array/minBy.d.ts +37 -0
- package/dist/fp/array/minBy.js +9 -0
- package/dist/fp/array/minBy.mjs +9 -0
- package/dist/fp/array/orderBy.d.mts +21 -0
- package/dist/fp/array/orderBy.d.ts +21 -0
- package/dist/fp/array/orderBy.js +26 -0
- package/dist/fp/array/orderBy.mjs +26 -0
- package/dist/fp/array/partition.d.mts +39 -0
- package/dist/fp/array/partition.d.ts +39 -0
- package/dist/fp/array/partition.js +9 -0
- package/dist/fp/array/partition.mjs +9 -0
- package/dist/fp/array/reverse.d.mts +19 -0
- package/dist/fp/array/reverse.d.ts +19 -0
- package/dist/fp/array/reverse.js +23 -0
- package/dist/fp/array/reverse.mjs +23 -0
- package/dist/fp/array/sample.d.mts +18 -0
- package/dist/fp/array/sample.d.ts +18 -0
- package/dist/fp/array/sample.js +23 -0
- package/dist/fp/array/sample.mjs +23 -0
- package/dist/fp/array/sampleSize.d.mts +20 -0
- package/dist/fp/array/sampleSize.d.ts +20 -0
- package/dist/fp/array/sampleSize.js +25 -0
- package/dist/fp/array/sampleSize.mjs +25 -0
- package/dist/fp/array/shuffle.d.mts +19 -0
- package/dist/fp/array/shuffle.d.ts +19 -0
- package/dist/fp/array/shuffle.js +24 -0
- package/dist/fp/array/shuffle.mjs +24 -0
- package/dist/fp/array/sortBy.d.mts +26 -0
- package/dist/fp/array/sortBy.d.ts +26 -0
- package/dist/fp/array/sortBy.js +31 -0
- package/dist/fp/array/sortBy.mjs +31 -0
- package/dist/fp/array/tail.d.mts +19 -0
- package/dist/fp/array/tail.d.ts +19 -0
- package/dist/fp/array/tail.js +24 -0
- package/dist/fp/array/tail.mjs +24 -0
- package/dist/fp/array/take.d.mts +26 -0
- package/dist/fp/array/take.d.ts +26 -0
- package/dist/fp/array/take.js +39 -0
- package/dist/fp/array/take.mjs +38 -0
- package/dist/fp/array/takeRight.d.mts +20 -0
- package/dist/fp/array/takeRight.d.ts +20 -0
- package/dist/fp/array/takeRight.js +25 -0
- package/dist/fp/array/takeRight.mjs +25 -0
- package/dist/fp/array/takeRightWhile.d.mts +20 -0
- package/dist/fp/array/takeRightWhile.d.ts +20 -0
- package/dist/fp/array/takeRightWhile.js +25 -0
- package/dist/fp/array/takeRightWhile.mjs +25 -0
- package/dist/fp/array/takeWhile.d.mts +21 -0
- package/dist/fp/array/takeWhile.d.ts +21 -0
- package/dist/fp/array/takeWhile.js +32 -0
- package/dist/fp/array/takeWhile.mjs +31 -0
- package/dist/fp/array/toFilled.d.mts +23 -0
- package/dist/fp/array/toFilled.d.ts +23 -0
- package/dist/fp/array/toFilled.js +30 -0
- package/dist/fp/array/toFilled.mjs +30 -0
- package/dist/fp/array/union.d.mts +20 -0
- package/dist/fp/array/union.d.ts +20 -0
- package/dist/fp/array/union.js +25 -0
- package/dist/fp/array/union.mjs +25 -0
- package/dist/fp/array/unionBy.d.mts +22 -0
- package/dist/fp/array/unionBy.d.ts +22 -0
- package/dist/fp/array/unionBy.js +27 -0
- package/dist/fp/array/unionBy.mjs +27 -0
- package/dist/fp/array/unionWith.d.mts +21 -0
- package/dist/fp/array/unionWith.d.ts +21 -0
- package/dist/fp/array/unionWith.js +26 -0
- package/dist/fp/array/unionWith.mjs +26 -0
- package/dist/fp/array/uniq.d.mts +21 -0
- package/dist/fp/array/uniq.d.ts +21 -0
- package/dist/fp/array/uniq.js +36 -0
- package/dist/fp/array/uniq.mjs +36 -0
- package/dist/fp/array/uniqBy.d.mts +21 -0
- package/dist/fp/array/uniqBy.d.ts +21 -0
- package/dist/fp/array/uniqBy.js +38 -0
- package/dist/fp/array/uniqBy.mjs +38 -0
- package/dist/fp/array/uniqWith.d.mts +20 -0
- package/dist/fp/array/uniqWith.d.ts +20 -0
- package/dist/fp/array/uniqWith.js +35 -0
- package/dist/fp/array/uniqWith.mjs +35 -0
- package/dist/fp/array/unzip.d.mts +20 -0
- package/dist/fp/array/unzip.d.ts +20 -0
- package/dist/fp/array/unzip.js +24 -0
- package/dist/fp/array/unzip.mjs +24 -0
- package/dist/fp/array/unzipWith.d.mts +21 -0
- package/dist/fp/array/unzipWith.d.ts +21 -0
- package/dist/fp/array/unzipWith.js +26 -0
- package/dist/fp/array/unzipWith.mjs +26 -0
- package/dist/fp/array/windowed.d.mts +25 -0
- package/dist/fp/array/windowed.d.ts +25 -0
- package/dist/fp/array/windowed.js +50 -0
- package/dist/fp/array/windowed.mjs +50 -0
- package/dist/fp/array/without.d.mts +19 -0
- package/dist/fp/array/without.d.ts +19 -0
- package/dist/fp/array/without.js +30 -0
- package/dist/fp/array/without.mjs +29 -0
- package/dist/fp/array/xor.d.mts +20 -0
- package/dist/fp/array/xor.d.ts +20 -0
- package/dist/fp/array/xor.js +25 -0
- package/dist/fp/array/xor.mjs +25 -0
- package/dist/fp/array/xorBy.d.mts +22 -0
- package/dist/fp/array/xorBy.d.ts +22 -0
- package/dist/fp/array/xorBy.js +27 -0
- package/dist/fp/array/xorBy.mjs +27 -0
- package/dist/fp/array/xorWith.d.mts +21 -0
- package/dist/fp/array/xorWith.d.ts +21 -0
- package/dist/fp/array/xorWith.js +26 -0
- package/dist/fp/array/xorWith.mjs +26 -0
- package/dist/fp/array/zip.d.mts +61 -0
- package/dist/fp/array/zip.d.ts +61 -0
- package/dist/fp/array/zip.js +9 -0
- package/dist/fp/array/zip.mjs +9 -0
- package/dist/fp/array/zipObject.d.mts +21 -0
- package/dist/fp/array/zipObject.d.ts +21 -0
- package/dist/fp/array/zipObject.js +26 -0
- package/dist/fp/array/zipObject.mjs +26 -0
- package/dist/fp/array/zipWith.d.mts +57 -0
- package/dist/fp/array/zipWith.d.ts +57 -0
- package/dist/fp/array/zipWith.js +9 -0
- package/dist/fp/array/zipWith.mjs +9 -0
- package/dist/fp/index.d.mts +75 -0
- package/dist/fp/index.d.ts +75 -0
- package/dist/fp/index.js +150 -0
- package/dist/fp/index.mjs +77 -0
- package/dist/fp/math/add.d.mts +17 -0
- package/dist/fp/math/add.d.ts +17 -0
- package/dist/fp/math/add.js +21 -0
- package/dist/fp/math/add.mjs +21 -0
- package/dist/fp/math/index.d.mts +2 -0
- package/dist/fp/math/index.d.ts +2 -0
- package/dist/fp/math/index.js +2 -0
- package/dist/fp/math/index.mjs +2 -0
- package/dist/fp/math/multiply.d.mts +17 -0
- package/dist/fp/math/multiply.d.ts +17 -0
- package/dist/fp/math/multiply.js +21 -0
- package/dist/fp/math/multiply.mjs +21 -0
- package/dist/fp/object/index.d.mts +2 -0
- package/dist/fp/object/index.d.ts +2 -0
- package/dist/fp/object/index.js +2 -0
- package/dist/fp/object/index.mjs +2 -0
- package/dist/fp/object/omit.d.mts +18 -0
- package/dist/fp/object/omit.d.ts +18 -0
- package/dist/fp/object/omit.js +23 -0
- package/dist/fp/object/omit.mjs +23 -0
- package/dist/fp/object/pick.d.mts +19 -0
- package/dist/fp/object/pick.d.ts +19 -0
- package/dist/fp/object/pick.js +24 -0
- package/dist/fp/object/pick.mjs +24 -0
- package/dist/fp/pipe.d.mts +235 -0
- package/dist/fp/pipe.d.ts +235 -0
- package/dist/fp/pipe.js +116 -0
- package/dist/fp/pipe.mjs +116 -0
- package/dist/index.d.mts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +4 -0
- package/dist/index.mjs +3 -1
- package/dist/predicate/index.d.mts +2 -1
- package/dist/predicate/index.d.ts +2 -1
- package/dist/predicate/index.js +2 -0
- package/dist/predicate/index.mjs +2 -1
- package/dist/predicate/isIterable.d.mts +26 -0
- package/dist/predicate/isIterable.d.ts +26 -0
- package/dist/predicate/isIterable.js +28 -0
- package/dist/predicate/isIterable.mjs +28 -0
- package/dist/string/trimStart.js +1 -0
- package/dist/string/trimStart.mjs +1 -0
- package/fp.d.ts +1 -0
- package/fp.js +1 -0
- package/package.json +22 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/fp/array/compact.d.ts
|
|
2
|
+
type NotFalsey<T> = Exclude<T, false | null | 0 | 0n | '' | undefined>;
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that removes falsey values from an array. Use it with {@link pipe}.
|
|
5
|
+
*
|
|
6
|
+
* Falsey values include false, null, 0, -0, 0n, an empty string, undefined,
|
|
7
|
+
* and NaN. The returned function is lazy-capable inside {@link pipe}, so a
|
|
8
|
+
* trailing short-circuiting operator such as {@link take} can stop once enough
|
|
9
|
+
* truthy values have been emitted.
|
|
10
|
+
*
|
|
11
|
+
* @template T - The type of elements in the array.
|
|
12
|
+
* @returns A function that maps a readonly array to a new array with falsey values removed.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { compact, pipe } from 'es-toolkit/fp';
|
|
16
|
+
*
|
|
17
|
+
* pipe([0, 1, false, 2, '', 3], compact());
|
|
18
|
+
* // => [1, 2, 3]
|
|
19
|
+
*/
|
|
20
|
+
declare function compact<T>(): (array: readonly T[]) => Array<NotFalsey<T>>;
|
|
21
|
+
//#endregion
|
|
22
|
+
export { compact };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const require_compact = require("../../array/compact.js");
|
|
2
|
+
const require_lazy = require("../_internal/lazy.js");
|
|
3
|
+
//#region src/fp/array/compact.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a function that removes falsey values from an array. Use it with {@link pipe}.
|
|
6
|
+
*
|
|
7
|
+
* Falsey values include false, null, 0, -0, 0n, an empty string, undefined,
|
|
8
|
+
* and NaN. The returned function is lazy-capable inside {@link pipe}, so a
|
|
9
|
+
* trailing short-circuiting operator such as {@link take} can stop once enough
|
|
10
|
+
* truthy values have been emitted.
|
|
11
|
+
*
|
|
12
|
+
* @template T - The type of elements in the array.
|
|
13
|
+
* @returns A function that maps a readonly array to a new array with falsey values removed.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import { compact, pipe } from 'es-toolkit/fp';
|
|
17
|
+
*
|
|
18
|
+
* pipe([0, 1, false, 2, '', 3], compact());
|
|
19
|
+
* // => [1, 2, 3]
|
|
20
|
+
*/
|
|
21
|
+
function compact() {
|
|
22
|
+
function compactEager(array) {
|
|
23
|
+
return require_compact.compact(array);
|
|
24
|
+
}
|
|
25
|
+
const compactLazy = require_lazy.createLazyFunction((value, _index, emit) => {
|
|
26
|
+
if (value) emit(value);
|
|
27
|
+
});
|
|
28
|
+
return require_lazy.combineEagerAndLazyFunctions(compactEager, compactLazy);
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
exports.compact = compact;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { compact as compact$1 } from "../../array/compact.mjs";
|
|
2
|
+
import { combineEagerAndLazyFunctions, createLazyFunction } from "../_internal/lazy.mjs";
|
|
3
|
+
//#region src/fp/array/compact.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a function that removes falsey values from an array. Use it with {@link pipe}.
|
|
6
|
+
*
|
|
7
|
+
* Falsey values include false, null, 0, -0, 0n, an empty string, undefined,
|
|
8
|
+
* and NaN. The returned function is lazy-capable inside {@link pipe}, so a
|
|
9
|
+
* trailing short-circuiting operator such as {@link take} can stop once enough
|
|
10
|
+
* truthy values have been emitted.
|
|
11
|
+
*
|
|
12
|
+
* @template T - The type of elements in the array.
|
|
13
|
+
* @returns A function that maps a readonly array to a new array with falsey values removed.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import { compact, pipe } from 'es-toolkit/fp';
|
|
17
|
+
*
|
|
18
|
+
* pipe([0, 1, false, 2, '', 3], compact());
|
|
19
|
+
* // => [1, 2, 3]
|
|
20
|
+
*/
|
|
21
|
+
function compact() {
|
|
22
|
+
function compactEager(array) {
|
|
23
|
+
return compact$1(array);
|
|
24
|
+
}
|
|
25
|
+
return combineEagerAndLazyFunctions(compactEager, createLazyFunction((value, _index, emit) => {
|
|
26
|
+
if (value) emit(value);
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
export { compact };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/fp/array/countBy.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that counts values by a derived key.
|
|
4
|
+
*
|
|
5
|
+
* The mapper receives each value, its index, and the full input array. The returned object
|
|
6
|
+
* uses mapper results as keys and occurrence counts as values.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the array.
|
|
9
|
+
* @template K - The property-key type produced by the mapper.
|
|
10
|
+
* @param mapper - Called with each value, index, and array to produce a key.
|
|
11
|
+
* @returns A function that maps a readonly array to counts by key.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { countBy, pipe } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* pipe([1, 2, 3, 4, 5], countBy(value => (value % 2 === 0 ? 'even' : 'odd')));
|
|
17
|
+
* // => { odd: 3, even: 2 }
|
|
18
|
+
*/
|
|
19
|
+
declare function countBy<T, K extends PropertyKey>(mapper: (item: T, index: number, array: readonly T[]) => K): (array: readonly T[]) => Record<K, number>;
|
|
20
|
+
//#endregion
|
|
21
|
+
export { countBy };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/fp/array/countBy.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that counts values by a derived key.
|
|
4
|
+
*
|
|
5
|
+
* The mapper receives each value, its index, and the full input array. The returned object
|
|
6
|
+
* uses mapper results as keys and occurrence counts as values.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the array.
|
|
9
|
+
* @template K - The property-key type produced by the mapper.
|
|
10
|
+
* @param mapper - Called with each value, index, and array to produce a key.
|
|
11
|
+
* @returns A function that maps a readonly array to counts by key.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { countBy, pipe } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* pipe([1, 2, 3, 4, 5], countBy(value => (value % 2 === 0 ? 'even' : 'odd')));
|
|
17
|
+
* // => { odd: 3, even: 2 }
|
|
18
|
+
*/
|
|
19
|
+
declare function countBy<T, K extends PropertyKey>(mapper: (item: T, index: number, array: readonly T[]) => K): (array: readonly T[]) => Record<K, number>;
|
|
20
|
+
//#endregion
|
|
21
|
+
export { countBy };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const require_countBy = require("../../array/countBy.js");
|
|
2
|
+
//#region src/fp/array/countBy.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that counts values by a derived key.
|
|
5
|
+
*
|
|
6
|
+
* The mapper receives each value, its index, and the full input array. The returned object
|
|
7
|
+
* uses mapper results as keys and occurrence counts as values.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the array.
|
|
10
|
+
* @template K - The property-key type produced by the mapper.
|
|
11
|
+
* @param mapper - Called with each value, index, and array to produce a key.
|
|
12
|
+
* @returns A function that maps a readonly array to counts by key.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { countBy, pipe } from 'es-toolkit/fp';
|
|
16
|
+
*
|
|
17
|
+
* pipe([1, 2, 3, 4, 5], countBy(value => (value % 2 === 0 ? 'even' : 'odd')));
|
|
18
|
+
* // => { odd: 3, even: 2 }
|
|
19
|
+
*/
|
|
20
|
+
function countBy(mapper) {
|
|
21
|
+
return function(array) {
|
|
22
|
+
return require_countBy.countBy(array, mapper);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
exports.countBy = countBy;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { countBy as countBy$1 } from "../../array/countBy.mjs";
|
|
2
|
+
//#region src/fp/array/countBy.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that counts values by a derived key.
|
|
5
|
+
*
|
|
6
|
+
* The mapper receives each value, its index, and the full input array. The returned object
|
|
7
|
+
* uses mapper results as keys and occurrence counts as values.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the array.
|
|
10
|
+
* @template K - The property-key type produced by the mapper.
|
|
11
|
+
* @param mapper - Called with each value, index, and array to produce a key.
|
|
12
|
+
* @returns A function that maps a readonly array to counts by key.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { countBy, pipe } from 'es-toolkit/fp';
|
|
16
|
+
*
|
|
17
|
+
* pipe([1, 2, 3, 4, 5], countBy(value => (value % 2 === 0 ? 'even' : 'odd')));
|
|
18
|
+
* // => { odd: 3, even: 2 }
|
|
19
|
+
*/
|
|
20
|
+
function countBy(mapper) {
|
|
21
|
+
return function(array) {
|
|
22
|
+
return countBy$1(array, mapper);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { countBy };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/fp/array/difference.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns values from the piped array that are not present in another array.
|
|
4
|
+
*
|
|
5
|
+
* Equality follows SameValueZero through Set membership, matching the main
|
|
6
|
+
* {@link difference} implementation. The returned function is lazy-capable
|
|
7
|
+
* inside {@link pipe}.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the arrays.
|
|
10
|
+
* @param secondArray - Values to exclude from the piped array.
|
|
11
|
+
* @returns A function that maps the piped array to its difference.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { difference, pipe } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* pipe([1, 2, 3], difference([2, 4]));
|
|
17
|
+
* // => [1, 3]
|
|
18
|
+
*/
|
|
19
|
+
declare function difference<T>(secondArray: readonly T[]): (array: readonly T[]) => T[];
|
|
20
|
+
//#endregion
|
|
21
|
+
export { difference };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/fp/array/difference.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns values from the piped array that are not present in another array.
|
|
4
|
+
*
|
|
5
|
+
* Equality follows SameValueZero through Set membership, matching the main
|
|
6
|
+
* {@link difference} implementation. The returned function is lazy-capable
|
|
7
|
+
* inside {@link pipe}.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the arrays.
|
|
10
|
+
* @param secondArray - Values to exclude from the piped array.
|
|
11
|
+
* @returns A function that maps the piped array to its difference.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { difference, pipe } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* pipe([1, 2, 3], difference([2, 4]));
|
|
17
|
+
* // => [1, 3]
|
|
18
|
+
*/
|
|
19
|
+
declare function difference<T>(secondArray: readonly T[]): (array: readonly T[]) => T[];
|
|
20
|
+
//#endregion
|
|
21
|
+
export { difference };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const require_difference = require("../../array/difference.js");
|
|
2
|
+
const require_lazy = require("../_internal/lazy.js");
|
|
3
|
+
//#region src/fp/array/difference.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a function that returns values from the piped array that are not present in another array.
|
|
6
|
+
*
|
|
7
|
+
* Equality follows SameValueZero through Set membership, matching the main
|
|
8
|
+
* {@link difference} implementation. The returned function is lazy-capable
|
|
9
|
+
* inside {@link pipe}.
|
|
10
|
+
*
|
|
11
|
+
* @template T - The type of elements in the arrays.
|
|
12
|
+
* @param secondArray - Values to exclude from the piped array.
|
|
13
|
+
* @returns A function that maps the piped array to its difference.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import { difference, pipe } from 'es-toolkit/fp';
|
|
17
|
+
*
|
|
18
|
+
* pipe([1, 2, 3], difference([2, 4]));
|
|
19
|
+
* // => [1, 3]
|
|
20
|
+
*/
|
|
21
|
+
function difference(secondArray) {
|
|
22
|
+
const secondSet = new Set(secondArray);
|
|
23
|
+
function differenceEager(array) {
|
|
24
|
+
return require_difference.difference(array, secondArray);
|
|
25
|
+
}
|
|
26
|
+
const differenceLazy = require_lazy.createLazyFunction((value, _index, emit) => {
|
|
27
|
+
if (!secondSet.has(value)) emit(value);
|
|
28
|
+
});
|
|
29
|
+
return require_lazy.combineEagerAndLazyFunctions(differenceEager, differenceLazy);
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
exports.difference = difference;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { difference as difference$1 } from "../../array/difference.mjs";
|
|
2
|
+
import { combineEagerAndLazyFunctions, createLazyFunction } from "../_internal/lazy.mjs";
|
|
3
|
+
//#region src/fp/array/difference.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a function that returns values from the piped array that are not present in another array.
|
|
6
|
+
*
|
|
7
|
+
* Equality follows SameValueZero through Set membership, matching the main
|
|
8
|
+
* {@link difference} implementation. The returned function is lazy-capable
|
|
9
|
+
* inside {@link pipe}.
|
|
10
|
+
*
|
|
11
|
+
* @template T - The type of elements in the arrays.
|
|
12
|
+
* @param secondArray - Values to exclude from the piped array.
|
|
13
|
+
* @returns A function that maps the piped array to its difference.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import { difference, pipe } from 'es-toolkit/fp';
|
|
17
|
+
*
|
|
18
|
+
* pipe([1, 2, 3], difference([2, 4]));
|
|
19
|
+
* // => [1, 3]
|
|
20
|
+
*/
|
|
21
|
+
function difference(secondArray) {
|
|
22
|
+
const secondSet = new Set(secondArray);
|
|
23
|
+
function differenceEager(array) {
|
|
24
|
+
return difference$1(array, secondArray);
|
|
25
|
+
}
|
|
26
|
+
return combineEagerAndLazyFunctions(differenceEager, createLazyFunction((value, _index, emit) => {
|
|
27
|
+
if (!secondSet.has(value)) emit(value);
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { difference };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/fp/array/differenceBy.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns values whose mapped identity is absent from another array.
|
|
4
|
+
*
|
|
5
|
+
* The mapper is applied to values from both arrays. The returned function is
|
|
6
|
+
* lazy-capable inside {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the piped array.
|
|
9
|
+
* @template U - The type of elements in the configured array.
|
|
10
|
+
* @param secondArray - Values to exclude from the piped array after mapping.
|
|
11
|
+
* @param mapper - Maps values from both arrays to comparison keys.
|
|
12
|
+
* @returns A function that maps the piped array to its mapped difference.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { differenceBy, pipe } from 'es-toolkit/fp';
|
|
16
|
+
*
|
|
17
|
+
* pipe([{ id: 1 }, { id: 2 }], differenceBy([2], value => typeof value === 'number' ? value : value.id));
|
|
18
|
+
* // => [{ id: 1 }]
|
|
19
|
+
*/
|
|
20
|
+
declare function differenceBy<T, U>(secondArray: readonly U[], mapper: (value: T | U) => unknown): (array: readonly T[]) => T[];
|
|
21
|
+
//#endregion
|
|
22
|
+
export { differenceBy };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/fp/array/differenceBy.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns values whose mapped identity is absent from another array.
|
|
4
|
+
*
|
|
5
|
+
* The mapper is applied to values from both arrays. The returned function is
|
|
6
|
+
* lazy-capable inside {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the piped array.
|
|
9
|
+
* @template U - The type of elements in the configured array.
|
|
10
|
+
* @param secondArray - Values to exclude from the piped array after mapping.
|
|
11
|
+
* @param mapper - Maps values from both arrays to comparison keys.
|
|
12
|
+
* @returns A function that maps the piped array to its mapped difference.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { differenceBy, pipe } from 'es-toolkit/fp';
|
|
16
|
+
*
|
|
17
|
+
* pipe([{ id: 1 }, { id: 2 }], differenceBy([2], value => typeof value === 'number' ? value : value.id));
|
|
18
|
+
* // => [{ id: 1 }]
|
|
19
|
+
*/
|
|
20
|
+
declare function differenceBy<T, U>(secondArray: readonly U[], mapper: (value: T | U) => unknown): (array: readonly T[]) => T[];
|
|
21
|
+
//#endregion
|
|
22
|
+
export { differenceBy };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const require_differenceBy = require("../../array/differenceBy.js");
|
|
2
|
+
const require_lazy = require("../_internal/lazy.js");
|
|
3
|
+
//#region src/fp/array/differenceBy.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a function that returns values whose mapped identity is absent from another array.
|
|
6
|
+
*
|
|
7
|
+
* The mapper is applied to values from both arrays. The returned function is
|
|
8
|
+
* lazy-capable inside {@link pipe}.
|
|
9
|
+
*
|
|
10
|
+
* @template T - The type of elements in the piped array.
|
|
11
|
+
* @template U - The type of elements in the configured array.
|
|
12
|
+
* @param secondArray - Values to exclude from the piped array after mapping.
|
|
13
|
+
* @param mapper - Maps values from both arrays to comparison keys.
|
|
14
|
+
* @returns A function that maps the piped array to its mapped difference.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* import { differenceBy, pipe } from 'es-toolkit/fp';
|
|
18
|
+
*
|
|
19
|
+
* pipe([{ id: 1 }, { id: 2 }], differenceBy([2], value => typeof value === 'number' ? value : value.id));
|
|
20
|
+
* // => [{ id: 1 }]
|
|
21
|
+
*/
|
|
22
|
+
function differenceBy(secondArray, mapper) {
|
|
23
|
+
const mappedSecondSet = new Set(secondArray.map((item) => mapper(item)));
|
|
24
|
+
function differenceByEager(array) {
|
|
25
|
+
return require_differenceBy.differenceBy(array, secondArray, mapper);
|
|
26
|
+
}
|
|
27
|
+
const differenceByLazy = require_lazy.createLazyFunction((value, _index, emit) => {
|
|
28
|
+
if (!mappedSecondSet.has(mapper(value))) emit(value);
|
|
29
|
+
});
|
|
30
|
+
return require_lazy.combineEagerAndLazyFunctions(differenceByEager, differenceByLazy);
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
exports.differenceBy = differenceBy;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { differenceBy as differenceBy$1 } from "../../array/differenceBy.mjs";
|
|
2
|
+
import { combineEagerAndLazyFunctions, createLazyFunction } from "../_internal/lazy.mjs";
|
|
3
|
+
//#region src/fp/array/differenceBy.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a function that returns values whose mapped identity is absent from another array.
|
|
6
|
+
*
|
|
7
|
+
* The mapper is applied to values from both arrays. The returned function is
|
|
8
|
+
* lazy-capable inside {@link pipe}.
|
|
9
|
+
*
|
|
10
|
+
* @template T - The type of elements in the piped array.
|
|
11
|
+
* @template U - The type of elements in the configured array.
|
|
12
|
+
* @param secondArray - Values to exclude from the piped array after mapping.
|
|
13
|
+
* @param mapper - Maps values from both arrays to comparison keys.
|
|
14
|
+
* @returns A function that maps the piped array to its mapped difference.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* import { differenceBy, pipe } from 'es-toolkit/fp';
|
|
18
|
+
*
|
|
19
|
+
* pipe([{ id: 1 }, { id: 2 }], differenceBy([2], value => typeof value === 'number' ? value : value.id));
|
|
20
|
+
* // => [{ id: 1 }]
|
|
21
|
+
*/
|
|
22
|
+
function differenceBy(secondArray, mapper) {
|
|
23
|
+
const mappedSecondSet = new Set(secondArray.map((item) => mapper(item)));
|
|
24
|
+
function differenceByEager(array) {
|
|
25
|
+
return differenceBy$1(array, secondArray, mapper);
|
|
26
|
+
}
|
|
27
|
+
return combineEagerAndLazyFunctions(differenceByEager, createLazyFunction((value, _index, emit) => {
|
|
28
|
+
if (!mappedSecondSet.has(mapper(value))) emit(value);
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { differenceBy };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/fp/array/differenceWith.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns values that are not equal to any configured value.
|
|
4
|
+
*
|
|
5
|
+
* Equality is decided by the provided comparator. The returned function is
|
|
6
|
+
* lazy-capable inside {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the piped array.
|
|
9
|
+
* @template U - The type of elements in the configured array.
|
|
10
|
+
* @param secondArray - Values to compare against the piped array.
|
|
11
|
+
* @param areItemsEqual - Returns true when a piped value equals a configured value.
|
|
12
|
+
* @returns A function that maps the piped array to its custom difference.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { differenceWith, pipe } from 'es-toolkit/fp';
|
|
16
|
+
*
|
|
17
|
+
* pipe([{ id: 1 }, { id: 2 }], differenceWith([2], (item, id) => item.id === id));
|
|
18
|
+
* // => [{ id: 1 }]
|
|
19
|
+
*/
|
|
20
|
+
declare function differenceWith<T, U>(secondArray: readonly U[], areItemsEqual: (item: T, other: U) => boolean): (array: readonly T[]) => T[];
|
|
21
|
+
//#endregion
|
|
22
|
+
export { differenceWith };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/fp/array/differenceWith.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns values that are not equal to any configured value.
|
|
4
|
+
*
|
|
5
|
+
* Equality is decided by the provided comparator. The returned function is
|
|
6
|
+
* lazy-capable inside {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the piped array.
|
|
9
|
+
* @template U - The type of elements in the configured array.
|
|
10
|
+
* @param secondArray - Values to compare against the piped array.
|
|
11
|
+
* @param areItemsEqual - Returns true when a piped value equals a configured value.
|
|
12
|
+
* @returns A function that maps the piped array to its custom difference.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { differenceWith, pipe } from 'es-toolkit/fp';
|
|
16
|
+
*
|
|
17
|
+
* pipe([{ id: 1 }, { id: 2 }], differenceWith([2], (item, id) => item.id === id));
|
|
18
|
+
* // => [{ id: 1 }]
|
|
19
|
+
*/
|
|
20
|
+
declare function differenceWith<T, U>(secondArray: readonly U[], areItemsEqual: (item: T, other: U) => boolean): (array: readonly T[]) => T[];
|
|
21
|
+
//#endregion
|
|
22
|
+
export { differenceWith };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const require_differenceWith = require("../../array/differenceWith.js");
|
|
2
|
+
const require_lazy = require("../_internal/lazy.js");
|
|
3
|
+
//#region src/fp/array/differenceWith.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a function that returns values that are not equal to any configured value.
|
|
6
|
+
*
|
|
7
|
+
* Equality is decided by the provided comparator. The returned function is
|
|
8
|
+
* lazy-capable inside {@link pipe}.
|
|
9
|
+
*
|
|
10
|
+
* @template T - The type of elements in the piped array.
|
|
11
|
+
* @template U - The type of elements in the configured array.
|
|
12
|
+
* @param secondArray - Values to compare against the piped array.
|
|
13
|
+
* @param areItemsEqual - Returns true when a piped value equals a configured value.
|
|
14
|
+
* @returns A function that maps the piped array to its custom difference.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* import { differenceWith, pipe } from 'es-toolkit/fp';
|
|
18
|
+
*
|
|
19
|
+
* pipe([{ id: 1 }, { id: 2 }], differenceWith([2], (item, id) => item.id === id));
|
|
20
|
+
* // => [{ id: 1 }]
|
|
21
|
+
*/
|
|
22
|
+
function differenceWith(secondArray, areItemsEqual) {
|
|
23
|
+
function differenceWithEager(array) {
|
|
24
|
+
return require_differenceWith.differenceWith(array, secondArray, areItemsEqual);
|
|
25
|
+
}
|
|
26
|
+
const differenceWithLazy = require_lazy.createLazyFunction((value, _index, emit) => {
|
|
27
|
+
if (secondArray.every((other) => !areItemsEqual(value, other))) emit(value);
|
|
28
|
+
});
|
|
29
|
+
return require_lazy.combineEagerAndLazyFunctions(differenceWithEager, differenceWithLazy);
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
exports.differenceWith = differenceWith;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { differenceWith as differenceWith$1 } from "../../array/differenceWith.mjs";
|
|
2
|
+
import { combineEagerAndLazyFunctions, createLazyFunction } from "../_internal/lazy.mjs";
|
|
3
|
+
//#region src/fp/array/differenceWith.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a function that returns values that are not equal to any configured value.
|
|
6
|
+
*
|
|
7
|
+
* Equality is decided by the provided comparator. The returned function is
|
|
8
|
+
* lazy-capable inside {@link pipe}.
|
|
9
|
+
*
|
|
10
|
+
* @template T - The type of elements in the piped array.
|
|
11
|
+
* @template U - The type of elements in the configured array.
|
|
12
|
+
* @param secondArray - Values to compare against the piped array.
|
|
13
|
+
* @param areItemsEqual - Returns true when a piped value equals a configured value.
|
|
14
|
+
* @returns A function that maps the piped array to its custom difference.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* import { differenceWith, pipe } from 'es-toolkit/fp';
|
|
18
|
+
*
|
|
19
|
+
* pipe([{ id: 1 }, { id: 2 }], differenceWith([2], (item, id) => item.id === id));
|
|
20
|
+
* // => [{ id: 1 }]
|
|
21
|
+
*/
|
|
22
|
+
function differenceWith(secondArray, areItemsEqual) {
|
|
23
|
+
function differenceWithEager(array) {
|
|
24
|
+
return differenceWith$1(array, secondArray, areItemsEqual);
|
|
25
|
+
}
|
|
26
|
+
return combineEagerAndLazyFunctions(differenceWithEager, createLazyFunction((value, _index, emit) => {
|
|
27
|
+
if (secondArray.every((other) => !areItemsEqual(value, other))) emit(value);
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { differenceWith };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/fp/array/drop.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that removes a number of values from the start of an array.
|
|
4
|
+
*
|
|
5
|
+
* Negative counts are treated as 0, matching the main {@link drop}
|
|
6
|
+
* implementation. The returned function is lazy-capable inside {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the array.
|
|
9
|
+
* @param count - The number of values to skip from the start.
|
|
10
|
+
* @returns A function that maps the piped array to the remaining suffix.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { drop, pipe } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2, 3, 4], drop(2));
|
|
16
|
+
* // => [3, 4]
|
|
17
|
+
*/
|
|
18
|
+
declare function drop<T>(count: number): (array: readonly T[]) => T[];
|
|
19
|
+
//#endregion
|
|
20
|
+
export { drop };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/fp/array/drop.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that removes a number of values from the start of an array.
|
|
4
|
+
*
|
|
5
|
+
* Negative counts are treated as 0, matching the main {@link drop}
|
|
6
|
+
* implementation. The returned function is lazy-capable inside {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the array.
|
|
9
|
+
* @param count - The number of values to skip from the start.
|
|
10
|
+
* @returns A function that maps the piped array to the remaining suffix.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { drop, pipe } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2, 3, 4], drop(2));
|
|
16
|
+
* // => [3, 4]
|
|
17
|
+
*/
|
|
18
|
+
declare function drop<T>(count: number): (array: readonly T[]) => T[];
|
|
19
|
+
//#endregion
|
|
20
|
+
export { drop };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const require_drop = require("../../array/drop.js");
|
|
2
|
+
const require_lazy = require("../_internal/lazy.js");
|
|
3
|
+
//#region src/fp/array/drop.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a function that removes a number of values from the start of an array.
|
|
6
|
+
*
|
|
7
|
+
* Negative counts are treated as 0, matching the main {@link drop}
|
|
8
|
+
* implementation. The returned function is lazy-capable inside {@link pipe}.
|
|
9
|
+
*
|
|
10
|
+
* @template T - The type of elements in the array.
|
|
11
|
+
* @param count - The number of values to skip from the start.
|
|
12
|
+
* @returns A function that maps the piped array to the remaining suffix.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { drop, pipe } from 'es-toolkit/fp';
|
|
16
|
+
*
|
|
17
|
+
* pipe([1, 2, 3, 4], drop(2));
|
|
18
|
+
* // => [3, 4]
|
|
19
|
+
*/
|
|
20
|
+
function drop(count) {
|
|
21
|
+
const normalizedCount = Number.isNaN(count) ? 0 : Math.trunc(Math.max(count, 0));
|
|
22
|
+
function dropEager(array) {
|
|
23
|
+
return require_drop.drop(array, count);
|
|
24
|
+
}
|
|
25
|
+
const dropLazy = require_lazy.createLazyFunction((value, index, emit) => {
|
|
26
|
+
if (index >= normalizedCount) emit(value);
|
|
27
|
+
});
|
|
28
|
+
return require_lazy.combineEagerAndLazyFunctions(dropEager, dropLazy);
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
exports.drop = drop;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { drop as drop$1 } from "../../array/drop.mjs";
|
|
2
|
+
import { combineEagerAndLazyFunctions, createLazyFunction } from "../_internal/lazy.mjs";
|
|
3
|
+
//#region src/fp/array/drop.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a function that removes a number of values from the start of an array.
|
|
6
|
+
*
|
|
7
|
+
* Negative counts are treated as 0, matching the main {@link drop}
|
|
8
|
+
* implementation. The returned function is lazy-capable inside {@link pipe}.
|
|
9
|
+
*
|
|
10
|
+
* @template T - The type of elements in the array.
|
|
11
|
+
* @param count - The number of values to skip from the start.
|
|
12
|
+
* @returns A function that maps the piped array to the remaining suffix.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { drop, pipe } from 'es-toolkit/fp';
|
|
16
|
+
*
|
|
17
|
+
* pipe([1, 2, 3, 4], drop(2));
|
|
18
|
+
* // => [3, 4]
|
|
19
|
+
*/
|
|
20
|
+
function drop(count) {
|
|
21
|
+
const normalizedCount = Number.isNaN(count) ? 0 : Math.trunc(Math.max(count, 0));
|
|
22
|
+
function dropEager(array) {
|
|
23
|
+
return drop$1(array, count);
|
|
24
|
+
}
|
|
25
|
+
return combineEagerAndLazyFunctions(dropEager, createLazyFunction((value, index, emit) => {
|
|
26
|
+
if (index >= normalizedCount) emit(value);
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
export { drop };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/fp/array/dropRight.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that removes a number of values from the end of an array.
|
|
4
|
+
*
|
|
5
|
+
* The returned function follows the main {@link dropRight} behavior and returns a new array.
|
|
6
|
+
* Use it with {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the array.
|
|
9
|
+
* @param count - The number of values to drop from the end.
|
|
10
|
+
* @returns A function that maps a readonly array to the remaining prefix.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { dropRight, pipe } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2, 3, 4], dropRight(2));
|
|
16
|
+
* // => [1, 2]
|
|
17
|
+
*/
|
|
18
|
+
declare function dropRight<T>(count: number): (array: readonly T[]) => T[];
|
|
19
|
+
//#endregion
|
|
20
|
+
export { dropRight };
|