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.
Files changed (380) hide show
  1. package/dist/array/chunkBy.d.mts +32 -0
  2. package/dist/array/chunkBy.d.ts +32 -0
  3. package/dist/array/chunkBy.js +42 -0
  4. package/dist/array/chunkBy.mjs +42 -0
  5. package/dist/array/index.d.mts +2 -1
  6. package/dist/array/index.d.ts +2 -1
  7. package/dist/array/index.js +2 -0
  8. package/dist/array/index.mjs +2 -1
  9. package/dist/array/take.d.mts +1 -7
  10. package/dist/array/take.d.ts +1 -7
  11. package/dist/array/take.js +1 -9
  12. package/dist/array/take.mjs +1 -9
  13. package/dist/array/takeRight.d.mts +2 -2
  14. package/dist/array/takeRight.d.ts +2 -2
  15. package/dist/array/takeRight.js +2 -4
  16. package/dist/array/takeRight.mjs +2 -4
  17. package/dist/array/windowed.d.mts +1 -1
  18. package/dist/array/windowed.d.ts +1 -1
  19. package/dist/browser.global.js +3 -3
  20. package/dist/compat/array/drop.js +1 -1
  21. package/dist/compat/array/drop.mjs +1 -1
  22. package/dist/compat/array/dropRight.js +1 -1
  23. package/dist/compat/array/dropRight.mjs +1 -1
  24. package/dist/compat/array/findLast.js +1 -1
  25. package/dist/compat/array/findLast.mjs +1 -1
  26. package/dist/compat/array/includes.js +1 -1
  27. package/dist/compat/array/includes.mjs +1 -1
  28. package/dist/compat/array/nth.js +1 -1
  29. package/dist/compat/array/nth.mjs +1 -1
  30. package/dist/compat/array/slice.js +1 -1
  31. package/dist/compat/array/slice.mjs +1 -1
  32. package/dist/compat/array/sortedIndexBy.js +1 -1
  33. package/dist/compat/array/sortedIndexBy.mjs +1 -1
  34. package/dist/compat/array/take.js +2 -2
  35. package/dist/compat/array/take.mjs +2 -2
  36. package/dist/compat/array/takeRight.js +1 -1
  37. package/dist/compat/array/takeRight.mjs +1 -1
  38. package/dist/compat/compat.js +4 -4
  39. package/dist/compat/compat.mjs +4 -4
  40. package/dist/compat/index.js +4 -4
  41. package/dist/compat/index.mjs +4 -4
  42. package/dist/compat/math/add.js +1 -1
  43. package/dist/compat/math/add.mjs +1 -1
  44. package/dist/compat/math/divide.js +1 -1
  45. package/dist/compat/math/divide.mjs +1 -1
  46. package/dist/compat/math/multiply.js +1 -1
  47. package/dist/compat/math/multiply.mjs +1 -1
  48. package/dist/compat/math/subtract.js +1 -1
  49. package/dist/compat/math/subtract.mjs +1 -1
  50. package/dist/compat/object/omitBy.js +1 -1
  51. package/dist/compat/object/omitBy.mjs +1 -1
  52. package/dist/compat/object/pickBy.js +1 -1
  53. package/dist/compat/object/pickBy.mjs +1 -1
  54. package/dist/compat/string/repeat.js +1 -1
  55. package/dist/compat/string/repeat.mjs +1 -1
  56. package/dist/fp/_internal/lazy.js +58 -0
  57. package/dist/fp/_internal/lazy.mjs +57 -0
  58. package/dist/fp/array/at.d.mts +20 -0
  59. package/dist/fp/array/at.d.ts +20 -0
  60. package/dist/fp/array/at.js +25 -0
  61. package/dist/fp/array/at.mjs +25 -0
  62. package/dist/fp/array/cartesianProduct.d.mts +61 -0
  63. package/dist/fp/array/cartesianProduct.d.ts +61 -0
  64. package/dist/fp/array/cartesianProduct.js +9 -0
  65. package/dist/fp/array/cartesianProduct.mjs +9 -0
  66. package/dist/fp/array/chunk.d.mts +19 -0
  67. package/dist/fp/array/chunk.d.ts +19 -0
  68. package/dist/fp/array/chunk.js +24 -0
  69. package/dist/fp/array/chunk.mjs +24 -0
  70. package/dist/fp/array/chunkBy.d.mts +20 -0
  71. package/dist/fp/array/chunkBy.d.ts +20 -0
  72. package/dist/fp/array/chunkBy.js +25 -0
  73. package/dist/fp/array/chunkBy.mjs +25 -0
  74. package/dist/fp/array/combinations.d.mts +21 -0
  75. package/dist/fp/array/combinations.d.ts +21 -0
  76. package/dist/fp/array/combinations.js +26 -0
  77. package/dist/fp/array/combinations.mjs +26 -0
  78. package/dist/fp/array/compact.d.mts +22 -0
  79. package/dist/fp/array/compact.d.ts +22 -0
  80. package/dist/fp/array/compact.js +31 -0
  81. package/dist/fp/array/compact.mjs +30 -0
  82. package/dist/fp/array/countBy.d.mts +21 -0
  83. package/dist/fp/array/countBy.d.ts +21 -0
  84. package/dist/fp/array/countBy.js +26 -0
  85. package/dist/fp/array/countBy.mjs +26 -0
  86. package/dist/fp/array/difference.d.mts +21 -0
  87. package/dist/fp/array/difference.d.ts +21 -0
  88. package/dist/fp/array/difference.js +32 -0
  89. package/dist/fp/array/difference.mjs +31 -0
  90. package/dist/fp/array/differenceBy.d.mts +22 -0
  91. package/dist/fp/array/differenceBy.d.ts +22 -0
  92. package/dist/fp/array/differenceBy.js +33 -0
  93. package/dist/fp/array/differenceBy.mjs +32 -0
  94. package/dist/fp/array/differenceWith.d.mts +22 -0
  95. package/dist/fp/array/differenceWith.d.ts +22 -0
  96. package/dist/fp/array/differenceWith.js +32 -0
  97. package/dist/fp/array/differenceWith.mjs +31 -0
  98. package/dist/fp/array/drop.d.mts +20 -0
  99. package/dist/fp/array/drop.d.ts +20 -0
  100. package/dist/fp/array/drop.js +31 -0
  101. package/dist/fp/array/drop.mjs +30 -0
  102. package/dist/fp/array/dropRight.d.mts +20 -0
  103. package/dist/fp/array/dropRight.d.ts +20 -0
  104. package/dist/fp/array/dropRight.js +25 -0
  105. package/dist/fp/array/dropRight.mjs +25 -0
  106. package/dist/fp/array/dropRightWhile.d.mts +20 -0
  107. package/dist/fp/array/dropRightWhile.d.ts +20 -0
  108. package/dist/fp/array/dropRightWhile.js +25 -0
  109. package/dist/fp/array/dropRightWhile.mjs +25 -0
  110. package/dist/fp/array/dropWhile.d.mts +20 -0
  111. package/dist/fp/array/dropWhile.d.ts +20 -0
  112. package/dist/fp/array/dropWhile.js +36 -0
  113. package/dist/fp/array/dropWhile.mjs +36 -0
  114. package/dist/fp/array/filter.d.mts +45 -0
  115. package/dist/fp/array/filter.d.ts +45 -0
  116. package/dist/fp/array/filter.js +13 -0
  117. package/dist/fp/array/filter.mjs +12 -0
  118. package/dist/fp/array/find.d.mts +39 -0
  119. package/dist/fp/array/find.d.ts +39 -0
  120. package/dist/fp/array/find.js +8 -0
  121. package/dist/fp/array/find.mjs +8 -0
  122. package/dist/fp/array/findIndex.d.mts +20 -0
  123. package/dist/fp/array/findIndex.d.ts +20 -0
  124. package/dist/fp/array/findIndex.js +24 -0
  125. package/dist/fp/array/findIndex.mjs +24 -0
  126. package/dist/fp/array/findLast.d.mts +39 -0
  127. package/dist/fp/array/findLast.d.ts +39 -0
  128. package/dist/fp/array/findLast.js +11 -0
  129. package/dist/fp/array/findLast.mjs +11 -0
  130. package/dist/fp/array/findLastIndex.d.mts +20 -0
  131. package/dist/fp/array/findLastIndex.d.ts +20 -0
  132. package/dist/fp/array/findLastIndex.js +25 -0
  133. package/dist/fp/array/findLastIndex.mjs +25 -0
  134. package/dist/fp/array/flatMap.d.mts +28 -0
  135. package/dist/fp/array/flatMap.d.ts +28 -0
  136. package/dist/fp/array/flatMap.js +39 -0
  137. package/dist/fp/array/flatMap.mjs +38 -0
  138. package/dist/fp/array/flatMapDeep.d.mts +23 -0
  139. package/dist/fp/array/flatMapDeep.d.ts +23 -0
  140. package/dist/fp/array/flatMapDeep.js +38 -0
  141. package/dist/fp/array/flatMapDeep.mjs +37 -0
  142. package/dist/fp/array/flatten.d.mts +21 -0
  143. package/dist/fp/array/flatten.d.ts +21 -0
  144. package/dist/fp/array/flatten.js +39 -0
  145. package/dist/fp/array/flatten.mjs +38 -0
  146. package/dist/fp/array/flattenDeep.d.mts +21 -0
  147. package/dist/fp/array/flattenDeep.d.ts +21 -0
  148. package/dist/fp/array/flattenDeep.js +36 -0
  149. package/dist/fp/array/flattenDeep.mjs +35 -0
  150. package/dist/fp/array/forEach.d.mts +22 -0
  151. package/dist/fp/array/forEach.d.ts +22 -0
  152. package/dist/fp/array/forEach.js +33 -0
  153. package/dist/fp/array/forEach.mjs +32 -0
  154. package/dist/fp/array/groupBy.d.mts +21 -0
  155. package/dist/fp/array/groupBy.d.ts +21 -0
  156. package/dist/fp/array/groupBy.js +26 -0
  157. package/dist/fp/array/groupBy.mjs +26 -0
  158. package/dist/fp/array/head.d.mts +35 -0
  159. package/dist/fp/array/head.d.ts +35 -0
  160. package/dist/fp/array/head.js +9 -0
  161. package/dist/fp/array/head.mjs +9 -0
  162. package/dist/fp/array/index.d.mts +69 -0
  163. package/dist/fp/array/index.d.ts +69 -0
  164. package/dist/fp/array/index.js +68 -0
  165. package/dist/fp/array/index.mjs +68 -0
  166. package/dist/fp/array/initial.d.mts +19 -0
  167. package/dist/fp/array/initial.d.ts +19 -0
  168. package/dist/fp/array/initial.js +24 -0
  169. package/dist/fp/array/initial.mjs +24 -0
  170. package/dist/fp/array/intersection.d.mts +21 -0
  171. package/dist/fp/array/intersection.d.ts +21 -0
  172. package/dist/fp/array/intersection.js +32 -0
  173. package/dist/fp/array/intersection.mjs +31 -0
  174. package/dist/fp/array/intersectionBy.d.mts +22 -0
  175. package/dist/fp/array/intersectionBy.d.ts +22 -0
  176. package/dist/fp/array/intersectionBy.js +33 -0
  177. package/dist/fp/array/intersectionBy.mjs +32 -0
  178. package/dist/fp/array/intersectionWith.d.mts +22 -0
  179. package/dist/fp/array/intersectionWith.d.ts +22 -0
  180. package/dist/fp/array/intersectionWith.js +32 -0
  181. package/dist/fp/array/intersectionWith.mjs +31 -0
  182. package/dist/fp/array/isSubset.d.mts +20 -0
  183. package/dist/fp/array/isSubset.d.ts +20 -0
  184. package/dist/fp/array/isSubset.js +25 -0
  185. package/dist/fp/array/isSubset.mjs +25 -0
  186. package/dist/fp/array/isSubsetWith.d.mts +21 -0
  187. package/dist/fp/array/isSubsetWith.d.ts +21 -0
  188. package/dist/fp/array/isSubsetWith.js +26 -0
  189. package/dist/fp/array/isSubsetWith.mjs +26 -0
  190. package/dist/fp/array/join.d.mts +20 -0
  191. package/dist/fp/array/join.d.ts +20 -0
  192. package/dist/fp/array/join.js +24 -0
  193. package/dist/fp/array/join.mjs +24 -0
  194. package/dist/fp/array/keyBy.d.mts +21 -0
  195. package/dist/fp/array/keyBy.d.ts +21 -0
  196. package/dist/fp/array/keyBy.js +26 -0
  197. package/dist/fp/array/keyBy.mjs +26 -0
  198. package/dist/fp/array/last.d.mts +35 -0
  199. package/dist/fp/array/last.d.ts +35 -0
  200. package/dist/fp/array/last.js +9 -0
  201. package/dist/fp/array/last.mjs +9 -0
  202. package/dist/fp/array/length.d.mts +18 -0
  203. package/dist/fp/array/length.d.ts +18 -0
  204. package/dist/fp/array/length.js +22 -0
  205. package/dist/fp/array/length.mjs +22 -0
  206. package/dist/fp/array/map.d.mts +27 -0
  207. package/dist/fp/array/map.d.ts +27 -0
  208. package/dist/fp/array/map.js +36 -0
  209. package/dist/fp/array/map.mjs +35 -0
  210. package/dist/fp/array/maxBy.d.mts +37 -0
  211. package/dist/fp/array/maxBy.d.ts +37 -0
  212. package/dist/fp/array/maxBy.js +9 -0
  213. package/dist/fp/array/maxBy.mjs +9 -0
  214. package/dist/fp/array/minBy.d.mts +37 -0
  215. package/dist/fp/array/minBy.d.ts +37 -0
  216. package/dist/fp/array/minBy.js +9 -0
  217. package/dist/fp/array/minBy.mjs +9 -0
  218. package/dist/fp/array/orderBy.d.mts +21 -0
  219. package/dist/fp/array/orderBy.d.ts +21 -0
  220. package/dist/fp/array/orderBy.js +26 -0
  221. package/dist/fp/array/orderBy.mjs +26 -0
  222. package/dist/fp/array/partition.d.mts +39 -0
  223. package/dist/fp/array/partition.d.ts +39 -0
  224. package/dist/fp/array/partition.js +9 -0
  225. package/dist/fp/array/partition.mjs +9 -0
  226. package/dist/fp/array/reverse.d.mts +19 -0
  227. package/dist/fp/array/reverse.d.ts +19 -0
  228. package/dist/fp/array/reverse.js +23 -0
  229. package/dist/fp/array/reverse.mjs +23 -0
  230. package/dist/fp/array/sample.d.mts +18 -0
  231. package/dist/fp/array/sample.d.ts +18 -0
  232. package/dist/fp/array/sample.js +23 -0
  233. package/dist/fp/array/sample.mjs +23 -0
  234. package/dist/fp/array/sampleSize.d.mts +20 -0
  235. package/dist/fp/array/sampleSize.d.ts +20 -0
  236. package/dist/fp/array/sampleSize.js +25 -0
  237. package/dist/fp/array/sampleSize.mjs +25 -0
  238. package/dist/fp/array/shuffle.d.mts +19 -0
  239. package/dist/fp/array/shuffle.d.ts +19 -0
  240. package/dist/fp/array/shuffle.js +24 -0
  241. package/dist/fp/array/shuffle.mjs +24 -0
  242. package/dist/fp/array/sortBy.d.mts +26 -0
  243. package/dist/fp/array/sortBy.d.ts +26 -0
  244. package/dist/fp/array/sortBy.js +31 -0
  245. package/dist/fp/array/sortBy.mjs +31 -0
  246. package/dist/fp/array/tail.d.mts +19 -0
  247. package/dist/fp/array/tail.d.ts +19 -0
  248. package/dist/fp/array/tail.js +24 -0
  249. package/dist/fp/array/tail.mjs +24 -0
  250. package/dist/fp/array/take.d.mts +26 -0
  251. package/dist/fp/array/take.d.ts +26 -0
  252. package/dist/fp/array/take.js +39 -0
  253. package/dist/fp/array/take.mjs +38 -0
  254. package/dist/fp/array/takeRight.d.mts +20 -0
  255. package/dist/fp/array/takeRight.d.ts +20 -0
  256. package/dist/fp/array/takeRight.js +25 -0
  257. package/dist/fp/array/takeRight.mjs +25 -0
  258. package/dist/fp/array/takeRightWhile.d.mts +20 -0
  259. package/dist/fp/array/takeRightWhile.d.ts +20 -0
  260. package/dist/fp/array/takeRightWhile.js +25 -0
  261. package/dist/fp/array/takeRightWhile.mjs +25 -0
  262. package/dist/fp/array/takeWhile.d.mts +21 -0
  263. package/dist/fp/array/takeWhile.d.ts +21 -0
  264. package/dist/fp/array/takeWhile.js +32 -0
  265. package/dist/fp/array/takeWhile.mjs +31 -0
  266. package/dist/fp/array/toFilled.d.mts +23 -0
  267. package/dist/fp/array/toFilled.d.ts +23 -0
  268. package/dist/fp/array/toFilled.js +30 -0
  269. package/dist/fp/array/toFilled.mjs +30 -0
  270. package/dist/fp/array/union.d.mts +20 -0
  271. package/dist/fp/array/union.d.ts +20 -0
  272. package/dist/fp/array/union.js +25 -0
  273. package/dist/fp/array/union.mjs +25 -0
  274. package/dist/fp/array/unionBy.d.mts +22 -0
  275. package/dist/fp/array/unionBy.d.ts +22 -0
  276. package/dist/fp/array/unionBy.js +27 -0
  277. package/dist/fp/array/unionBy.mjs +27 -0
  278. package/dist/fp/array/unionWith.d.mts +21 -0
  279. package/dist/fp/array/unionWith.d.ts +21 -0
  280. package/dist/fp/array/unionWith.js +26 -0
  281. package/dist/fp/array/unionWith.mjs +26 -0
  282. package/dist/fp/array/uniq.d.mts +21 -0
  283. package/dist/fp/array/uniq.d.ts +21 -0
  284. package/dist/fp/array/uniq.js +36 -0
  285. package/dist/fp/array/uniq.mjs +36 -0
  286. package/dist/fp/array/uniqBy.d.mts +21 -0
  287. package/dist/fp/array/uniqBy.d.ts +21 -0
  288. package/dist/fp/array/uniqBy.js +38 -0
  289. package/dist/fp/array/uniqBy.mjs +38 -0
  290. package/dist/fp/array/uniqWith.d.mts +20 -0
  291. package/dist/fp/array/uniqWith.d.ts +20 -0
  292. package/dist/fp/array/uniqWith.js +35 -0
  293. package/dist/fp/array/uniqWith.mjs +35 -0
  294. package/dist/fp/array/unzip.d.mts +20 -0
  295. package/dist/fp/array/unzip.d.ts +20 -0
  296. package/dist/fp/array/unzip.js +24 -0
  297. package/dist/fp/array/unzip.mjs +24 -0
  298. package/dist/fp/array/unzipWith.d.mts +21 -0
  299. package/dist/fp/array/unzipWith.d.ts +21 -0
  300. package/dist/fp/array/unzipWith.js +26 -0
  301. package/dist/fp/array/unzipWith.mjs +26 -0
  302. package/dist/fp/array/windowed.d.mts +25 -0
  303. package/dist/fp/array/windowed.d.ts +25 -0
  304. package/dist/fp/array/windowed.js +50 -0
  305. package/dist/fp/array/windowed.mjs +50 -0
  306. package/dist/fp/array/without.d.mts +19 -0
  307. package/dist/fp/array/without.d.ts +19 -0
  308. package/dist/fp/array/without.js +30 -0
  309. package/dist/fp/array/without.mjs +29 -0
  310. package/dist/fp/array/xor.d.mts +20 -0
  311. package/dist/fp/array/xor.d.ts +20 -0
  312. package/dist/fp/array/xor.js +25 -0
  313. package/dist/fp/array/xor.mjs +25 -0
  314. package/dist/fp/array/xorBy.d.mts +22 -0
  315. package/dist/fp/array/xorBy.d.ts +22 -0
  316. package/dist/fp/array/xorBy.js +27 -0
  317. package/dist/fp/array/xorBy.mjs +27 -0
  318. package/dist/fp/array/xorWith.d.mts +21 -0
  319. package/dist/fp/array/xorWith.d.ts +21 -0
  320. package/dist/fp/array/xorWith.js +26 -0
  321. package/dist/fp/array/xorWith.mjs +26 -0
  322. package/dist/fp/array/zip.d.mts +61 -0
  323. package/dist/fp/array/zip.d.ts +61 -0
  324. package/dist/fp/array/zip.js +9 -0
  325. package/dist/fp/array/zip.mjs +9 -0
  326. package/dist/fp/array/zipObject.d.mts +21 -0
  327. package/dist/fp/array/zipObject.d.ts +21 -0
  328. package/dist/fp/array/zipObject.js +26 -0
  329. package/dist/fp/array/zipObject.mjs +26 -0
  330. package/dist/fp/array/zipWith.d.mts +57 -0
  331. package/dist/fp/array/zipWith.d.ts +57 -0
  332. package/dist/fp/array/zipWith.js +9 -0
  333. package/dist/fp/array/zipWith.mjs +9 -0
  334. package/dist/fp/index.d.mts +75 -0
  335. package/dist/fp/index.d.ts +75 -0
  336. package/dist/fp/index.js +150 -0
  337. package/dist/fp/index.mjs +77 -0
  338. package/dist/fp/math/add.d.mts +17 -0
  339. package/dist/fp/math/add.d.ts +17 -0
  340. package/dist/fp/math/add.js +21 -0
  341. package/dist/fp/math/add.mjs +21 -0
  342. package/dist/fp/math/index.d.mts +2 -0
  343. package/dist/fp/math/index.d.ts +2 -0
  344. package/dist/fp/math/index.js +2 -0
  345. package/dist/fp/math/index.mjs +2 -0
  346. package/dist/fp/math/multiply.d.mts +17 -0
  347. package/dist/fp/math/multiply.d.ts +17 -0
  348. package/dist/fp/math/multiply.js +21 -0
  349. package/dist/fp/math/multiply.mjs +21 -0
  350. package/dist/fp/object/index.d.mts +2 -0
  351. package/dist/fp/object/index.d.ts +2 -0
  352. package/dist/fp/object/index.js +2 -0
  353. package/dist/fp/object/index.mjs +2 -0
  354. package/dist/fp/object/omit.d.mts +18 -0
  355. package/dist/fp/object/omit.d.ts +18 -0
  356. package/dist/fp/object/omit.js +23 -0
  357. package/dist/fp/object/omit.mjs +23 -0
  358. package/dist/fp/object/pick.d.mts +19 -0
  359. package/dist/fp/object/pick.d.ts +19 -0
  360. package/dist/fp/object/pick.js +24 -0
  361. package/dist/fp/object/pick.mjs +24 -0
  362. package/dist/fp/pipe.d.mts +235 -0
  363. package/dist/fp/pipe.d.ts +235 -0
  364. package/dist/fp/pipe.js +116 -0
  365. package/dist/fp/pipe.mjs +116 -0
  366. package/dist/index.d.mts +3 -1
  367. package/dist/index.d.ts +3 -1
  368. package/dist/index.js +4 -0
  369. package/dist/index.mjs +3 -1
  370. package/dist/predicate/index.d.mts +2 -1
  371. package/dist/predicate/index.d.ts +2 -1
  372. package/dist/predicate/index.js +2 -0
  373. package/dist/predicate/index.mjs +2 -1
  374. package/dist/predicate/isIterable.d.mts +26 -0
  375. package/dist/predicate/isIterable.d.ts +26 -0
  376. package/dist/predicate/isIterable.js +28 -0
  377. package/dist/predicate/isIterable.mjs +28 -0
  378. package/fp.d.ts +1 -0
  379. package/fp.js +1 -0
  380. package/package.json +22 -1
@@ -0,0 +1,19 @@
1
+ //#region src/fp/array/shuffle.d.ts
2
+ /**
3
+ * Creates a function that returns a shuffled copy of an array.
4
+ *
5
+ * The returned function uses the main {@link shuffle} implementation and does not mutate
6
+ * the input array. Use it with {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @returns A function that maps a readonly array to a shuffled copy.
10
+ *
11
+ * @example
12
+ * import { pipe, shuffle } from 'es-toolkit/fp';
13
+ *
14
+ * pipe([1, 2, 3], shuffle());
15
+ * // => the same values in random order
16
+ */
17
+ declare function shuffle<T>(): (array: readonly T[]) => T[];
18
+ //#endregion
19
+ export { shuffle };
@@ -0,0 +1,24 @@
1
+ const require_shuffle = require("../../array/shuffle.js");
2
+ //#region src/fp/array/shuffle.ts
3
+ /**
4
+ * Creates a function that returns a shuffled copy of an array.
5
+ *
6
+ * The returned function uses the main {@link shuffle} implementation and does not mutate
7
+ * the input array. Use it with {@link pipe}.
8
+ *
9
+ * @template T - The type of elements in the array.
10
+ * @returns A function that maps a readonly array to a shuffled copy.
11
+ *
12
+ * @example
13
+ * import { pipe, shuffle } from 'es-toolkit/fp';
14
+ *
15
+ * pipe([1, 2, 3], shuffle());
16
+ * // => the same values in random order
17
+ */
18
+ function shuffle() {
19
+ return function(array) {
20
+ return require_shuffle.shuffle(array);
21
+ };
22
+ }
23
+ //#endregion
24
+ exports.shuffle = shuffle;
@@ -0,0 +1,24 @@
1
+ import { shuffle as shuffle$1 } from "../../array/shuffle.mjs";
2
+ //#region src/fp/array/shuffle.ts
3
+ /**
4
+ * Creates a function that returns a shuffled copy of an array.
5
+ *
6
+ * The returned function uses the main {@link shuffle} implementation and does not mutate
7
+ * the input array. Use it with {@link pipe}.
8
+ *
9
+ * @template T - The type of elements in the array.
10
+ * @returns A function that maps a readonly array to a shuffled copy.
11
+ *
12
+ * @example
13
+ * import { pipe, shuffle } from 'es-toolkit/fp';
14
+ *
15
+ * pipe([1, 2, 3], shuffle());
16
+ * // => the same values in random order
17
+ */
18
+ function shuffle() {
19
+ return function(array) {
20
+ return shuffle$1(array);
21
+ };
22
+ }
23
+ //#endregion
24
+ export { shuffle };
@@ -0,0 +1,26 @@
1
+ //#region src/fp/array/sortBy.d.ts
2
+ /**
3
+ * Creates a function that sorts an array of objects in ascending order by the
4
+ * given `criteria`. Each criterion is either an object key or a function
5
+ * returning the value to compare. When two elements tie on a criterion, the
6
+ * next criterion breaks the tie. The sort is stable. Use it with {@link pipe}.
7
+ *
8
+ * @template T - The type of the objects in the array.
9
+ * @param criteria - Object keys and/or selector functions used for comparison, applied in order.
10
+ * @returns A function that maps a `readonly T[]` to a new, sorted `T[]`.
11
+ *
12
+ * @example
13
+ * import { pipe, sortBy } from 'es-toolkit/fp';
14
+ *
15
+ * const users = [
16
+ * { user: 'foo', age: 24 },
17
+ * { user: 'bar', age: 7 },
18
+ * { user: 'foo', age: 8 },
19
+ * ];
20
+ *
21
+ * pipe(users, sortBy(['user', 'age']));
22
+ * // => [{ user: 'bar', age: 7 }, { user: 'foo', age: 8 }, { user: 'foo', age: 24 }]
23
+ */
24
+ declare function sortBy<T extends object>(criteria: Array<((item: T) => unknown) | keyof T>): (array: readonly T[]) => T[];
25
+ //#endregion
26
+ export { sortBy };
@@ -0,0 +1,26 @@
1
+ //#region src/fp/array/sortBy.d.ts
2
+ /**
3
+ * Creates a function that sorts an array of objects in ascending order by the
4
+ * given `criteria`. Each criterion is either an object key or a function
5
+ * returning the value to compare. When two elements tie on a criterion, the
6
+ * next criterion breaks the tie. The sort is stable. Use it with {@link pipe}.
7
+ *
8
+ * @template T - The type of the objects in the array.
9
+ * @param criteria - Object keys and/or selector functions used for comparison, applied in order.
10
+ * @returns A function that maps a `readonly T[]` to a new, sorted `T[]`.
11
+ *
12
+ * @example
13
+ * import { pipe, sortBy } from 'es-toolkit/fp';
14
+ *
15
+ * const users = [
16
+ * { user: 'foo', age: 24 },
17
+ * { user: 'bar', age: 7 },
18
+ * { user: 'foo', age: 8 },
19
+ * ];
20
+ *
21
+ * pipe(users, sortBy(['user', 'age']));
22
+ * // => [{ user: 'bar', age: 7 }, { user: 'foo', age: 8 }, { user: 'foo', age: 24 }]
23
+ */
24
+ declare function sortBy<T extends object>(criteria: Array<((item: T) => unknown) | keyof T>): (array: readonly T[]) => T[];
25
+ //#endregion
26
+ export { sortBy };
@@ -0,0 +1,31 @@
1
+ const require_sortBy = require("../../array/sortBy.js");
2
+ //#region src/fp/array/sortBy.ts
3
+ /**
4
+ * Creates a function that sorts an array of objects in ascending order by the
5
+ * given `criteria`. Each criterion is either an object key or a function
6
+ * returning the value to compare. When two elements tie on a criterion, the
7
+ * next criterion breaks the tie. The sort is stable. Use it with {@link pipe}.
8
+ *
9
+ * @template T - The type of the objects in the array.
10
+ * @param criteria - Object keys and/or selector functions used for comparison, applied in order.
11
+ * @returns A function that maps a `readonly T[]` to a new, sorted `T[]`.
12
+ *
13
+ * @example
14
+ * import { pipe, sortBy } from 'es-toolkit/fp';
15
+ *
16
+ * const users = [
17
+ * { user: 'foo', age: 24 },
18
+ * { user: 'bar', age: 7 },
19
+ * { user: 'foo', age: 8 },
20
+ * ];
21
+ *
22
+ * pipe(users, sortBy(['user', 'age']));
23
+ * // => [{ user: 'bar', age: 7 }, { user: 'foo', age: 8 }, { user: 'foo', age: 24 }]
24
+ */
25
+ function sortBy(criteria) {
26
+ return function(array) {
27
+ return require_sortBy.sortBy(array, criteria);
28
+ };
29
+ }
30
+ //#endregion
31
+ exports.sortBy = sortBy;
@@ -0,0 +1,31 @@
1
+ import { sortBy as sortBy$1 } from "../../array/sortBy.mjs";
2
+ //#region src/fp/array/sortBy.ts
3
+ /**
4
+ * Creates a function that sorts an array of objects in ascending order by the
5
+ * given `criteria`. Each criterion is either an object key or a function
6
+ * returning the value to compare. When two elements tie on a criterion, the
7
+ * next criterion breaks the tie. The sort is stable. Use it with {@link pipe}.
8
+ *
9
+ * @template T - The type of the objects in the array.
10
+ * @param criteria - Object keys and/or selector functions used for comparison, applied in order.
11
+ * @returns A function that maps a `readonly T[]` to a new, sorted `T[]`.
12
+ *
13
+ * @example
14
+ * import { pipe, sortBy } from 'es-toolkit/fp';
15
+ *
16
+ * const users = [
17
+ * { user: 'foo', age: 24 },
18
+ * { user: 'bar', age: 7 },
19
+ * { user: 'foo', age: 8 },
20
+ * ];
21
+ *
22
+ * pipe(users, sortBy(['user', 'age']));
23
+ * // => [{ user: 'bar', age: 7 }, { user: 'foo', age: 8 }, { user: 'foo', age: 24 }]
24
+ */
25
+ function sortBy(criteria) {
26
+ return function(array) {
27
+ return sortBy$1(array, criteria);
28
+ };
29
+ }
30
+ //#endregion
31
+ export { sortBy };
@@ -0,0 +1,19 @@
1
+ //#region src/fp/array/tail.d.ts
2
+ /**
3
+ * Creates a function that returns every element except the first one.
4
+ *
5
+ * Empty and single-element arrays return an empty array, matching the main {@link tail}
6
+ * behavior. Use the returned function with {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @returns A function that maps a readonly array to its tail elements.
10
+ *
11
+ * @example
12
+ * import { pipe, tail } from 'es-toolkit/fp';
13
+ *
14
+ * pipe([1, 2, 3], tail());
15
+ * // => [2, 3]
16
+ */
17
+ declare function tail<T>(): (array: readonly T[]) => T[];
18
+ //#endregion
19
+ export { tail };
@@ -0,0 +1,19 @@
1
+ //#region src/fp/array/tail.d.ts
2
+ /**
3
+ * Creates a function that returns every element except the first one.
4
+ *
5
+ * Empty and single-element arrays return an empty array, matching the main {@link tail}
6
+ * behavior. Use the returned function with {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @returns A function that maps a readonly array to its tail elements.
10
+ *
11
+ * @example
12
+ * import { pipe, tail } from 'es-toolkit/fp';
13
+ *
14
+ * pipe([1, 2, 3], tail());
15
+ * // => [2, 3]
16
+ */
17
+ declare function tail<T>(): (array: readonly T[]) => T[];
18
+ //#endregion
19
+ export { tail };
@@ -0,0 +1,24 @@
1
+ const require_tail = require("../../array/tail.js");
2
+ //#region src/fp/array/tail.ts
3
+ /**
4
+ * Creates a function that returns every element except the first one.
5
+ *
6
+ * Empty and single-element arrays return an empty array, matching the main {@link tail}
7
+ * behavior. Use the returned function with {@link pipe}.
8
+ *
9
+ * @template T - The type of elements in the array.
10
+ * @returns A function that maps a readonly array to its tail elements.
11
+ *
12
+ * @example
13
+ * import { pipe, tail } from 'es-toolkit/fp';
14
+ *
15
+ * pipe([1, 2, 3], tail());
16
+ * // => [2, 3]
17
+ */
18
+ function tail() {
19
+ return function(array) {
20
+ return require_tail.tail(array);
21
+ };
22
+ }
23
+ //#endregion
24
+ exports.tail = tail;
@@ -0,0 +1,24 @@
1
+ import { tail as tail$1 } from "../../array/tail.mjs";
2
+ //#region src/fp/array/tail.ts
3
+ /**
4
+ * Creates a function that returns every element except the first one.
5
+ *
6
+ * Empty and single-element arrays return an empty array, matching the main {@link tail}
7
+ * behavior. Use the returned function with {@link pipe}.
8
+ *
9
+ * @template T - The type of elements in the array.
10
+ * @returns A function that maps a readonly array to its tail elements.
11
+ *
12
+ * @example
13
+ * import { pipe, tail } from 'es-toolkit/fp';
14
+ *
15
+ * pipe([1, 2, 3], tail());
16
+ * // => [2, 3]
17
+ */
18
+ function tail() {
19
+ return function(array) {
20
+ return tail$1(array);
21
+ };
22
+ }
23
+ //#endregion
24
+ export { tail };
@@ -0,0 +1,26 @@
1
+ //#region src/fp/array/take.d.ts
2
+ /**
3
+ * Creates a function that returns the first `count` elements of an array. If
4
+ * `count` is greater than the array length, the whole array is returned. Use it
5
+ * with {@link pipe}.
6
+ *
7
+ * The returned function is **lazy-capable** for a non-negative integer `count`:
8
+ * inside a {@link pipe} it stops the walk as soon as `count` elements have been
9
+ * collected, so preceding lazy functions never process the rest of the input.
10
+ *
11
+ * @template T - The type of elements in the array.
12
+ * @param count - The number of elements to take from the front of the array.
13
+ * @returns A function that maps a `readonly T[]` to a new `T[]`.
14
+ *
15
+ * @example
16
+ * import { pipe, take } from 'es-toolkit/fp';
17
+ *
18
+ * pipe([1, 2, 3, 4, 5], take(3)); // => [1, 2, 3]
19
+ *
20
+ * @example
21
+ * // Early termination: `map` only runs three times.
22
+ * pipe([1, 2, 3, 4, 5], map(expensive), take(3));
23
+ */
24
+ declare function take<T>(count: number): (array: readonly T[]) => T[];
25
+ //#endregion
26
+ export { take };
@@ -0,0 +1,26 @@
1
+ //#region src/fp/array/take.d.ts
2
+ /**
3
+ * Creates a function that returns the first `count` elements of an array. If
4
+ * `count` is greater than the array length, the whole array is returned. Use it
5
+ * with {@link pipe}.
6
+ *
7
+ * The returned function is **lazy-capable** for a non-negative integer `count`:
8
+ * inside a {@link pipe} it stops the walk as soon as `count` elements have been
9
+ * collected, so preceding lazy functions never process the rest of the input.
10
+ *
11
+ * @template T - The type of elements in the array.
12
+ * @param count - The number of elements to take from the front of the array.
13
+ * @returns A function that maps a `readonly T[]` to a new `T[]`.
14
+ *
15
+ * @example
16
+ * import { pipe, take } from 'es-toolkit/fp';
17
+ *
18
+ * pipe([1, 2, 3, 4, 5], take(3)); // => [1, 2, 3]
19
+ *
20
+ * @example
21
+ * // Early termination: `map` only runs three times.
22
+ * pipe([1, 2, 3, 4, 5], map(expensive), take(3));
23
+ */
24
+ declare function take<T>(count: number): (array: readonly T[]) => T[];
25
+ //#endregion
26
+ export { take };
@@ -0,0 +1,39 @@
1
+ const require_take = require("../../array/take.js");
2
+ const require_lazy = require("../_internal/lazy.js");
3
+ //#region src/fp/array/take.ts
4
+ /**
5
+ * Creates a function that returns the first `count` elements of an array. If
6
+ * `count` is greater than the array length, the whole array is returned. Use it
7
+ * with {@link pipe}.
8
+ *
9
+ * The returned function is **lazy-capable** for a non-negative integer `count`:
10
+ * inside a {@link pipe} it stops the walk as soon as `count` elements have been
11
+ * collected, so preceding lazy functions never process the rest of the input.
12
+ *
13
+ * @template T - The type of elements in the array.
14
+ * @param count - The number of elements to take from the front of the array.
15
+ * @returns A function that maps a `readonly T[]` to a new `T[]`.
16
+ *
17
+ * @example
18
+ * import { pipe, take } from 'es-toolkit/fp';
19
+ *
20
+ * pipe([1, 2, 3, 4, 5], take(3)); // => [1, 2, 3]
21
+ *
22
+ * @example
23
+ * // Early termination: `map` only runs three times.
24
+ * pipe([1, 2, 3, 4, 5], map(expensive), take(3));
25
+ */
26
+ function take(count) {
27
+ function takeEager(array) {
28
+ return require_take.take(array, count);
29
+ }
30
+ if (!Number.isInteger(count) || count < 0) return takeEager;
31
+ const takeLazy = require_lazy.createLazyFunction((value, index, emit) => {
32
+ if (index >= count) return false;
33
+ emit(value);
34
+ return index < count - 1;
35
+ });
36
+ return require_lazy.combineEagerAndLazyFunctions(takeEager, takeLazy, { shortCircuit: true });
37
+ }
38
+ //#endregion
39
+ exports.take = take;
@@ -0,0 +1,38 @@
1
+ import { take as take$1 } from "../../array/take.mjs";
2
+ import { combineEagerAndLazyFunctions, createLazyFunction } from "../_internal/lazy.mjs";
3
+ //#region src/fp/array/take.ts
4
+ /**
5
+ * Creates a function that returns the first `count` elements of an array. If
6
+ * `count` is greater than the array length, the whole array is returned. Use it
7
+ * with {@link pipe}.
8
+ *
9
+ * The returned function is **lazy-capable** for a non-negative integer `count`:
10
+ * inside a {@link pipe} it stops the walk as soon as `count` elements have been
11
+ * collected, so preceding lazy functions never process the rest of the input.
12
+ *
13
+ * @template T - The type of elements in the array.
14
+ * @param count - The number of elements to take from the front of the array.
15
+ * @returns A function that maps a `readonly T[]` to a new `T[]`.
16
+ *
17
+ * @example
18
+ * import { pipe, take } from 'es-toolkit/fp';
19
+ *
20
+ * pipe([1, 2, 3, 4, 5], take(3)); // => [1, 2, 3]
21
+ *
22
+ * @example
23
+ * // Early termination: `map` only runs three times.
24
+ * pipe([1, 2, 3, 4, 5], map(expensive), take(3));
25
+ */
26
+ function take(count) {
27
+ function takeEager(array) {
28
+ return take$1(array, count);
29
+ }
30
+ if (!Number.isInteger(count) || count < 0) return takeEager;
31
+ return combineEagerAndLazyFunctions(takeEager, createLazyFunction((value, index, emit) => {
32
+ if (index >= count) return false;
33
+ emit(value);
34
+ return index < count - 1;
35
+ }), { shortCircuit: true });
36
+ }
37
+ //#endregion
38
+ export { take };
@@ -0,0 +1,20 @@
1
+ //#region src/fp/array/takeRight.d.ts
2
+ /**
3
+ * Creates a function that returns the last count values of an array.
4
+ *
5
+ * The returned function follows the main {@link takeRight} behavior and returns a new array.
6
+ * Use it with {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @param count - The number of values to take from the end.
10
+ * @returns A function that maps a readonly array to its suffix.
11
+ *
12
+ * @example
13
+ * import { pipe, takeRight } from 'es-toolkit/fp';
14
+ *
15
+ * pipe([1, 2, 3, 4], takeRight(2));
16
+ * // => [3, 4]
17
+ */
18
+ declare function takeRight<T>(count: number): (array: readonly T[]) => T[];
19
+ //#endregion
20
+ export { takeRight };
@@ -0,0 +1,20 @@
1
+ //#region src/fp/array/takeRight.d.ts
2
+ /**
3
+ * Creates a function that returns the last count values of an array.
4
+ *
5
+ * The returned function follows the main {@link takeRight} behavior and returns a new array.
6
+ * Use it with {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @param count - The number of values to take from the end.
10
+ * @returns A function that maps a readonly array to its suffix.
11
+ *
12
+ * @example
13
+ * import { pipe, takeRight } from 'es-toolkit/fp';
14
+ *
15
+ * pipe([1, 2, 3, 4], takeRight(2));
16
+ * // => [3, 4]
17
+ */
18
+ declare function takeRight<T>(count: number): (array: readonly T[]) => T[];
19
+ //#endregion
20
+ export { takeRight };
@@ -0,0 +1,25 @@
1
+ const require_takeRight = require("../../array/takeRight.js");
2
+ //#region src/fp/array/takeRight.ts
3
+ /**
4
+ * Creates a function that returns the last count values of an array.
5
+ *
6
+ * The returned function follows the main {@link takeRight} behavior and returns a new array.
7
+ * Use it with {@link pipe}.
8
+ *
9
+ * @template T - The type of elements in the array.
10
+ * @param count - The number of values to take from the end.
11
+ * @returns A function that maps a readonly array to its suffix.
12
+ *
13
+ * @example
14
+ * import { pipe, takeRight } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([1, 2, 3, 4], takeRight(2));
17
+ * // => [3, 4]
18
+ */
19
+ function takeRight(count) {
20
+ return function(array) {
21
+ return require_takeRight.takeRight(array, count);
22
+ };
23
+ }
24
+ //#endregion
25
+ exports.takeRight = takeRight;
@@ -0,0 +1,25 @@
1
+ import { takeRight as takeRight$1 } from "../../array/takeRight.mjs";
2
+ //#region src/fp/array/takeRight.ts
3
+ /**
4
+ * Creates a function that returns the last count values of an array.
5
+ *
6
+ * The returned function follows the main {@link takeRight} behavior and returns a new array.
7
+ * Use it with {@link pipe}.
8
+ *
9
+ * @template T - The type of elements in the array.
10
+ * @param count - The number of values to take from the end.
11
+ * @returns A function that maps a readonly array to its suffix.
12
+ *
13
+ * @example
14
+ * import { pipe, takeRight } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([1, 2, 3, 4], takeRight(2));
17
+ * // => [3, 4]
18
+ */
19
+ function takeRight(count) {
20
+ return function(array) {
21
+ return takeRight$1(array, count);
22
+ };
23
+ }
24
+ //#endregion
25
+ export { takeRight };
@@ -0,0 +1,20 @@
1
+ //#region src/fp/array/takeRightWhile.d.ts
2
+ /**
3
+ * Creates a function that takes trailing values while a predicate returns true.
4
+ *
5
+ * The predicate is evaluated from right to left and receives the value, index, and full
6
+ * input array. Use the returned function with {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @param predicate - Called with each value, index, and array while taking from the end.
10
+ * @returns A function that maps a readonly array to the matching suffix.
11
+ *
12
+ * @example
13
+ * import { pipe, takeRightWhile } from 'es-toolkit/fp';
14
+ *
15
+ * pipe([1, 2, 3, 4], takeRightWhile(value => value > 2));
16
+ * // => [3, 4]
17
+ */
18
+ declare function takeRightWhile<T>(predicate: (element: T, index: number, array: readonly T[]) => boolean): (array: readonly T[]) => T[];
19
+ //#endregion
20
+ export { takeRightWhile };
@@ -0,0 +1,20 @@
1
+ //#region src/fp/array/takeRightWhile.d.ts
2
+ /**
3
+ * Creates a function that takes trailing values while a predicate returns true.
4
+ *
5
+ * The predicate is evaluated from right to left and receives the value, index, and full
6
+ * input array. Use the returned function with {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @param predicate - Called with each value, index, and array while taking from the end.
10
+ * @returns A function that maps a readonly array to the matching suffix.
11
+ *
12
+ * @example
13
+ * import { pipe, takeRightWhile } from 'es-toolkit/fp';
14
+ *
15
+ * pipe([1, 2, 3, 4], takeRightWhile(value => value > 2));
16
+ * // => [3, 4]
17
+ */
18
+ declare function takeRightWhile<T>(predicate: (element: T, index: number, array: readonly T[]) => boolean): (array: readonly T[]) => T[];
19
+ //#endregion
20
+ export { takeRightWhile };
@@ -0,0 +1,25 @@
1
+ const require_takeRightWhile = require("../../array/takeRightWhile.js");
2
+ //#region src/fp/array/takeRightWhile.ts
3
+ /**
4
+ * Creates a function that takes trailing values while a predicate returns true.
5
+ *
6
+ * The predicate is evaluated from right to left and receives the value, index, and full
7
+ * input array. Use the returned function with {@link pipe}.
8
+ *
9
+ * @template T - The type of elements in the array.
10
+ * @param predicate - Called with each value, index, and array while taking from the end.
11
+ * @returns A function that maps a readonly array to the matching suffix.
12
+ *
13
+ * @example
14
+ * import { pipe, takeRightWhile } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([1, 2, 3, 4], takeRightWhile(value => value > 2));
17
+ * // => [3, 4]
18
+ */
19
+ function takeRightWhile(predicate) {
20
+ return function(array) {
21
+ return require_takeRightWhile.takeRightWhile(array, predicate);
22
+ };
23
+ }
24
+ //#endregion
25
+ exports.takeRightWhile = takeRightWhile;
@@ -0,0 +1,25 @@
1
+ import { takeRightWhile as takeRightWhile$1 } from "../../array/takeRightWhile.mjs";
2
+ //#region src/fp/array/takeRightWhile.ts
3
+ /**
4
+ * Creates a function that takes trailing values while a predicate returns true.
5
+ *
6
+ * The predicate is evaluated from right to left and receives the value, index, and full
7
+ * input array. Use the returned function with {@link pipe}.
8
+ *
9
+ * @template T - The type of elements in the array.
10
+ * @param predicate - Called with each value, index, and array while taking from the end.
11
+ * @returns A function that maps a readonly array to the matching suffix.
12
+ *
13
+ * @example
14
+ * import { pipe, takeRightWhile } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([1, 2, 3, 4], takeRightWhile(value => value > 2));
17
+ * // => [3, 4]
18
+ */
19
+ function takeRightWhile(predicate) {
20
+ return function(array) {
21
+ return takeRightWhile$1(array, predicate);
22
+ };
23
+ }
24
+ //#endregion
25
+ export { takeRightWhile };
@@ -0,0 +1,21 @@
1
+ //#region src/fp/array/takeWhile.d.ts
2
+ /**
3
+ * Creates a function that takes leading values while a predicate returns true.
4
+ *
5
+ * The returned function is lazy-capable and short-circuiting inside
6
+ * {@link pipe}; once the predicate returns false, upstream lazy operators stop
7
+ * processing further input.
8
+ *
9
+ * @template T - The type of elements in the array.
10
+ * @param predicate - Called with each value and index until it returns false.
11
+ * @returns A function that maps the piped array to the matching prefix.
12
+ *
13
+ * @example
14
+ * import { pipe, takeWhile } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([1, 2, 3, 1], takeWhile(value => value < 3));
17
+ * // => [1, 2]
18
+ */
19
+ declare function takeWhile<T>(predicate: (element: T, index: number) => boolean): (array: readonly T[]) => T[];
20
+ //#endregion
21
+ export { takeWhile };
@@ -0,0 +1,21 @@
1
+ //#region src/fp/array/takeWhile.d.ts
2
+ /**
3
+ * Creates a function that takes leading values while a predicate returns true.
4
+ *
5
+ * The returned function is lazy-capable and short-circuiting inside
6
+ * {@link pipe}; once the predicate returns false, upstream lazy operators stop
7
+ * processing further input.
8
+ *
9
+ * @template T - The type of elements in the array.
10
+ * @param predicate - Called with each value and index until it returns false.
11
+ * @returns A function that maps the piped array to the matching prefix.
12
+ *
13
+ * @example
14
+ * import { pipe, takeWhile } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([1, 2, 3, 1], takeWhile(value => value < 3));
17
+ * // => [1, 2]
18
+ */
19
+ declare function takeWhile<T>(predicate: (element: T, index: number) => boolean): (array: readonly T[]) => T[];
20
+ //#endregion
21
+ export { takeWhile };