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,19 @@
|
|
|
1
|
+
//#region src/fp/array/tail.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns every element except the first one.
|
|
4
|
+
*
|
|
5
|
+
* Empty and single-element arrays return an empty array, matching the main {@link tail}
|
|
6
|
+
* behavior. Use the returned function with {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the array.
|
|
9
|
+
* @returns A function that maps a readonly array to its tail elements.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* import { pipe, tail } from 'es-toolkit/fp';
|
|
13
|
+
*
|
|
14
|
+
* pipe([1, 2, 3], tail());
|
|
15
|
+
* // => [2, 3]
|
|
16
|
+
*/
|
|
17
|
+
declare function tail<T>(): (array: readonly T[]) => T[];
|
|
18
|
+
//#endregion
|
|
19
|
+
export { tail };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const require_tail = require("../../array/tail.js");
|
|
2
|
+
//#region src/fp/array/tail.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that returns every element except the first one.
|
|
5
|
+
*
|
|
6
|
+
* Empty and single-element arrays return an empty array, matching the main {@link tail}
|
|
7
|
+
* behavior. Use the returned function with {@link pipe}.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the array.
|
|
10
|
+
* @returns A function that maps a readonly array to its tail elements.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { pipe, tail } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2, 3], tail());
|
|
16
|
+
* // => [2, 3]
|
|
17
|
+
*/
|
|
18
|
+
function tail() {
|
|
19
|
+
return function(array) {
|
|
20
|
+
return require_tail.tail(array);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
exports.tail = tail;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { tail as tail$1 } from "../../array/tail.mjs";
|
|
2
|
+
//#region src/fp/array/tail.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that returns every element except the first one.
|
|
5
|
+
*
|
|
6
|
+
* Empty and single-element arrays return an empty array, matching the main {@link tail}
|
|
7
|
+
* behavior. Use the returned function with {@link pipe}.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the array.
|
|
10
|
+
* @returns A function that maps a readonly array to its tail elements.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { pipe, tail } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2, 3], tail());
|
|
16
|
+
* // => [2, 3]
|
|
17
|
+
*/
|
|
18
|
+
function tail() {
|
|
19
|
+
return function(array) {
|
|
20
|
+
return tail$1(array);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { tail };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//#region src/fp/array/take.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns the first `count` elements of an array. If
|
|
4
|
+
* `count` is greater than the array length, the whole array is returned. Use it
|
|
5
|
+
* with {@link pipe}.
|
|
6
|
+
*
|
|
7
|
+
* The returned function is **lazy-capable** for a non-negative integer `count`:
|
|
8
|
+
* inside a {@link pipe} it stops the walk as soon as `count` elements have been
|
|
9
|
+
* collected, so preceding lazy functions never process the rest of the input.
|
|
10
|
+
*
|
|
11
|
+
* @template T - The type of elements in the array.
|
|
12
|
+
* @param count - The number of elements to take from the front of the array.
|
|
13
|
+
* @returns A function that maps a `readonly T[]` to a new `T[]`.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import { pipe, take } from 'es-toolkit/fp';
|
|
17
|
+
*
|
|
18
|
+
* pipe([1, 2, 3, 4, 5], take(3)); // => [1, 2, 3]
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* // Early termination: `map` only runs three times.
|
|
22
|
+
* pipe([1, 2, 3, 4, 5], map(expensive), take(3));
|
|
23
|
+
*/
|
|
24
|
+
declare function take<T>(count: number): (array: readonly T[]) => T[];
|
|
25
|
+
//#endregion
|
|
26
|
+
export { take };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//#region src/fp/array/take.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns the first `count` elements of an array. If
|
|
4
|
+
* `count` is greater than the array length, the whole array is returned. Use it
|
|
5
|
+
* with {@link pipe}.
|
|
6
|
+
*
|
|
7
|
+
* The returned function is **lazy-capable** for a non-negative integer `count`:
|
|
8
|
+
* inside a {@link pipe} it stops the walk as soon as `count` elements have been
|
|
9
|
+
* collected, so preceding lazy functions never process the rest of the input.
|
|
10
|
+
*
|
|
11
|
+
* @template T - The type of elements in the array.
|
|
12
|
+
* @param count - The number of elements to take from the front of the array.
|
|
13
|
+
* @returns A function that maps a `readonly T[]` to a new `T[]`.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import { pipe, take } from 'es-toolkit/fp';
|
|
17
|
+
*
|
|
18
|
+
* pipe([1, 2, 3, 4, 5], take(3)); // => [1, 2, 3]
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* // Early termination: `map` only runs three times.
|
|
22
|
+
* pipe([1, 2, 3, 4, 5], map(expensive), take(3));
|
|
23
|
+
*/
|
|
24
|
+
declare function take<T>(count: number): (array: readonly T[]) => T[];
|
|
25
|
+
//#endregion
|
|
26
|
+
export { take };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const require_take = require("../../array/take.js");
|
|
2
|
+
const require_lazy = require("../_internal/lazy.js");
|
|
3
|
+
//#region src/fp/array/take.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a function that returns the first `count` elements of an array. If
|
|
6
|
+
* `count` is greater than the array length, the whole array is returned. Use it
|
|
7
|
+
* with {@link pipe}.
|
|
8
|
+
*
|
|
9
|
+
* The returned function is **lazy-capable** for a non-negative integer `count`:
|
|
10
|
+
* inside a {@link pipe} it stops the walk as soon as `count` elements have been
|
|
11
|
+
* collected, so preceding lazy functions never process the rest of the input.
|
|
12
|
+
*
|
|
13
|
+
* @template T - The type of elements in the array.
|
|
14
|
+
* @param count - The number of elements to take from the front of the array.
|
|
15
|
+
* @returns A function that maps a `readonly T[]` to a new `T[]`.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* import { pipe, take } from 'es-toolkit/fp';
|
|
19
|
+
*
|
|
20
|
+
* pipe([1, 2, 3, 4, 5], take(3)); // => [1, 2, 3]
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* // Early termination: `map` only runs three times.
|
|
24
|
+
* pipe([1, 2, 3, 4, 5], map(expensive), take(3));
|
|
25
|
+
*/
|
|
26
|
+
function take(count) {
|
|
27
|
+
function takeEager(array) {
|
|
28
|
+
return require_take.take(array, count);
|
|
29
|
+
}
|
|
30
|
+
if (!Number.isInteger(count) || count < 0) return takeEager;
|
|
31
|
+
const takeLazy = require_lazy.createLazyFunction((value, index, emit) => {
|
|
32
|
+
if (index >= count) return false;
|
|
33
|
+
emit(value);
|
|
34
|
+
return index < count - 1;
|
|
35
|
+
});
|
|
36
|
+
return require_lazy.combineEagerAndLazyFunctions(takeEager, takeLazy, { shortCircuit: true });
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
exports.take = take;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { take as take$1 } from "../../array/take.mjs";
|
|
2
|
+
import { combineEagerAndLazyFunctions, createLazyFunction } from "../_internal/lazy.mjs";
|
|
3
|
+
//#region src/fp/array/take.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a function that returns the first `count` elements of an array. If
|
|
6
|
+
* `count` is greater than the array length, the whole array is returned. Use it
|
|
7
|
+
* with {@link pipe}.
|
|
8
|
+
*
|
|
9
|
+
* The returned function is **lazy-capable** for a non-negative integer `count`:
|
|
10
|
+
* inside a {@link pipe} it stops the walk as soon as `count` elements have been
|
|
11
|
+
* collected, so preceding lazy functions never process the rest of the input.
|
|
12
|
+
*
|
|
13
|
+
* @template T - The type of elements in the array.
|
|
14
|
+
* @param count - The number of elements to take from the front of the array.
|
|
15
|
+
* @returns A function that maps a `readonly T[]` to a new `T[]`.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* import { pipe, take } from 'es-toolkit/fp';
|
|
19
|
+
*
|
|
20
|
+
* pipe([1, 2, 3, 4, 5], take(3)); // => [1, 2, 3]
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* // Early termination: `map` only runs three times.
|
|
24
|
+
* pipe([1, 2, 3, 4, 5], map(expensive), take(3));
|
|
25
|
+
*/
|
|
26
|
+
function take(count) {
|
|
27
|
+
function takeEager(array) {
|
|
28
|
+
return take$1(array, count);
|
|
29
|
+
}
|
|
30
|
+
if (!Number.isInteger(count) || count < 0) return takeEager;
|
|
31
|
+
return combineEagerAndLazyFunctions(takeEager, createLazyFunction((value, index, emit) => {
|
|
32
|
+
if (index >= count) return false;
|
|
33
|
+
emit(value);
|
|
34
|
+
return index < count - 1;
|
|
35
|
+
}), { shortCircuit: true });
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { take };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/fp/array/takeRight.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns the last count values of an array.
|
|
4
|
+
*
|
|
5
|
+
* The returned function follows the main {@link takeRight} 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 take from the end.
|
|
10
|
+
* @returns A function that maps a readonly array to its suffix.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { pipe, takeRight } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2, 3, 4], takeRight(2));
|
|
16
|
+
* // => [3, 4]
|
|
17
|
+
*/
|
|
18
|
+
declare function takeRight<T>(count: number): (array: readonly T[]) => T[];
|
|
19
|
+
//#endregion
|
|
20
|
+
export { takeRight };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/fp/array/takeRight.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns the last count values of an array.
|
|
4
|
+
*
|
|
5
|
+
* The returned function follows the main {@link takeRight} 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 take from the end.
|
|
10
|
+
* @returns A function that maps a readonly array to its suffix.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { pipe, takeRight } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2, 3, 4], takeRight(2));
|
|
16
|
+
* // => [3, 4]
|
|
17
|
+
*/
|
|
18
|
+
declare function takeRight<T>(count: number): (array: readonly T[]) => T[];
|
|
19
|
+
//#endregion
|
|
20
|
+
export { takeRight };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const require_takeRight = require("../../array/takeRight.js");
|
|
2
|
+
//#region src/fp/array/takeRight.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that returns the last count values of an array.
|
|
5
|
+
*
|
|
6
|
+
* The returned function follows the main {@link takeRight} behavior and returns a new array.
|
|
7
|
+
* Use it with {@link pipe}.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the array.
|
|
10
|
+
* @param count - The number of values to take from the end.
|
|
11
|
+
* @returns A function that maps a readonly array to its suffix.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { pipe, takeRight } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* pipe([1, 2, 3, 4], takeRight(2));
|
|
17
|
+
* // => [3, 4]
|
|
18
|
+
*/
|
|
19
|
+
function takeRight(count) {
|
|
20
|
+
return function(array) {
|
|
21
|
+
return require_takeRight.takeRight(array, count);
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
exports.takeRight = takeRight;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { takeRight as takeRight$1 } from "../../array/takeRight.mjs";
|
|
2
|
+
//#region src/fp/array/takeRight.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that returns the last count values of an array.
|
|
5
|
+
*
|
|
6
|
+
* The returned function follows the main {@link takeRight} behavior and returns a new array.
|
|
7
|
+
* Use it with {@link pipe}.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the array.
|
|
10
|
+
* @param count - The number of values to take from the end.
|
|
11
|
+
* @returns A function that maps a readonly array to its suffix.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { pipe, takeRight } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* pipe([1, 2, 3, 4], takeRight(2));
|
|
17
|
+
* // => [3, 4]
|
|
18
|
+
*/
|
|
19
|
+
function takeRight(count) {
|
|
20
|
+
return function(array) {
|
|
21
|
+
return takeRight$1(array, count);
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { takeRight };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/fp/array/takeRightWhile.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that takes trailing values while a predicate returns true.
|
|
4
|
+
*
|
|
5
|
+
* The predicate is evaluated from right to left and receives the value, index, and full
|
|
6
|
+
* input array. Use the returned function with {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the array.
|
|
9
|
+
* @param predicate - Called with each value, index, and array while taking from the end.
|
|
10
|
+
* @returns A function that maps a readonly array to the matching suffix.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { pipe, takeRightWhile } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2, 3, 4], takeRightWhile(value => value > 2));
|
|
16
|
+
* // => [3, 4]
|
|
17
|
+
*/
|
|
18
|
+
declare function takeRightWhile<T>(predicate: (element: T, index: number, array: readonly T[]) => boolean): (array: readonly T[]) => T[];
|
|
19
|
+
//#endregion
|
|
20
|
+
export { takeRightWhile };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/fp/array/takeRightWhile.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that takes trailing values while a predicate returns true.
|
|
4
|
+
*
|
|
5
|
+
* The predicate is evaluated from right to left and receives the value, index, and full
|
|
6
|
+
* input array. Use the returned function with {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the array.
|
|
9
|
+
* @param predicate - Called with each value, index, and array while taking from the end.
|
|
10
|
+
* @returns A function that maps a readonly array to the matching suffix.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { pipe, takeRightWhile } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2, 3, 4], takeRightWhile(value => value > 2));
|
|
16
|
+
* // => [3, 4]
|
|
17
|
+
*/
|
|
18
|
+
declare function takeRightWhile<T>(predicate: (element: T, index: number, array: readonly T[]) => boolean): (array: readonly T[]) => T[];
|
|
19
|
+
//#endregion
|
|
20
|
+
export { takeRightWhile };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const require_takeRightWhile = require("../../array/takeRightWhile.js");
|
|
2
|
+
//#region src/fp/array/takeRightWhile.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that takes trailing values while a predicate returns true.
|
|
5
|
+
*
|
|
6
|
+
* The predicate is evaluated from right to left and receives the value, index, and full
|
|
7
|
+
* input array. Use the returned function with {@link pipe}.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the array.
|
|
10
|
+
* @param predicate - Called with each value, index, and array while taking from the end.
|
|
11
|
+
* @returns A function that maps a readonly array to the matching suffix.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { pipe, takeRightWhile } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* pipe([1, 2, 3, 4], takeRightWhile(value => value > 2));
|
|
17
|
+
* // => [3, 4]
|
|
18
|
+
*/
|
|
19
|
+
function takeRightWhile(predicate) {
|
|
20
|
+
return function(array) {
|
|
21
|
+
return require_takeRightWhile.takeRightWhile(array, predicate);
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
exports.takeRightWhile = takeRightWhile;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { takeRightWhile as takeRightWhile$1 } from "../../array/takeRightWhile.mjs";
|
|
2
|
+
//#region src/fp/array/takeRightWhile.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that takes trailing values while a predicate returns true.
|
|
5
|
+
*
|
|
6
|
+
* The predicate is evaluated from right to left and receives the value, index, and full
|
|
7
|
+
* input array. Use the returned function with {@link pipe}.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the array.
|
|
10
|
+
* @param predicate - Called with each value, index, and array while taking from the end.
|
|
11
|
+
* @returns A function that maps a readonly array to the matching suffix.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { pipe, takeRightWhile } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* pipe([1, 2, 3, 4], takeRightWhile(value => value > 2));
|
|
17
|
+
* // => [3, 4]
|
|
18
|
+
*/
|
|
19
|
+
function takeRightWhile(predicate) {
|
|
20
|
+
return function(array) {
|
|
21
|
+
return takeRightWhile$1(array, predicate);
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { takeRightWhile };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/fp/array/takeWhile.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that takes leading values while a predicate returns true.
|
|
4
|
+
*
|
|
5
|
+
* The returned function is lazy-capable and short-circuiting inside
|
|
6
|
+
* {@link pipe}; once the predicate returns false, upstream lazy operators stop
|
|
7
|
+
* processing further input.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the array.
|
|
10
|
+
* @param predicate - Called with each value and index until it returns false.
|
|
11
|
+
* @returns A function that maps the piped array to the matching prefix.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { pipe, takeWhile } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* pipe([1, 2, 3, 1], takeWhile(value => value < 3));
|
|
17
|
+
* // => [1, 2]
|
|
18
|
+
*/
|
|
19
|
+
declare function takeWhile<T>(predicate: (element: T, index: number) => boolean): (array: readonly T[]) => T[];
|
|
20
|
+
//#endregion
|
|
21
|
+
export { takeWhile };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/fp/array/takeWhile.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that takes leading values while a predicate returns true.
|
|
4
|
+
*
|
|
5
|
+
* The returned function is lazy-capable and short-circuiting inside
|
|
6
|
+
* {@link pipe}; once the predicate returns false, upstream lazy operators stop
|
|
7
|
+
* processing further input.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the array.
|
|
10
|
+
* @param predicate - Called with each value and index until it returns false.
|
|
11
|
+
* @returns A function that maps the piped array to the matching prefix.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { pipe, takeWhile } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* pipe([1, 2, 3, 1], takeWhile(value => value < 3));
|
|
17
|
+
* // => [1, 2]
|
|
18
|
+
*/
|
|
19
|
+
declare function takeWhile<T>(predicate: (element: T, index: number) => boolean): (array: readonly T[]) => T[];
|
|
20
|
+
//#endregion
|
|
21
|
+
export { takeWhile };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const require_takeWhile = require("../../array/takeWhile.js");
|
|
2
|
+
const require_lazy = require("../_internal/lazy.js");
|
|
3
|
+
//#region src/fp/array/takeWhile.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a function that takes leading values while a predicate returns true.
|
|
6
|
+
*
|
|
7
|
+
* The returned function is lazy-capable and short-circuiting inside
|
|
8
|
+
* {@link pipe}; once the predicate returns false, upstream lazy operators stop
|
|
9
|
+
* processing further input.
|
|
10
|
+
*
|
|
11
|
+
* @template T - The type of elements in the array.
|
|
12
|
+
* @param predicate - Called with each value and index until it returns false.
|
|
13
|
+
* @returns A function that maps the piped array to the matching prefix.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import { pipe, takeWhile } from 'es-toolkit/fp';
|
|
17
|
+
*
|
|
18
|
+
* pipe([1, 2, 3, 1], takeWhile(value => value < 3));
|
|
19
|
+
* // => [1, 2]
|
|
20
|
+
*/
|
|
21
|
+
function takeWhile(predicate) {
|
|
22
|
+
function takeWhileEager(array) {
|
|
23
|
+
return require_takeWhile.takeWhile(array, (element, index) => predicate(element, index));
|
|
24
|
+
}
|
|
25
|
+
const takeWhileLazy = require_lazy.createLazyFunction((value, index, emit) => {
|
|
26
|
+
if (!predicate(value, index)) return false;
|
|
27
|
+
emit(value);
|
|
28
|
+
});
|
|
29
|
+
return require_lazy.combineEagerAndLazyFunctions(takeWhileEager, takeWhileLazy, { shortCircuit: true });
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
exports.takeWhile = takeWhile;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { takeWhile as takeWhile$1 } from "../../array/takeWhile.mjs";
|
|
2
|
+
import { combineEagerAndLazyFunctions, createLazyFunction } from "../_internal/lazy.mjs";
|
|
3
|
+
//#region src/fp/array/takeWhile.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a function that takes leading values while a predicate returns true.
|
|
6
|
+
*
|
|
7
|
+
* The returned function is lazy-capable and short-circuiting inside
|
|
8
|
+
* {@link pipe}; once the predicate returns false, upstream lazy operators stop
|
|
9
|
+
* processing further input.
|
|
10
|
+
*
|
|
11
|
+
* @template T - The type of elements in the array.
|
|
12
|
+
* @param predicate - Called with each value and index until it returns false.
|
|
13
|
+
* @returns A function that maps the piped array to the matching prefix.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import { pipe, takeWhile } from 'es-toolkit/fp';
|
|
17
|
+
*
|
|
18
|
+
* pipe([1, 2, 3, 1], takeWhile(value => value < 3));
|
|
19
|
+
* // => [1, 2]
|
|
20
|
+
*/
|
|
21
|
+
function takeWhile(predicate) {
|
|
22
|
+
function takeWhileEager(array) {
|
|
23
|
+
return takeWhile$1(array, (element, index) => predicate(element, index));
|
|
24
|
+
}
|
|
25
|
+
return combineEagerAndLazyFunctions(takeWhileEager, createLazyFunction((value, index, emit) => {
|
|
26
|
+
if (!predicate(value, index)) return false;
|
|
27
|
+
emit(value);
|
|
28
|
+
}), { shortCircuit: true });
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { takeWhile };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/fp/array/toFilled.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns a filled copy of an array.
|
|
4
|
+
*
|
|
5
|
+
* The returned function follows Array.prototype.fill indexing semantics through the main
|
|
6
|
+
* {@link toFilled} implementation and does not mutate the input array.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the input array.
|
|
9
|
+
* @template U - The type of the fill value.
|
|
10
|
+
* @param value - The value to write into the returned array.
|
|
11
|
+
* @param start - The start index. Defaults to 0.
|
|
12
|
+
* @param end - The end index. Defaults to the array length.
|
|
13
|
+
* @returns A function that maps a readonly array to a filled copy.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import { pipe, toFilled } from 'es-toolkit/fp';
|
|
17
|
+
*
|
|
18
|
+
* pipe([1, 2, 3], toFilled(0, 1));
|
|
19
|
+
* // => [1, 0, 0]
|
|
20
|
+
*/
|
|
21
|
+
declare function toFilled<T, U>(value: U, start?: number, end?: number): (array: readonly T[]) => Array<T | U>;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { toFilled };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/fp/array/toFilled.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns a filled copy of an array.
|
|
4
|
+
*
|
|
5
|
+
* The returned function follows Array.prototype.fill indexing semantics through the main
|
|
6
|
+
* {@link toFilled} implementation and does not mutate the input array.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the input array.
|
|
9
|
+
* @template U - The type of the fill value.
|
|
10
|
+
* @param value - The value to write into the returned array.
|
|
11
|
+
* @param start - The start index. Defaults to 0.
|
|
12
|
+
* @param end - The end index. Defaults to the array length.
|
|
13
|
+
* @returns A function that maps a readonly array to a filled copy.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import { pipe, toFilled } from 'es-toolkit/fp';
|
|
17
|
+
*
|
|
18
|
+
* pipe([1, 2, 3], toFilled(0, 1));
|
|
19
|
+
* // => [1, 0, 0]
|
|
20
|
+
*/
|
|
21
|
+
declare function toFilled<T, U>(value: U, start?: number, end?: number): (array: readonly T[]) => Array<T | U>;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { toFilled };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const require_toFilled = require("../../array/toFilled.js");
|
|
2
|
+
//#region src/fp/array/toFilled.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that returns a filled copy of an array.
|
|
5
|
+
*
|
|
6
|
+
* The returned function follows Array.prototype.fill indexing semantics through the main
|
|
7
|
+
* {@link toFilled} implementation and does not mutate the input array.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the input array.
|
|
10
|
+
* @template U - The type of the fill value.
|
|
11
|
+
* @param value - The value to write into the returned array.
|
|
12
|
+
* @param start - The start index. Defaults to 0.
|
|
13
|
+
* @param end - The end index. Defaults to the array length.
|
|
14
|
+
* @returns A function that maps a readonly array to a filled copy.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* import { pipe, toFilled } from 'es-toolkit/fp';
|
|
18
|
+
*
|
|
19
|
+
* pipe([1, 2, 3], toFilled(0, 1));
|
|
20
|
+
* // => [1, 0, 0]
|
|
21
|
+
*/
|
|
22
|
+
function toFilled(value, start, end) {
|
|
23
|
+
return function(array) {
|
|
24
|
+
if (start == null) return require_toFilled.toFilled(array, value);
|
|
25
|
+
if (end == null) return require_toFilled.toFilled(array, value, start);
|
|
26
|
+
return require_toFilled.toFilled(array, value, start, end);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
exports.toFilled = toFilled;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { toFilled as toFilled$1 } from "../../array/toFilled.mjs";
|
|
2
|
+
//#region src/fp/array/toFilled.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that returns a filled copy of an array.
|
|
5
|
+
*
|
|
6
|
+
* The returned function follows Array.prototype.fill indexing semantics through the main
|
|
7
|
+
* {@link toFilled} implementation and does not mutate the input array.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the input array.
|
|
10
|
+
* @template U - The type of the fill value.
|
|
11
|
+
* @param value - The value to write into the returned array.
|
|
12
|
+
* @param start - The start index. Defaults to 0.
|
|
13
|
+
* @param end - The end index. Defaults to the array length.
|
|
14
|
+
* @returns A function that maps a readonly array to a filled copy.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* import { pipe, toFilled } from 'es-toolkit/fp';
|
|
18
|
+
*
|
|
19
|
+
* pipe([1, 2, 3], toFilled(0, 1));
|
|
20
|
+
* // => [1, 0, 0]
|
|
21
|
+
*/
|
|
22
|
+
function toFilled(value, start, end) {
|
|
23
|
+
return function(array) {
|
|
24
|
+
if (start == null) return toFilled$1(array, value);
|
|
25
|
+
if (end == null) return toFilled$1(array, value, start);
|
|
26
|
+
return toFilled$1(array, value, start, end);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
export { toFilled };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/fp/array/union.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns unique values from the piped array and secondArray.
|
|
4
|
+
*
|
|
5
|
+
* Values keep their first occurrence order, matching the main {@link union} behavior.
|
|
6
|
+
* Use the returned function with {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the arrays.
|
|
9
|
+
* @param secondArray - Values to include after the piped array.
|
|
10
|
+
* @returns A function that maps a readonly array to its union with secondArray.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { pipe, union } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2], union([2, 3]));
|
|
16
|
+
* // => [1, 2, 3]
|
|
17
|
+
*/
|
|
18
|
+
declare function union<T>(secondArray: readonly T[]): (array: readonly T[]) => T[];
|
|
19
|
+
//#endregion
|
|
20
|
+
export { union };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/fp/array/union.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns unique values from the piped array and secondArray.
|
|
4
|
+
*
|
|
5
|
+
* Values keep their first occurrence order, matching the main {@link union} behavior.
|
|
6
|
+
* Use the returned function with {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the arrays.
|
|
9
|
+
* @param secondArray - Values to include after the piped array.
|
|
10
|
+
* @returns A function that maps a readonly array to its union with secondArray.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { pipe, union } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2], union([2, 3]));
|
|
16
|
+
* // => [1, 2, 3]
|
|
17
|
+
*/
|
|
18
|
+
declare function union<T>(secondArray: readonly T[]): (array: readonly T[]) => T[];
|
|
19
|
+
//#endregion
|
|
20
|
+
export { union };
|