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,37 @@
|
|
|
1
|
+
//#region src/fp/array/maxBy.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns the element with the maximum selected number from a non-empty array.
|
|
4
|
+
*
|
|
5
|
+
* If the selector returns NaN, the element that produced NaN is returned, matching
|
|
6
|
+
* the main {@link maxBy} behavior.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the array.
|
|
9
|
+
* @param getValue - Selects a numeric value from each element, index, and array.
|
|
10
|
+
* @returns A function that maps a non-empty readonly array to the maximum element.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { maxBy, pipe } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([{ score: 10 }, { score: 20 }] as const, maxBy(item => item.score));
|
|
16
|
+
* // => { score: 20 }
|
|
17
|
+
*/
|
|
18
|
+
declare function maxBy<T>(getValue: (element: T, index: number, array: readonly T[]) => number): (array: readonly [T, ...T[]]) => T;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a function that returns the element with the maximum selected number.
|
|
21
|
+
*
|
|
22
|
+
* Empty arrays return undefined. If the selector returns NaN, the element that
|
|
23
|
+
* produced NaN is returned, matching the main {@link maxBy} behavior.
|
|
24
|
+
*
|
|
25
|
+
* @template T - The type of elements in the array.
|
|
26
|
+
* @param getValue - Selects a numeric value from each element, index, and array.
|
|
27
|
+
* @returns A function that maps a readonly array to the maximum element, or undefined.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* import { maxBy, pipe } from 'es-toolkit/fp';
|
|
31
|
+
*
|
|
32
|
+
* pipe([] as Array<{ score: number }>, maxBy(item => item.score));
|
|
33
|
+
* // => undefined
|
|
34
|
+
*/
|
|
35
|
+
declare function maxBy<T>(getValue: (element: T, index: number, array: readonly T[]) => number): (array: readonly T[]) => T | undefined;
|
|
36
|
+
//#endregion
|
|
37
|
+
export { maxBy };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//#region src/fp/array/minBy.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns the element with the minimum selected number from a non-empty array.
|
|
4
|
+
*
|
|
5
|
+
* If the selector returns NaN, the element that produced NaN is returned, matching
|
|
6
|
+
* the main {@link minBy} behavior.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the array.
|
|
9
|
+
* @param getValue - Selects a numeric value from each element, index, and array.
|
|
10
|
+
* @returns A function that maps a non-empty readonly array to the minimum element.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { minBy, pipe } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([{ score: 10 }, { score: 20 }] as const, minBy(item => item.score));
|
|
16
|
+
* // => { score: 10 }
|
|
17
|
+
*/
|
|
18
|
+
declare function minBy<T>(getValue: (element: T, index: number, array: readonly T[]) => number): (array: readonly [T, ...T[]]) => T;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a function that returns the element with the minimum selected number.
|
|
21
|
+
*
|
|
22
|
+
* Empty arrays return undefined. If the selector returns NaN, the element that
|
|
23
|
+
* produced NaN is returned, matching the main {@link minBy} behavior.
|
|
24
|
+
*
|
|
25
|
+
* @template T - The type of elements in the array.
|
|
26
|
+
* @param getValue - Selects a numeric value from each element, index, and array.
|
|
27
|
+
* @returns A function that maps a readonly array to the minimum element, or undefined.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* import { minBy, pipe } from 'es-toolkit/fp';
|
|
31
|
+
*
|
|
32
|
+
* pipe([] as Array<{ score: number }>, minBy(item => item.score));
|
|
33
|
+
* // => undefined
|
|
34
|
+
*/
|
|
35
|
+
declare function minBy<T>(getValue: (element: T, index: number, array: readonly T[]) => number): (array: readonly T[]) => T | undefined;
|
|
36
|
+
//#endregion
|
|
37
|
+
export { minBy };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//#region src/fp/array/minBy.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns the element with the minimum selected number from a non-empty array.
|
|
4
|
+
*
|
|
5
|
+
* If the selector returns NaN, the element that produced NaN is returned, matching
|
|
6
|
+
* the main {@link minBy} behavior.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the array.
|
|
9
|
+
* @param getValue - Selects a numeric value from each element, index, and array.
|
|
10
|
+
* @returns A function that maps a non-empty readonly array to the minimum element.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { minBy, pipe } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([{ score: 10 }, { score: 20 }] as const, minBy(item => item.score));
|
|
16
|
+
* // => { score: 10 }
|
|
17
|
+
*/
|
|
18
|
+
declare function minBy<T>(getValue: (element: T, index: number, array: readonly T[]) => number): (array: readonly [T, ...T[]]) => T;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a function that returns the element with the minimum selected number.
|
|
21
|
+
*
|
|
22
|
+
* Empty arrays return undefined. If the selector returns NaN, the element that
|
|
23
|
+
* produced NaN is returned, matching the main {@link minBy} behavior.
|
|
24
|
+
*
|
|
25
|
+
* @template T - The type of elements in the array.
|
|
26
|
+
* @param getValue - Selects a numeric value from each element, index, and array.
|
|
27
|
+
* @returns A function that maps a readonly array to the minimum element, or undefined.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* import { minBy, pipe } from 'es-toolkit/fp';
|
|
31
|
+
*
|
|
32
|
+
* pipe([] as Array<{ score: number }>, minBy(item => item.score));
|
|
33
|
+
* // => undefined
|
|
34
|
+
*/
|
|
35
|
+
declare function minBy<T>(getValue: (element: T, index: number, array: readonly T[]) => number): (array: readonly T[]) => T | undefined;
|
|
36
|
+
//#endregion
|
|
37
|
+
export { minBy };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/fp/array/orderBy.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that sorts objects by criteria and order directions.
|
|
4
|
+
*
|
|
5
|
+
* Criteria can be object keys or selector functions. The returned function does not mutate
|
|
6
|
+
* the input array; it returns a sorted copy following the main {@link orderBy} behavior.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The object type in the array.
|
|
9
|
+
* @param criteria - Keys or selector functions used for comparison.
|
|
10
|
+
* @param orders - Sort directions corresponding to the criteria.
|
|
11
|
+
* @returns A function that maps a readonly array to a sorted copy.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { orderBy, pipe } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* pipe([{ name: 'a', age: 2 }, { name: 'b', age: 1 }], orderBy(['age'], ['asc']));
|
|
17
|
+
* // => [{ name: 'b', age: 1 }, { name: 'a', age: 2 }]
|
|
18
|
+
*/
|
|
19
|
+
declare function orderBy<T extends object>(criteria: Array<((item: T) => unknown) | keyof T>, orders: Array<'asc' | 'desc'>): (array: readonly T[]) => T[];
|
|
20
|
+
//#endregion
|
|
21
|
+
export { orderBy };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/fp/array/orderBy.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that sorts objects by criteria and order directions.
|
|
4
|
+
*
|
|
5
|
+
* Criteria can be object keys or selector functions. The returned function does not mutate
|
|
6
|
+
* the input array; it returns a sorted copy following the main {@link orderBy} behavior.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The object type in the array.
|
|
9
|
+
* @param criteria - Keys or selector functions used for comparison.
|
|
10
|
+
* @param orders - Sort directions corresponding to the criteria.
|
|
11
|
+
* @returns A function that maps a readonly array to a sorted copy.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { orderBy, pipe } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* pipe([{ name: 'a', age: 2 }, { name: 'b', age: 1 }], orderBy(['age'], ['asc']));
|
|
17
|
+
* // => [{ name: 'b', age: 1 }, { name: 'a', age: 2 }]
|
|
18
|
+
*/
|
|
19
|
+
declare function orderBy<T extends object>(criteria: Array<((item: T) => unknown) | keyof T>, orders: Array<'asc' | 'desc'>): (array: readonly T[]) => T[];
|
|
20
|
+
//#endregion
|
|
21
|
+
export { orderBy };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const require_orderBy = require("../../array/orderBy.js");
|
|
2
|
+
//#region src/fp/array/orderBy.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that sorts objects by criteria and order directions.
|
|
5
|
+
*
|
|
6
|
+
* Criteria can be object keys or selector functions. The returned function does not mutate
|
|
7
|
+
* the input array; it returns a sorted copy following the main {@link orderBy} behavior.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The object type in the array.
|
|
10
|
+
* @param criteria - Keys or selector functions used for comparison.
|
|
11
|
+
* @param orders - Sort directions corresponding to the criteria.
|
|
12
|
+
* @returns A function that maps a readonly array to a sorted copy.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { orderBy, pipe } from 'es-toolkit/fp';
|
|
16
|
+
*
|
|
17
|
+
* pipe([{ name: 'a', age: 2 }, { name: 'b', age: 1 }], orderBy(['age'], ['asc']));
|
|
18
|
+
* // => [{ name: 'b', age: 1 }, { name: 'a', age: 2 }]
|
|
19
|
+
*/
|
|
20
|
+
function orderBy(criteria, orders) {
|
|
21
|
+
return function(array) {
|
|
22
|
+
return require_orderBy.orderBy(array, criteria, orders);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
exports.orderBy = orderBy;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { orderBy as orderBy$1 } from "../../array/orderBy.mjs";
|
|
2
|
+
//#region src/fp/array/orderBy.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that sorts objects by criteria and order directions.
|
|
5
|
+
*
|
|
6
|
+
* Criteria can be object keys or selector functions. The returned function does not mutate
|
|
7
|
+
* the input array; it returns a sorted copy following the main {@link orderBy} behavior.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The object type in the array.
|
|
10
|
+
* @param criteria - Keys or selector functions used for comparison.
|
|
11
|
+
* @param orders - Sort directions corresponding to the criteria.
|
|
12
|
+
* @returns A function that maps a readonly array to a sorted copy.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { orderBy, pipe } from 'es-toolkit/fp';
|
|
16
|
+
*
|
|
17
|
+
* pipe([{ name: 'a', age: 2 }, { name: 'b', age: 1 }], orderBy(['age'], ['asc']));
|
|
18
|
+
* // => [{ name: 'b', age: 1 }, { name: 'a', age: 2 }]
|
|
19
|
+
*/
|
|
20
|
+
function orderBy(criteria, orders) {
|
|
21
|
+
return function(array) {
|
|
22
|
+
return orderBy$1(array, criteria, orders);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { orderBy };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
//#region src/fp/array/partition.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that splits an array with a type-guard predicate.
|
|
4
|
+
*
|
|
5
|
+
* Values for which the predicate returns true are placed in the first array and
|
|
6
|
+
* narrowed to U. The remaining values are placed in the second array as Exclude<T, U>.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the array.
|
|
9
|
+
* @template U - The narrowed element type accepted by the type guard.
|
|
10
|
+
* @param predicate - Type guard called with each value, index, and array.
|
|
11
|
+
* @returns A function that maps a readonly array to truthy and falsy partitions.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { partition, pipe } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* const isString = (value: string | number): value is string => typeof value === 'string';
|
|
17
|
+
* pipe([1, 'a', 2, 'b'], partition(isString));
|
|
18
|
+
* // => [['a', 'b'], [1, 2]]
|
|
19
|
+
*/
|
|
20
|
+
declare function partition<T, U extends T>(predicate: (value: T, index: number, array: readonly T[]) => value is U): (array: readonly T[]) => [truthy: U[], falsy: Array<Exclude<T, U>>];
|
|
21
|
+
/**
|
|
22
|
+
* Creates a function that splits an array by a predicate.
|
|
23
|
+
*
|
|
24
|
+
* Values for which the predicate returns true are placed in the first array; all
|
|
25
|
+
* other values are placed in the second array.
|
|
26
|
+
*
|
|
27
|
+
* @template T - The type of elements in the array.
|
|
28
|
+
* @param predicate - Predicate called with each value, index, and array.
|
|
29
|
+
* @returns A function that maps a readonly array to truthy and falsy partitions.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* import { partition, pipe } from 'es-toolkit/fp';
|
|
33
|
+
*
|
|
34
|
+
* pipe([1, 2, 3, 4], partition(value => value % 2 === 0));
|
|
35
|
+
* // => [[2, 4], [1, 3]]
|
|
36
|
+
*/
|
|
37
|
+
declare function partition<T>(predicate: (value: T, index: number, array: readonly T[]) => boolean): (array: readonly T[]) => [truthy: T[], falsy: T[]];
|
|
38
|
+
//#endregion
|
|
39
|
+
export { partition };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
//#region src/fp/array/partition.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that splits an array with a type-guard predicate.
|
|
4
|
+
*
|
|
5
|
+
* Values for which the predicate returns true are placed in the first array and
|
|
6
|
+
* narrowed to U. The remaining values are placed in the second array as Exclude<T, U>.
|
|
7
|
+
*
|
|
8
|
+
* @template T - The type of elements in the array.
|
|
9
|
+
* @template U - The narrowed element type accepted by the type guard.
|
|
10
|
+
* @param predicate - Type guard called with each value, index, and array.
|
|
11
|
+
* @returns A function that maps a readonly array to truthy and falsy partitions.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { partition, pipe } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* const isString = (value: string | number): value is string => typeof value === 'string';
|
|
17
|
+
* pipe([1, 'a', 2, 'b'], partition(isString));
|
|
18
|
+
* // => [['a', 'b'], [1, 2]]
|
|
19
|
+
*/
|
|
20
|
+
declare function partition<T, U extends T>(predicate: (value: T, index: number, array: readonly T[]) => value is U): (array: readonly T[]) => [truthy: U[], falsy: Array<Exclude<T, U>>];
|
|
21
|
+
/**
|
|
22
|
+
* Creates a function that splits an array by a predicate.
|
|
23
|
+
*
|
|
24
|
+
* Values for which the predicate returns true are placed in the first array; all
|
|
25
|
+
* other values are placed in the second array.
|
|
26
|
+
*
|
|
27
|
+
* @template T - The type of elements in the array.
|
|
28
|
+
* @param predicate - Predicate called with each value, index, and array.
|
|
29
|
+
* @returns A function that maps a readonly array to truthy and falsy partitions.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* import { partition, pipe } from 'es-toolkit/fp';
|
|
33
|
+
*
|
|
34
|
+
* pipe([1, 2, 3, 4], partition(value => value % 2 === 0));
|
|
35
|
+
* // => [[2, 4], [1, 3]]
|
|
36
|
+
*/
|
|
37
|
+
declare function partition<T>(predicate: (value: T, index: number, array: readonly T[]) => boolean): (array: readonly T[]) => [truthy: T[], falsy: T[]];
|
|
38
|
+
//#endregion
|
|
39
|
+
export { partition };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const require_partition = require("../../array/partition.js");
|
|
2
|
+
//#region src/fp/array/partition.ts
|
|
3
|
+
function partition(predicate) {
|
|
4
|
+
return function(array) {
|
|
5
|
+
return require_partition.partition(array, predicate);
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
exports.partition = partition;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/fp/array/reverse.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns a reversed copy of an array.
|
|
4
|
+
*
|
|
5
|
+
* Unlike Array.prototype.reverse, the returned function does not mutate the input array.
|
|
6
|
+
* 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 reversed copy.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* import { pipe, reverse } from 'es-toolkit/fp';
|
|
13
|
+
*
|
|
14
|
+
* pipe([1, 2, 3], reverse());
|
|
15
|
+
* // => [3, 2, 1]
|
|
16
|
+
*/
|
|
17
|
+
declare function reverse<T>(): (array: readonly T[]) => T[];
|
|
18
|
+
//#endregion
|
|
19
|
+
export { reverse };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/fp/array/reverse.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns a reversed copy of an array.
|
|
4
|
+
*
|
|
5
|
+
* Unlike Array.prototype.reverse, the returned function does not mutate the input array.
|
|
6
|
+
* 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 reversed copy.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* import { pipe, reverse } from 'es-toolkit/fp';
|
|
13
|
+
*
|
|
14
|
+
* pipe([1, 2, 3], reverse());
|
|
15
|
+
* // => [3, 2, 1]
|
|
16
|
+
*/
|
|
17
|
+
declare function reverse<T>(): (array: readonly T[]) => T[];
|
|
18
|
+
//#endregion
|
|
19
|
+
export { reverse };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/fp/array/reverse.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns a reversed copy of an array.
|
|
4
|
+
*
|
|
5
|
+
* Unlike Array.prototype.reverse, the returned function does not mutate the input array.
|
|
6
|
+
* 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 reversed copy.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* import { pipe, reverse } from 'es-toolkit/fp';
|
|
13
|
+
*
|
|
14
|
+
* pipe([1, 2, 3], reverse());
|
|
15
|
+
* // => [3, 2, 1]
|
|
16
|
+
*/
|
|
17
|
+
function reverse() {
|
|
18
|
+
return function(array) {
|
|
19
|
+
return array.slice().reverse();
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.reverse = reverse;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/fp/array/reverse.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns a reversed copy of an array.
|
|
4
|
+
*
|
|
5
|
+
* Unlike Array.prototype.reverse, the returned function does not mutate the input array.
|
|
6
|
+
* 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 reversed copy.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* import { pipe, reverse } from 'es-toolkit/fp';
|
|
13
|
+
*
|
|
14
|
+
* pipe([1, 2, 3], reverse());
|
|
15
|
+
* // => [3, 2, 1]
|
|
16
|
+
*/
|
|
17
|
+
function reverse() {
|
|
18
|
+
return function(array) {
|
|
19
|
+
return array.slice().reverse();
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { reverse };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/fp/array/sample.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns one random element from an array.
|
|
4
|
+
*
|
|
5
|
+
* The returned function follows the main {@link sample} behavior. Use it with {@link pipe}.
|
|
6
|
+
*
|
|
7
|
+
* @template T - The type of elements in the array.
|
|
8
|
+
* @returns A function that maps a readonly array to a random element.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* import { pipe, sample } from 'es-toolkit/fp';
|
|
12
|
+
*
|
|
13
|
+
* pipe([1, 2, 3], sample());
|
|
14
|
+
* // => one of 1, 2, or 3
|
|
15
|
+
*/
|
|
16
|
+
declare function sample<T>(): (array: readonly T[]) => T;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { sample };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/fp/array/sample.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns one random element from an array.
|
|
4
|
+
*
|
|
5
|
+
* The returned function follows the main {@link sample} behavior. Use it with {@link pipe}.
|
|
6
|
+
*
|
|
7
|
+
* @template T - The type of elements in the array.
|
|
8
|
+
* @returns A function that maps a readonly array to a random element.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* import { pipe, sample } from 'es-toolkit/fp';
|
|
12
|
+
*
|
|
13
|
+
* pipe([1, 2, 3], sample());
|
|
14
|
+
* // => one of 1, 2, or 3
|
|
15
|
+
*/
|
|
16
|
+
declare function sample<T>(): (array: readonly T[]) => T;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { sample };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const require_sample = require("../../array/sample.js");
|
|
2
|
+
//#region src/fp/array/sample.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that returns one random element from an array.
|
|
5
|
+
*
|
|
6
|
+
* The returned function follows the main {@link sample} behavior. 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 random element.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* import { pipe, sample } from 'es-toolkit/fp';
|
|
13
|
+
*
|
|
14
|
+
* pipe([1, 2, 3], sample());
|
|
15
|
+
* // => one of 1, 2, or 3
|
|
16
|
+
*/
|
|
17
|
+
function sample() {
|
|
18
|
+
return function(array) {
|
|
19
|
+
return require_sample.sample(array);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.sample = sample;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { sample as sample$1 } from "../../array/sample.mjs";
|
|
2
|
+
//#region src/fp/array/sample.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that returns one random element from an array.
|
|
5
|
+
*
|
|
6
|
+
* The returned function follows the main {@link sample} behavior. 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 random element.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* import { pipe, sample } from 'es-toolkit/fp';
|
|
13
|
+
*
|
|
14
|
+
* pipe([1, 2, 3], sample());
|
|
15
|
+
* // => one of 1, 2, or 3
|
|
16
|
+
*/
|
|
17
|
+
function sample() {
|
|
18
|
+
return function(array) {
|
|
19
|
+
return sample$1(array);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { sample };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/fp/array/sampleSize.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns random elements from an array.
|
|
4
|
+
*
|
|
5
|
+
* The returned function follows the main {@link sampleSize} 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 size - The number of elements to sample.
|
|
10
|
+
* @returns A function that maps a readonly array to sampled elements.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { pipe, sampleSize } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2, 3, 4], sampleSize(2));
|
|
16
|
+
* // => two random elements
|
|
17
|
+
*/
|
|
18
|
+
declare function sampleSize<T>(size: number): (array: readonly T[]) => T[];
|
|
19
|
+
//#endregion
|
|
20
|
+
export { sampleSize };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/fp/array/sampleSize.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function that returns random elements from an array.
|
|
4
|
+
*
|
|
5
|
+
* The returned function follows the main {@link sampleSize} 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 size - The number of elements to sample.
|
|
10
|
+
* @returns A function that maps a readonly array to sampled elements.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { pipe, sampleSize } from 'es-toolkit/fp';
|
|
14
|
+
*
|
|
15
|
+
* pipe([1, 2, 3, 4], sampleSize(2));
|
|
16
|
+
* // => two random elements
|
|
17
|
+
*/
|
|
18
|
+
declare function sampleSize<T>(size: number): (array: readonly T[]) => T[];
|
|
19
|
+
//#endregion
|
|
20
|
+
export { sampleSize };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const require_sampleSize = require("../../array/sampleSize.js");
|
|
2
|
+
//#region src/fp/array/sampleSize.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that returns random elements from an array.
|
|
5
|
+
*
|
|
6
|
+
* The returned function follows the main {@link sampleSize} 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 size - The number of elements to sample.
|
|
11
|
+
* @returns A function that maps a readonly array to sampled elements.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { pipe, sampleSize } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* pipe([1, 2, 3, 4], sampleSize(2));
|
|
17
|
+
* // => two random elements
|
|
18
|
+
*/
|
|
19
|
+
function sampleSize(size) {
|
|
20
|
+
return function(array) {
|
|
21
|
+
return require_sampleSize.sampleSize(array, size);
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
exports.sampleSize = sampleSize;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { sampleSize as sampleSize$1 } from "../../array/sampleSize.mjs";
|
|
2
|
+
//#region src/fp/array/sampleSize.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function that returns random elements from an array.
|
|
5
|
+
*
|
|
6
|
+
* The returned function follows the main {@link sampleSize} 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 size - The number of elements to sample.
|
|
11
|
+
* @returns A function that maps a readonly array to sampled elements.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { pipe, sampleSize } from 'es-toolkit/fp';
|
|
15
|
+
*
|
|
16
|
+
* pipe([1, 2, 3, 4], sampleSize(2));
|
|
17
|
+
* // => two random elements
|
|
18
|
+
*/
|
|
19
|
+
function sampleSize(size) {
|
|
20
|
+
return function(array) {
|
|
21
|
+
return sampleSize$1(array, size);
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { sampleSize };
|
|
@@ -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 };
|