es-toolkit 1.48.1-dev.1890 → 1.48.1-dev.1894
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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/drop.js +1 -1
- package/dist/compat/array/drop.mjs +1 -1
- package/dist/compat/array/dropRight.js +1 -1
- package/dist/compat/array/dropRight.mjs +1 -1
- 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/subtract.js +1 -1
- package/dist/compat/math/subtract.mjs +1 -1
- package/dist/compat/object/omitBy.js +1 -1
- package/dist/compat/object/omitBy.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/fp.d.ts +1 -0
- package/fp.js +1 -0
- package/package.json +22 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/fp/array/shuffle.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns a shuffled copy of an array.
|
|
4
|
+
*
|
|
5
|
+
* The returned function uses the main {@link shuffle} implementation and does not mutate
|
|
6
|
+
* the input array. Use it with {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the array.
|
|
9
|
+
* @returns A function that maps a readonly array to a shuffled copy.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* import { pipe, shuffle } from 'es-toolkit/fp';
|
|
13
|
+
*
|
|
14
|
+
* pipe([1, 2, 3], shuffle());
|
|
15
|
+
* // => the same values in random order
|
|
16
|
+
*/
|
|
17
|
+
declare function shuffle<T>(): (array: readonly T[]) => T[];
|
|
18
|
+
//#endregion
|
|
19
|
+
export { shuffle };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const require_shuffle = require("../../array/shuffle.js");
|
|
2
|
+
//#region src/fp/array/shuffle.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that returns a shuffled copy of an array.
|
|
5
|
+
*
|
|
6
|
+
* The returned function uses the main {@link shuffle} implementation and does not mutate
|
|
7
|
+
* the input array. Use it with {@link pipe}.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the array.
|
|
10
|
+
* @returns A function that maps a readonly array to a shuffled copy.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { pipe, shuffle } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2, 3], shuffle());
|
|
16
|
+
* // => the same values in random order
|
|
17
|
+
*/
|
|
18
|
+
function shuffle() {
|
|
19
|
+
return function(array) {
|
|
20
|
+
return require_shuffle.shuffle(array);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
exports.shuffle = shuffle;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { shuffle as shuffle$1 } from "../../array/shuffle.mjs";
|
|
2
|
+
//#region src/fp/array/shuffle.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that returns a shuffled copy of an array.
|
|
5
|
+
*
|
|
6
|
+
* The returned function uses the main {@link shuffle} implementation and does not mutate
|
|
7
|
+
* the input array. Use it with {@link pipe}.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of elements in the array.
|
|
10
|
+
* @returns A function that maps a readonly array to a shuffled copy.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { pipe, shuffle } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2, 3], shuffle());
|
|
16
|
+
* // => the same values in random order
|
|
17
|
+
*/
|
|
18
|
+
function shuffle() {
|
|
19
|
+
return function(array) {
|
|
20
|
+
return shuffle$1(array);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { shuffle };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//#region src/fp/array/sortBy.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that sorts an array of objects in ascending order by the
|
|
4
|
+
* given `criteria`. Each criterion is either an object key or a function
|
|
5
|
+
* returning the value to compare. When two elements tie on a criterion, the
|
|
6
|
+
* next criterion breaks the tie. The sort is stable. Use it with {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of the objects in the array.
|
|
9
|
+
* @param criteria - Object keys and/or selector functions used for comparison, applied in order.
|
|
10
|
+
* @returns A function that maps a `readonly T[]` to a new, sorted `T[]`.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { pipe, sortBy } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* const users = [
|
|
16
|
+
* { user: 'foo', age: 24 },
|
|
17
|
+
* { user: 'bar', age: 7 },
|
|
18
|
+
* { user: 'foo', age: 8 },
|
|
19
|
+
* ];
|
|
20
|
+
*
|
|
21
|
+
* pipe(users, sortBy(['user', 'age']));
|
|
22
|
+
* // => [{ user: 'bar', age: 7 }, { user: 'foo', age: 8 }, { user: 'foo', age: 24 }]
|
|
23
|
+
*/
|
|
24
|
+
declare function sortBy<T extends object>(criteria: Array<((item: T) => unknown) | keyof T>): (array: readonly T[]) => T[];
|
|
25
|
+
//#endregion
|
|
26
|
+
export { sortBy };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//#region src/fp/array/sortBy.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that sorts an array of objects in ascending order by the
|
|
4
|
+
* given `criteria`. Each criterion is either an object key or a function
|
|
5
|
+
* returning the value to compare. When two elements tie on a criterion, the
|
|
6
|
+
* next criterion breaks the tie. The sort is stable. Use it with {@link pipe}.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of the objects in the array.
|
|
9
|
+
* @param criteria - Object keys and/or selector functions used for comparison, applied in order.
|
|
10
|
+
* @returns A function that maps a `readonly T[]` to a new, sorted `T[]`.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { pipe, sortBy } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* const users = [
|
|
16
|
+
* { user: 'foo', age: 24 },
|
|
17
|
+
* { user: 'bar', age: 7 },
|
|
18
|
+
* { user: 'foo', age: 8 },
|
|
19
|
+
* ];
|
|
20
|
+
*
|
|
21
|
+
* pipe(users, sortBy(['user', 'age']));
|
|
22
|
+
* // => [{ user: 'bar', age: 7 }, { user: 'foo', age: 8 }, { user: 'foo', age: 24 }]
|
|
23
|
+
*/
|
|
24
|
+
declare function sortBy<T extends object>(criteria: Array<((item: T) => unknown) | keyof T>): (array: readonly T[]) => T[];
|
|
25
|
+
//#endregion
|
|
26
|
+
export { sortBy };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const require_sortBy = require("../../array/sortBy.js");
|
|
2
|
+
//#region src/fp/array/sortBy.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that sorts an array of objects in ascending order by the
|
|
5
|
+
* given `criteria`. Each criterion is either an object key or a function
|
|
6
|
+
* returning the value to compare. When two elements tie on a criterion, the
|
|
7
|
+
* next criterion breaks the tie. The sort is stable. Use it with {@link pipe}.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of the objects in the array.
|
|
10
|
+
* @param criteria - Object keys and/or selector functions used for comparison, applied in order.
|
|
11
|
+
* @returns A function that maps a `readonly T[]` to a new, sorted `T[]`.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { pipe, sortBy } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* const users = [
|
|
17
|
+
* { user: 'foo', age: 24 },
|
|
18
|
+
* { user: 'bar', age: 7 },
|
|
19
|
+
* { user: 'foo', age: 8 },
|
|
20
|
+
* ];
|
|
21
|
+
*
|
|
22
|
+
* pipe(users, sortBy(['user', 'age']));
|
|
23
|
+
* // => [{ user: 'bar', age: 7 }, { user: 'foo', age: 8 }, { user: 'foo', age: 24 }]
|
|
24
|
+
*/
|
|
25
|
+
function sortBy(criteria) {
|
|
26
|
+
return function(array) {
|
|
27
|
+
return require_sortBy.sortBy(array, criteria);
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
exports.sortBy = sortBy;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { sortBy as sortBy$1 } from "../../array/sortBy.mjs";
|
|
2
|
+
//#region src/fp/array/sortBy.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that sorts an array of objects in ascending order by the
|
|
5
|
+
* given `criteria`. Each criterion is either an object key or a function
|
|
6
|
+
* returning the value to compare. When two elements tie on a criterion, the
|
|
7
|
+
* next criterion breaks the tie. The sort is stable. Use it with {@link pipe}.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of the objects in the array.
|
|
10
|
+
* @param criteria - Object keys and/or selector functions used for comparison, applied in order.
|
|
11
|
+
* @returns A function that maps a `readonly T[]` to a new, sorted `T[]`.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { pipe, sortBy } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* const users = [
|
|
17
|
+
* { user: 'foo', age: 24 },
|
|
18
|
+
* { user: 'bar', age: 7 },
|
|
19
|
+
* { user: 'foo', age: 8 },
|
|
20
|
+
* ];
|
|
21
|
+
*
|
|
22
|
+
* pipe(users, sortBy(['user', 'age']));
|
|
23
|
+
* // => [{ user: 'bar', age: 7 }, { user: 'foo', age: 8 }, { user: 'foo', age: 24 }]
|
|
24
|
+
*/
|
|
25
|
+
function sortBy(criteria) {
|
|
26
|
+
return function(array) {
|
|
27
|
+
return sortBy$1(array, criteria);
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { sortBy };
|
|
@@ -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,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 };
|