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.
Files changed (403) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/array/chunkBy.d.mts +32 -0
  3. package/dist/array/chunkBy.d.ts +32 -0
  4. package/dist/array/chunkBy.js +42 -0
  5. package/dist/array/chunkBy.mjs +42 -0
  6. package/dist/array/index.d.mts +2 -1
  7. package/dist/array/index.d.ts +2 -1
  8. package/dist/array/index.js +2 -0
  9. package/dist/array/index.mjs +2 -1
  10. package/dist/array/take.d.mts +1 -7
  11. package/dist/array/take.d.ts +1 -7
  12. package/dist/array/take.js +1 -9
  13. package/dist/array/take.mjs +1 -9
  14. package/dist/array/takeRight.d.mts +2 -2
  15. package/dist/array/takeRight.d.ts +2 -2
  16. package/dist/array/takeRight.js +2 -4
  17. package/dist/array/takeRight.mjs +2 -4
  18. package/dist/array/windowed.d.mts +1 -1
  19. package/dist/array/windowed.d.ts +1 -1
  20. package/dist/browser.global.js +3 -3
  21. package/dist/compat/array/chunk.js +4 -2
  22. package/dist/compat/array/chunk.mjs +4 -2
  23. package/dist/compat/array/differenceBy.js +5 -5
  24. package/dist/compat/array/differenceBy.mjs +5 -5
  25. package/dist/compat/array/drop.d.mts +2 -3
  26. package/dist/compat/array/drop.d.ts +2 -3
  27. package/dist/compat/array/drop.js +4 -4
  28. package/dist/compat/array/drop.mjs +4 -4
  29. package/dist/compat/array/dropRight.js +1 -1
  30. package/dist/compat/array/dropRight.mjs +1 -1
  31. package/dist/compat/array/dropRightWhile.d.mts +1 -1
  32. package/dist/compat/array/dropRightWhile.d.ts +1 -1
  33. package/dist/compat/array/dropRightWhile.js +5 -4
  34. package/dist/compat/array/dropRightWhile.mjs +5 -4
  35. package/dist/compat/array/dropWhile.d.mts +2 -2
  36. package/dist/compat/array/dropWhile.d.ts +2 -2
  37. package/dist/compat/array/dropWhile.js +4 -4
  38. package/dist/compat/array/dropWhile.mjs +4 -4
  39. package/dist/compat/array/findLast.js +1 -1
  40. package/dist/compat/array/findLast.mjs +1 -1
  41. package/dist/compat/array/includes.js +1 -1
  42. package/dist/compat/array/includes.mjs +1 -1
  43. package/dist/compat/array/nth.js +1 -1
  44. package/dist/compat/array/nth.mjs +1 -1
  45. package/dist/compat/array/slice.js +1 -1
  46. package/dist/compat/array/slice.mjs +1 -1
  47. package/dist/compat/array/sortedIndexBy.js +1 -1
  48. package/dist/compat/array/sortedIndexBy.mjs +1 -1
  49. package/dist/compat/array/take.js +2 -2
  50. package/dist/compat/array/take.mjs +2 -2
  51. package/dist/compat/array/takeRight.js +1 -1
  52. package/dist/compat/array/takeRight.mjs +1 -1
  53. package/dist/compat/compat.js +4 -4
  54. package/dist/compat/compat.mjs +4 -4
  55. package/dist/compat/index.js +4 -4
  56. package/dist/compat/index.mjs +4 -4
  57. package/dist/compat/math/add.js +1 -1
  58. package/dist/compat/math/add.mjs +1 -1
  59. package/dist/compat/math/divide.js +1 -1
  60. package/dist/compat/math/divide.mjs +1 -1
  61. package/dist/compat/math/multiply.js +1 -1
  62. package/dist/compat/math/multiply.mjs +1 -1
  63. package/dist/compat/math/random.js +3 -1
  64. package/dist/compat/math/random.mjs +3 -1
  65. package/dist/compat/math/subtract.js +1 -1
  66. package/dist/compat/math/subtract.mjs +1 -1
  67. package/dist/compat/object/get.js +1 -1
  68. package/dist/compat/object/get.mjs +1 -1
  69. package/dist/compat/object/omitBy.js +1 -1
  70. package/dist/compat/object/omitBy.mjs +1 -1
  71. package/dist/compat/object/pick.js +1 -1
  72. package/dist/compat/object/pick.mjs +1 -1
  73. package/dist/compat/object/pickBy.js +1 -1
  74. package/dist/compat/object/pickBy.mjs +1 -1
  75. package/dist/compat/string/repeat.js +1 -1
  76. package/dist/compat/string/repeat.mjs +1 -1
  77. package/dist/fp/_internal/lazy.js +58 -0
  78. package/dist/fp/_internal/lazy.mjs +57 -0
  79. package/dist/fp/array/at.d.mts +20 -0
  80. package/dist/fp/array/at.d.ts +20 -0
  81. package/dist/fp/array/at.js +25 -0
  82. package/dist/fp/array/at.mjs +25 -0
  83. package/dist/fp/array/cartesianProduct.d.mts +61 -0
  84. package/dist/fp/array/cartesianProduct.d.ts +61 -0
  85. package/dist/fp/array/cartesianProduct.js +9 -0
  86. package/dist/fp/array/cartesianProduct.mjs +9 -0
  87. package/dist/fp/array/chunk.d.mts +19 -0
  88. package/dist/fp/array/chunk.d.ts +19 -0
  89. package/dist/fp/array/chunk.js +24 -0
  90. package/dist/fp/array/chunk.mjs +24 -0
  91. package/dist/fp/array/chunkBy.d.mts +20 -0
  92. package/dist/fp/array/chunkBy.d.ts +20 -0
  93. package/dist/fp/array/chunkBy.js +25 -0
  94. package/dist/fp/array/chunkBy.mjs +25 -0
  95. package/dist/fp/array/combinations.d.mts +21 -0
  96. package/dist/fp/array/combinations.d.ts +21 -0
  97. package/dist/fp/array/combinations.js +26 -0
  98. package/dist/fp/array/combinations.mjs +26 -0
  99. package/dist/fp/array/compact.d.mts +22 -0
  100. package/dist/fp/array/compact.d.ts +22 -0
  101. package/dist/fp/array/compact.js +31 -0
  102. package/dist/fp/array/compact.mjs +30 -0
  103. package/dist/fp/array/countBy.d.mts +21 -0
  104. package/dist/fp/array/countBy.d.ts +21 -0
  105. package/dist/fp/array/countBy.js +26 -0
  106. package/dist/fp/array/countBy.mjs +26 -0
  107. package/dist/fp/array/difference.d.mts +21 -0
  108. package/dist/fp/array/difference.d.ts +21 -0
  109. package/dist/fp/array/difference.js +32 -0
  110. package/dist/fp/array/difference.mjs +31 -0
  111. package/dist/fp/array/differenceBy.d.mts +22 -0
  112. package/dist/fp/array/differenceBy.d.ts +22 -0
  113. package/dist/fp/array/differenceBy.js +33 -0
  114. package/dist/fp/array/differenceBy.mjs +32 -0
  115. package/dist/fp/array/differenceWith.d.mts +22 -0
  116. package/dist/fp/array/differenceWith.d.ts +22 -0
  117. package/dist/fp/array/differenceWith.js +32 -0
  118. package/dist/fp/array/differenceWith.mjs +31 -0
  119. package/dist/fp/array/drop.d.mts +20 -0
  120. package/dist/fp/array/drop.d.ts +20 -0
  121. package/dist/fp/array/drop.js +31 -0
  122. package/dist/fp/array/drop.mjs +30 -0
  123. package/dist/fp/array/dropRight.d.mts +20 -0
  124. package/dist/fp/array/dropRight.d.ts +20 -0
  125. package/dist/fp/array/dropRight.js +25 -0
  126. package/dist/fp/array/dropRight.mjs +25 -0
  127. package/dist/fp/array/dropRightWhile.d.mts +20 -0
  128. package/dist/fp/array/dropRightWhile.d.ts +20 -0
  129. package/dist/fp/array/dropRightWhile.js +25 -0
  130. package/dist/fp/array/dropRightWhile.mjs +25 -0
  131. package/dist/fp/array/dropWhile.d.mts +20 -0
  132. package/dist/fp/array/dropWhile.d.ts +20 -0
  133. package/dist/fp/array/dropWhile.js +36 -0
  134. package/dist/fp/array/dropWhile.mjs +36 -0
  135. package/dist/fp/array/filter.d.mts +45 -0
  136. package/dist/fp/array/filter.d.ts +45 -0
  137. package/dist/fp/array/filter.js +13 -0
  138. package/dist/fp/array/filter.mjs +12 -0
  139. package/dist/fp/array/find.d.mts +39 -0
  140. package/dist/fp/array/find.d.ts +39 -0
  141. package/dist/fp/array/find.js +8 -0
  142. package/dist/fp/array/find.mjs +8 -0
  143. package/dist/fp/array/findIndex.d.mts +20 -0
  144. package/dist/fp/array/findIndex.d.ts +20 -0
  145. package/dist/fp/array/findIndex.js +24 -0
  146. package/dist/fp/array/findIndex.mjs +24 -0
  147. package/dist/fp/array/findLast.d.mts +39 -0
  148. package/dist/fp/array/findLast.d.ts +39 -0
  149. package/dist/fp/array/findLast.js +11 -0
  150. package/dist/fp/array/findLast.mjs +11 -0
  151. package/dist/fp/array/findLastIndex.d.mts +20 -0
  152. package/dist/fp/array/findLastIndex.d.ts +20 -0
  153. package/dist/fp/array/findLastIndex.js +25 -0
  154. package/dist/fp/array/findLastIndex.mjs +25 -0
  155. package/dist/fp/array/flatMap.d.mts +28 -0
  156. package/dist/fp/array/flatMap.d.ts +28 -0
  157. package/dist/fp/array/flatMap.js +39 -0
  158. package/dist/fp/array/flatMap.mjs +38 -0
  159. package/dist/fp/array/flatMapDeep.d.mts +23 -0
  160. package/dist/fp/array/flatMapDeep.d.ts +23 -0
  161. package/dist/fp/array/flatMapDeep.js +38 -0
  162. package/dist/fp/array/flatMapDeep.mjs +37 -0
  163. package/dist/fp/array/flatten.d.mts +21 -0
  164. package/dist/fp/array/flatten.d.ts +21 -0
  165. package/dist/fp/array/flatten.js +39 -0
  166. package/dist/fp/array/flatten.mjs +38 -0
  167. package/dist/fp/array/flattenDeep.d.mts +21 -0
  168. package/dist/fp/array/flattenDeep.d.ts +21 -0
  169. package/dist/fp/array/flattenDeep.js +36 -0
  170. package/dist/fp/array/flattenDeep.mjs +35 -0
  171. package/dist/fp/array/forEach.d.mts +22 -0
  172. package/dist/fp/array/forEach.d.ts +22 -0
  173. package/dist/fp/array/forEach.js +33 -0
  174. package/dist/fp/array/forEach.mjs +32 -0
  175. package/dist/fp/array/groupBy.d.mts +21 -0
  176. package/dist/fp/array/groupBy.d.ts +21 -0
  177. package/dist/fp/array/groupBy.js +26 -0
  178. package/dist/fp/array/groupBy.mjs +26 -0
  179. package/dist/fp/array/head.d.mts +35 -0
  180. package/dist/fp/array/head.d.ts +35 -0
  181. package/dist/fp/array/head.js +9 -0
  182. package/dist/fp/array/head.mjs +9 -0
  183. package/dist/fp/array/index.d.mts +69 -0
  184. package/dist/fp/array/index.d.ts +69 -0
  185. package/dist/fp/array/index.js +68 -0
  186. package/dist/fp/array/index.mjs +68 -0
  187. package/dist/fp/array/initial.d.mts +19 -0
  188. package/dist/fp/array/initial.d.ts +19 -0
  189. package/dist/fp/array/initial.js +24 -0
  190. package/dist/fp/array/initial.mjs +24 -0
  191. package/dist/fp/array/intersection.d.mts +21 -0
  192. package/dist/fp/array/intersection.d.ts +21 -0
  193. package/dist/fp/array/intersection.js +32 -0
  194. package/dist/fp/array/intersection.mjs +31 -0
  195. package/dist/fp/array/intersectionBy.d.mts +22 -0
  196. package/dist/fp/array/intersectionBy.d.ts +22 -0
  197. package/dist/fp/array/intersectionBy.js +33 -0
  198. package/dist/fp/array/intersectionBy.mjs +32 -0
  199. package/dist/fp/array/intersectionWith.d.mts +22 -0
  200. package/dist/fp/array/intersectionWith.d.ts +22 -0
  201. package/dist/fp/array/intersectionWith.js +32 -0
  202. package/dist/fp/array/intersectionWith.mjs +31 -0
  203. package/dist/fp/array/isSubset.d.mts +20 -0
  204. package/dist/fp/array/isSubset.d.ts +20 -0
  205. package/dist/fp/array/isSubset.js +25 -0
  206. package/dist/fp/array/isSubset.mjs +25 -0
  207. package/dist/fp/array/isSubsetWith.d.mts +21 -0
  208. package/dist/fp/array/isSubsetWith.d.ts +21 -0
  209. package/dist/fp/array/isSubsetWith.js +26 -0
  210. package/dist/fp/array/isSubsetWith.mjs +26 -0
  211. package/dist/fp/array/join.d.mts +20 -0
  212. package/dist/fp/array/join.d.ts +20 -0
  213. package/dist/fp/array/join.js +24 -0
  214. package/dist/fp/array/join.mjs +24 -0
  215. package/dist/fp/array/keyBy.d.mts +21 -0
  216. package/dist/fp/array/keyBy.d.ts +21 -0
  217. package/dist/fp/array/keyBy.js +26 -0
  218. package/dist/fp/array/keyBy.mjs +26 -0
  219. package/dist/fp/array/last.d.mts +35 -0
  220. package/dist/fp/array/last.d.ts +35 -0
  221. package/dist/fp/array/last.js +9 -0
  222. package/dist/fp/array/last.mjs +9 -0
  223. package/dist/fp/array/length.d.mts +18 -0
  224. package/dist/fp/array/length.d.ts +18 -0
  225. package/dist/fp/array/length.js +22 -0
  226. package/dist/fp/array/length.mjs +22 -0
  227. package/dist/fp/array/map.d.mts +27 -0
  228. package/dist/fp/array/map.d.ts +27 -0
  229. package/dist/fp/array/map.js +36 -0
  230. package/dist/fp/array/map.mjs +35 -0
  231. package/dist/fp/array/maxBy.d.mts +37 -0
  232. package/dist/fp/array/maxBy.d.ts +37 -0
  233. package/dist/fp/array/maxBy.js +9 -0
  234. package/dist/fp/array/maxBy.mjs +9 -0
  235. package/dist/fp/array/minBy.d.mts +37 -0
  236. package/dist/fp/array/minBy.d.ts +37 -0
  237. package/dist/fp/array/minBy.js +9 -0
  238. package/dist/fp/array/minBy.mjs +9 -0
  239. package/dist/fp/array/orderBy.d.mts +21 -0
  240. package/dist/fp/array/orderBy.d.ts +21 -0
  241. package/dist/fp/array/orderBy.js +26 -0
  242. package/dist/fp/array/orderBy.mjs +26 -0
  243. package/dist/fp/array/partition.d.mts +39 -0
  244. package/dist/fp/array/partition.d.ts +39 -0
  245. package/dist/fp/array/partition.js +9 -0
  246. package/dist/fp/array/partition.mjs +9 -0
  247. package/dist/fp/array/reverse.d.mts +19 -0
  248. package/dist/fp/array/reverse.d.ts +19 -0
  249. package/dist/fp/array/reverse.js +23 -0
  250. package/dist/fp/array/reverse.mjs +23 -0
  251. package/dist/fp/array/sample.d.mts +18 -0
  252. package/dist/fp/array/sample.d.ts +18 -0
  253. package/dist/fp/array/sample.js +23 -0
  254. package/dist/fp/array/sample.mjs +23 -0
  255. package/dist/fp/array/sampleSize.d.mts +20 -0
  256. package/dist/fp/array/sampleSize.d.ts +20 -0
  257. package/dist/fp/array/sampleSize.js +25 -0
  258. package/dist/fp/array/sampleSize.mjs +25 -0
  259. package/dist/fp/array/shuffle.d.mts +19 -0
  260. package/dist/fp/array/shuffle.d.ts +19 -0
  261. package/dist/fp/array/shuffle.js +24 -0
  262. package/dist/fp/array/shuffle.mjs +24 -0
  263. package/dist/fp/array/sortBy.d.mts +26 -0
  264. package/dist/fp/array/sortBy.d.ts +26 -0
  265. package/dist/fp/array/sortBy.js +31 -0
  266. package/dist/fp/array/sortBy.mjs +31 -0
  267. package/dist/fp/array/tail.d.mts +19 -0
  268. package/dist/fp/array/tail.d.ts +19 -0
  269. package/dist/fp/array/tail.js +24 -0
  270. package/dist/fp/array/tail.mjs +24 -0
  271. package/dist/fp/array/take.d.mts +26 -0
  272. package/dist/fp/array/take.d.ts +26 -0
  273. package/dist/fp/array/take.js +39 -0
  274. package/dist/fp/array/take.mjs +38 -0
  275. package/dist/fp/array/takeRight.d.mts +20 -0
  276. package/dist/fp/array/takeRight.d.ts +20 -0
  277. package/dist/fp/array/takeRight.js +25 -0
  278. package/dist/fp/array/takeRight.mjs +25 -0
  279. package/dist/fp/array/takeRightWhile.d.mts +20 -0
  280. package/dist/fp/array/takeRightWhile.d.ts +20 -0
  281. package/dist/fp/array/takeRightWhile.js +25 -0
  282. package/dist/fp/array/takeRightWhile.mjs +25 -0
  283. package/dist/fp/array/takeWhile.d.mts +21 -0
  284. package/dist/fp/array/takeWhile.d.ts +21 -0
  285. package/dist/fp/array/takeWhile.js +32 -0
  286. package/dist/fp/array/takeWhile.mjs +31 -0
  287. package/dist/fp/array/toFilled.d.mts +23 -0
  288. package/dist/fp/array/toFilled.d.ts +23 -0
  289. package/dist/fp/array/toFilled.js +30 -0
  290. package/dist/fp/array/toFilled.mjs +30 -0
  291. package/dist/fp/array/union.d.mts +20 -0
  292. package/dist/fp/array/union.d.ts +20 -0
  293. package/dist/fp/array/union.js +25 -0
  294. package/dist/fp/array/union.mjs +25 -0
  295. package/dist/fp/array/unionBy.d.mts +22 -0
  296. package/dist/fp/array/unionBy.d.ts +22 -0
  297. package/dist/fp/array/unionBy.js +27 -0
  298. package/dist/fp/array/unionBy.mjs +27 -0
  299. package/dist/fp/array/unionWith.d.mts +21 -0
  300. package/dist/fp/array/unionWith.d.ts +21 -0
  301. package/dist/fp/array/unionWith.js +26 -0
  302. package/dist/fp/array/unionWith.mjs +26 -0
  303. package/dist/fp/array/uniq.d.mts +21 -0
  304. package/dist/fp/array/uniq.d.ts +21 -0
  305. package/dist/fp/array/uniq.js +36 -0
  306. package/dist/fp/array/uniq.mjs +36 -0
  307. package/dist/fp/array/uniqBy.d.mts +21 -0
  308. package/dist/fp/array/uniqBy.d.ts +21 -0
  309. package/dist/fp/array/uniqBy.js +38 -0
  310. package/dist/fp/array/uniqBy.mjs +38 -0
  311. package/dist/fp/array/uniqWith.d.mts +20 -0
  312. package/dist/fp/array/uniqWith.d.ts +20 -0
  313. package/dist/fp/array/uniqWith.js +35 -0
  314. package/dist/fp/array/uniqWith.mjs +35 -0
  315. package/dist/fp/array/unzip.d.mts +20 -0
  316. package/dist/fp/array/unzip.d.ts +20 -0
  317. package/dist/fp/array/unzip.js +24 -0
  318. package/dist/fp/array/unzip.mjs +24 -0
  319. package/dist/fp/array/unzipWith.d.mts +21 -0
  320. package/dist/fp/array/unzipWith.d.ts +21 -0
  321. package/dist/fp/array/unzipWith.js +26 -0
  322. package/dist/fp/array/unzipWith.mjs +26 -0
  323. package/dist/fp/array/windowed.d.mts +25 -0
  324. package/dist/fp/array/windowed.d.ts +25 -0
  325. package/dist/fp/array/windowed.js +50 -0
  326. package/dist/fp/array/windowed.mjs +50 -0
  327. package/dist/fp/array/without.d.mts +19 -0
  328. package/dist/fp/array/without.d.ts +19 -0
  329. package/dist/fp/array/without.js +30 -0
  330. package/dist/fp/array/without.mjs +29 -0
  331. package/dist/fp/array/xor.d.mts +20 -0
  332. package/dist/fp/array/xor.d.ts +20 -0
  333. package/dist/fp/array/xor.js +25 -0
  334. package/dist/fp/array/xor.mjs +25 -0
  335. package/dist/fp/array/xorBy.d.mts +22 -0
  336. package/dist/fp/array/xorBy.d.ts +22 -0
  337. package/dist/fp/array/xorBy.js +27 -0
  338. package/dist/fp/array/xorBy.mjs +27 -0
  339. package/dist/fp/array/xorWith.d.mts +21 -0
  340. package/dist/fp/array/xorWith.d.ts +21 -0
  341. package/dist/fp/array/xorWith.js +26 -0
  342. package/dist/fp/array/xorWith.mjs +26 -0
  343. package/dist/fp/array/zip.d.mts +61 -0
  344. package/dist/fp/array/zip.d.ts +61 -0
  345. package/dist/fp/array/zip.js +9 -0
  346. package/dist/fp/array/zip.mjs +9 -0
  347. package/dist/fp/array/zipObject.d.mts +21 -0
  348. package/dist/fp/array/zipObject.d.ts +21 -0
  349. package/dist/fp/array/zipObject.js +26 -0
  350. package/dist/fp/array/zipObject.mjs +26 -0
  351. package/dist/fp/array/zipWith.d.mts +57 -0
  352. package/dist/fp/array/zipWith.d.ts +57 -0
  353. package/dist/fp/array/zipWith.js +9 -0
  354. package/dist/fp/array/zipWith.mjs +9 -0
  355. package/dist/fp/index.d.mts +75 -0
  356. package/dist/fp/index.d.ts +75 -0
  357. package/dist/fp/index.js +150 -0
  358. package/dist/fp/index.mjs +77 -0
  359. package/dist/fp/math/add.d.mts +17 -0
  360. package/dist/fp/math/add.d.ts +17 -0
  361. package/dist/fp/math/add.js +21 -0
  362. package/dist/fp/math/add.mjs +21 -0
  363. package/dist/fp/math/index.d.mts +2 -0
  364. package/dist/fp/math/index.d.ts +2 -0
  365. package/dist/fp/math/index.js +2 -0
  366. package/dist/fp/math/index.mjs +2 -0
  367. package/dist/fp/math/multiply.d.mts +17 -0
  368. package/dist/fp/math/multiply.d.ts +17 -0
  369. package/dist/fp/math/multiply.js +21 -0
  370. package/dist/fp/math/multiply.mjs +21 -0
  371. package/dist/fp/object/index.d.mts +2 -0
  372. package/dist/fp/object/index.d.ts +2 -0
  373. package/dist/fp/object/index.js +2 -0
  374. package/dist/fp/object/index.mjs +2 -0
  375. package/dist/fp/object/omit.d.mts +18 -0
  376. package/dist/fp/object/omit.d.ts +18 -0
  377. package/dist/fp/object/omit.js +23 -0
  378. package/dist/fp/object/omit.mjs +23 -0
  379. package/dist/fp/object/pick.d.mts +19 -0
  380. package/dist/fp/object/pick.d.ts +19 -0
  381. package/dist/fp/object/pick.js +24 -0
  382. package/dist/fp/object/pick.mjs +24 -0
  383. package/dist/fp/pipe.d.mts +235 -0
  384. package/dist/fp/pipe.d.ts +235 -0
  385. package/dist/fp/pipe.js +116 -0
  386. package/dist/fp/pipe.mjs +116 -0
  387. package/dist/index.d.mts +3 -1
  388. package/dist/index.d.ts +3 -1
  389. package/dist/index.js +4 -0
  390. package/dist/index.mjs +3 -1
  391. package/dist/predicate/index.d.mts +2 -1
  392. package/dist/predicate/index.d.ts +2 -1
  393. package/dist/predicate/index.js +2 -0
  394. package/dist/predicate/index.mjs +2 -1
  395. package/dist/predicate/isIterable.d.mts +26 -0
  396. package/dist/predicate/isIterable.d.ts +26 -0
  397. package/dist/predicate/isIterable.js +28 -0
  398. package/dist/predicate/isIterable.mjs +28 -0
  399. package/dist/string/trimStart.js +1 -0
  400. package/dist/string/trimStart.mjs +1 -0
  401. package/fp.d.ts +1 -0
  402. package/fp.js +1 -0
  403. 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,9 @@
1
+ import { partition as partition$1 } from "../../array/partition.mjs";
2
+ //#region src/fp/array/partition.ts
3
+ function partition(predicate) {
4
+ return function(array) {
5
+ return partition$1(array, predicate);
6
+ };
7
+ }
8
+ //#endregion
9
+ export { 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 };