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,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 };
|
|
@@ -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 };
|