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,32 @@
1
+ const require_takeWhile = require("../../array/takeWhile.js");
2
+ const require_lazy = require("../_internal/lazy.js");
3
+ //#region src/fp/array/takeWhile.ts
4
+ /**
5
+ * Creates a function that takes leading values while a predicate returns true.
6
+ *
7
+ * The returned function is lazy-capable and short-circuiting inside
8
+ * {@link pipe}; once the predicate returns false, upstream lazy operators stop
9
+ * processing further input.
10
+ *
11
+ * @template T - The type of elements in the array.
12
+ * @param predicate - Called with each value and index until it returns false.
13
+ * @returns A function that maps the piped array to the matching prefix.
14
+ *
15
+ * @example
16
+ * import { pipe, takeWhile } from 'es-toolkit/fp';
17
+ *
18
+ * pipe([1, 2, 3, 1], takeWhile(value => value < 3));
19
+ * // => [1, 2]
20
+ */
21
+ function takeWhile(predicate) {
22
+ function takeWhileEager(array) {
23
+ return require_takeWhile.takeWhile(array, (element, index) => predicate(element, index));
24
+ }
25
+ const takeWhileLazy = require_lazy.createLazyFunction((value, index, emit) => {
26
+ if (!predicate(value, index)) return false;
27
+ emit(value);
28
+ });
29
+ return require_lazy.combineEagerAndLazyFunctions(takeWhileEager, takeWhileLazy, { shortCircuit: true });
30
+ }
31
+ //#endregion
32
+ exports.takeWhile = takeWhile;
@@ -0,0 +1,31 @@
1
+ import { takeWhile as takeWhile$1 } from "../../array/takeWhile.mjs";
2
+ import { combineEagerAndLazyFunctions, createLazyFunction } from "../_internal/lazy.mjs";
3
+ //#region src/fp/array/takeWhile.ts
4
+ /**
5
+ * Creates a function that takes leading values while a predicate returns true.
6
+ *
7
+ * The returned function is lazy-capable and short-circuiting inside
8
+ * {@link pipe}; once the predicate returns false, upstream lazy operators stop
9
+ * processing further input.
10
+ *
11
+ * @template T - The type of elements in the array.
12
+ * @param predicate - Called with each value and index until it returns false.
13
+ * @returns A function that maps the piped array to the matching prefix.
14
+ *
15
+ * @example
16
+ * import { pipe, takeWhile } from 'es-toolkit/fp';
17
+ *
18
+ * pipe([1, 2, 3, 1], takeWhile(value => value < 3));
19
+ * // => [1, 2]
20
+ */
21
+ function takeWhile(predicate) {
22
+ function takeWhileEager(array) {
23
+ return takeWhile$1(array, (element, index) => predicate(element, index));
24
+ }
25
+ return combineEagerAndLazyFunctions(takeWhileEager, createLazyFunction((value, index, emit) => {
26
+ if (!predicate(value, index)) return false;
27
+ emit(value);
28
+ }), { shortCircuit: true });
29
+ }
30
+ //#endregion
31
+ export { takeWhile };
@@ -0,0 +1,23 @@
1
+ //#region src/fp/array/toFilled.d.ts
2
+ /**
3
+ * Creates a function that returns a filled copy of an array.
4
+ *
5
+ * The returned function follows Array.prototype.fill indexing semantics through the main
6
+ * {@link toFilled} implementation and does not mutate the input array.
7
+ *
8
+ * @template T - The type of elements in the input array.
9
+ * @template U - The type of the fill value.
10
+ * @param value - The value to write into the returned array.
11
+ * @param start - The start index. Defaults to 0.
12
+ * @param end - The end index. Defaults to the array length.
13
+ * @returns A function that maps a readonly array to a filled copy.
14
+ *
15
+ * @example
16
+ * import { pipe, toFilled } from 'es-toolkit/fp';
17
+ *
18
+ * pipe([1, 2, 3], toFilled(0, 1));
19
+ * // => [1, 0, 0]
20
+ */
21
+ declare function toFilled<T, U>(value: U, start?: number, end?: number): (array: readonly T[]) => Array<T | U>;
22
+ //#endregion
23
+ export { toFilled };
@@ -0,0 +1,23 @@
1
+ //#region src/fp/array/toFilled.d.ts
2
+ /**
3
+ * Creates a function that returns a filled copy of an array.
4
+ *
5
+ * The returned function follows Array.prototype.fill indexing semantics through the main
6
+ * {@link toFilled} implementation and does not mutate the input array.
7
+ *
8
+ * @template T - The type of elements in the input array.
9
+ * @template U - The type of the fill value.
10
+ * @param value - The value to write into the returned array.
11
+ * @param start - The start index. Defaults to 0.
12
+ * @param end - The end index. Defaults to the array length.
13
+ * @returns A function that maps a readonly array to a filled copy.
14
+ *
15
+ * @example
16
+ * import { pipe, toFilled } from 'es-toolkit/fp';
17
+ *
18
+ * pipe([1, 2, 3], toFilled(0, 1));
19
+ * // => [1, 0, 0]
20
+ */
21
+ declare function toFilled<T, U>(value: U, start?: number, end?: number): (array: readonly T[]) => Array<T | U>;
22
+ //#endregion
23
+ export { toFilled };
@@ -0,0 +1,30 @@
1
+ const require_toFilled = require("../../array/toFilled.js");
2
+ //#region src/fp/array/toFilled.ts
3
+ /**
4
+ * Creates a function that returns a filled copy of an array.
5
+ *
6
+ * The returned function follows Array.prototype.fill indexing semantics through the main
7
+ * {@link toFilled} implementation and does not mutate the input array.
8
+ *
9
+ * @template T - The type of elements in the input array.
10
+ * @template U - The type of the fill value.
11
+ * @param value - The value to write into the returned array.
12
+ * @param start - The start index. Defaults to 0.
13
+ * @param end - The end index. Defaults to the array length.
14
+ * @returns A function that maps a readonly array to a filled copy.
15
+ *
16
+ * @example
17
+ * import { pipe, toFilled } from 'es-toolkit/fp';
18
+ *
19
+ * pipe([1, 2, 3], toFilled(0, 1));
20
+ * // => [1, 0, 0]
21
+ */
22
+ function toFilled(value, start, end) {
23
+ return function(array) {
24
+ if (start == null) return require_toFilled.toFilled(array, value);
25
+ if (end == null) return require_toFilled.toFilled(array, value, start);
26
+ return require_toFilled.toFilled(array, value, start, end);
27
+ };
28
+ }
29
+ //#endregion
30
+ exports.toFilled = toFilled;
@@ -0,0 +1,30 @@
1
+ import { toFilled as toFilled$1 } from "../../array/toFilled.mjs";
2
+ //#region src/fp/array/toFilled.ts
3
+ /**
4
+ * Creates a function that returns a filled copy of an array.
5
+ *
6
+ * The returned function follows Array.prototype.fill indexing semantics through the main
7
+ * {@link toFilled} implementation and does not mutate the input array.
8
+ *
9
+ * @template T - The type of elements in the input array.
10
+ * @template U - The type of the fill value.
11
+ * @param value - The value to write into the returned array.
12
+ * @param start - The start index. Defaults to 0.
13
+ * @param end - The end index. Defaults to the array length.
14
+ * @returns A function that maps a readonly array to a filled copy.
15
+ *
16
+ * @example
17
+ * import { pipe, toFilled } from 'es-toolkit/fp';
18
+ *
19
+ * pipe([1, 2, 3], toFilled(0, 1));
20
+ * // => [1, 0, 0]
21
+ */
22
+ function toFilled(value, start, end) {
23
+ return function(array) {
24
+ if (start == null) return toFilled$1(array, value);
25
+ if (end == null) return toFilled$1(array, value, start);
26
+ return toFilled$1(array, value, start, end);
27
+ };
28
+ }
29
+ //#endregion
30
+ export { toFilled };
@@ -0,0 +1,20 @@
1
+ //#region src/fp/array/union.d.ts
2
+ /**
3
+ * Creates a function that returns unique values from the piped array and secondArray.
4
+ *
5
+ * Values keep their first occurrence order, matching the main {@link union} behavior.
6
+ * Use the returned function with {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the arrays.
9
+ * @param secondArray - Values to include after the piped array.
10
+ * @returns A function that maps a readonly array to its union with secondArray.
11
+ *
12
+ * @example
13
+ * import { pipe, union } from 'es-toolkit/fp';
14
+ *
15
+ * pipe([1, 2], union([2, 3]));
16
+ * // => [1, 2, 3]
17
+ */
18
+ declare function union<T>(secondArray: readonly T[]): (array: readonly T[]) => T[];
19
+ //#endregion
20
+ export { union };
@@ -0,0 +1,20 @@
1
+ //#region src/fp/array/union.d.ts
2
+ /**
3
+ * Creates a function that returns unique values from the piped array and secondArray.
4
+ *
5
+ * Values keep their first occurrence order, matching the main {@link union} behavior.
6
+ * Use the returned function with {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the arrays.
9
+ * @param secondArray - Values to include after the piped array.
10
+ * @returns A function that maps a readonly array to its union with secondArray.
11
+ *
12
+ * @example
13
+ * import { pipe, union } from 'es-toolkit/fp';
14
+ *
15
+ * pipe([1, 2], union([2, 3]));
16
+ * // => [1, 2, 3]
17
+ */
18
+ declare function union<T>(secondArray: readonly T[]): (array: readonly T[]) => T[];
19
+ //#endregion
20
+ export { union };
@@ -0,0 +1,25 @@
1
+ const require_union = require("../../array/union.js");
2
+ //#region src/fp/array/union.ts
3
+ /**
4
+ * Creates a function that returns unique values from the piped array and secondArray.
5
+ *
6
+ * Values keep their first occurrence order, matching the main {@link union} behavior.
7
+ * Use the returned function with {@link pipe}.
8
+ *
9
+ * @template T - The type of elements in the arrays.
10
+ * @param secondArray - Values to include after the piped array.
11
+ * @returns A function that maps a readonly array to its union with secondArray.
12
+ *
13
+ * @example
14
+ * import { pipe, union } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([1, 2], union([2, 3]));
17
+ * // => [1, 2, 3]
18
+ */
19
+ function union(secondArray) {
20
+ return function(array) {
21
+ return require_union.union(array, secondArray);
22
+ };
23
+ }
24
+ //#endregion
25
+ exports.union = union;
@@ -0,0 +1,25 @@
1
+ import { union as union$1 } from "../../array/union.mjs";
2
+ //#region src/fp/array/union.ts
3
+ /**
4
+ * Creates a function that returns unique values from the piped array and secondArray.
5
+ *
6
+ * Values keep their first occurrence order, matching the main {@link union} behavior.
7
+ * Use the returned function with {@link pipe}.
8
+ *
9
+ * @template T - The type of elements in the arrays.
10
+ * @param secondArray - Values to include after the piped array.
11
+ * @returns A function that maps a readonly array to its union with secondArray.
12
+ *
13
+ * @example
14
+ * import { pipe, union } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([1, 2], union([2, 3]));
17
+ * // => [1, 2, 3]
18
+ */
19
+ function union(secondArray) {
20
+ return function(array) {
21
+ return union$1(array, secondArray);
22
+ };
23
+ }
24
+ //#endregion
25
+ export { union };
@@ -0,0 +1,22 @@
1
+ //#region src/fp/array/unionBy.d.ts
2
+ /**
3
+ * Creates a function that returns unique values by mapped identity.
4
+ *
5
+ * Values from the piped array are considered before values from secondArray. The mapper
6
+ * is used to compare identities, matching the main {@link unionBy} behavior.
7
+ *
8
+ * @template T - The type of elements in the arrays.
9
+ * @template U - The type of comparison keys returned by the mapper.
10
+ * @param secondArray - Values to include after the piped array.
11
+ * @param mapper - Called for values from both arrays to produce comparison keys.
12
+ * @returns A function that maps a readonly array to its union with secondArray.
13
+ *
14
+ * @example
15
+ * import { pipe, unionBy } from 'es-toolkit/fp';
16
+ *
17
+ * pipe([{ id: 1 }], unionBy([{ id: 1 }, { id: 2 }], item => item.id));
18
+ * // => [{ id: 1 }, { id: 2 }]
19
+ */
20
+ declare function unionBy<T, U>(secondArray: readonly T[], mapper: (item: T) => U): (array: readonly T[]) => T[];
21
+ //#endregion
22
+ export { unionBy };
@@ -0,0 +1,22 @@
1
+ //#region src/fp/array/unionBy.d.ts
2
+ /**
3
+ * Creates a function that returns unique values by mapped identity.
4
+ *
5
+ * Values from the piped array are considered before values from secondArray. The mapper
6
+ * is used to compare identities, matching the main {@link unionBy} behavior.
7
+ *
8
+ * @template T - The type of elements in the arrays.
9
+ * @template U - The type of comparison keys returned by the mapper.
10
+ * @param secondArray - Values to include after the piped array.
11
+ * @param mapper - Called for values from both arrays to produce comparison keys.
12
+ * @returns A function that maps a readonly array to its union with secondArray.
13
+ *
14
+ * @example
15
+ * import { pipe, unionBy } from 'es-toolkit/fp';
16
+ *
17
+ * pipe([{ id: 1 }], unionBy([{ id: 1 }, { id: 2 }], item => item.id));
18
+ * // => [{ id: 1 }, { id: 2 }]
19
+ */
20
+ declare function unionBy<T, U>(secondArray: readonly T[], mapper: (item: T) => U): (array: readonly T[]) => T[];
21
+ //#endregion
22
+ export { unionBy };
@@ -0,0 +1,27 @@
1
+ const require_unionBy = require("../../array/unionBy.js");
2
+ //#region src/fp/array/unionBy.ts
3
+ /**
4
+ * Creates a function that returns unique values by mapped identity.
5
+ *
6
+ * Values from the piped array are considered before values from secondArray. The mapper
7
+ * is used to compare identities, matching the main {@link unionBy} behavior.
8
+ *
9
+ * @template T - The type of elements in the arrays.
10
+ * @template U - The type of comparison keys returned by the mapper.
11
+ * @param secondArray - Values to include after the piped array.
12
+ * @param mapper - Called for values from both arrays to produce comparison keys.
13
+ * @returns A function that maps a readonly array to its union with secondArray.
14
+ *
15
+ * @example
16
+ * import { pipe, unionBy } from 'es-toolkit/fp';
17
+ *
18
+ * pipe([{ id: 1 }], unionBy([{ id: 1 }, { id: 2 }], item => item.id));
19
+ * // => [{ id: 1 }, { id: 2 }]
20
+ */
21
+ function unionBy(secondArray, mapper) {
22
+ return function(array) {
23
+ return require_unionBy.unionBy(array, secondArray, mapper);
24
+ };
25
+ }
26
+ //#endregion
27
+ exports.unionBy = unionBy;
@@ -0,0 +1,27 @@
1
+ import { unionBy as unionBy$1 } from "../../array/unionBy.mjs";
2
+ //#region src/fp/array/unionBy.ts
3
+ /**
4
+ * Creates a function that returns unique values by mapped identity.
5
+ *
6
+ * Values from the piped array are considered before values from secondArray. The mapper
7
+ * is used to compare identities, matching the main {@link unionBy} behavior.
8
+ *
9
+ * @template T - The type of elements in the arrays.
10
+ * @template U - The type of comparison keys returned by the mapper.
11
+ * @param secondArray - Values to include after the piped array.
12
+ * @param mapper - Called for values from both arrays to produce comparison keys.
13
+ * @returns A function that maps a readonly array to its union with secondArray.
14
+ *
15
+ * @example
16
+ * import { pipe, unionBy } from 'es-toolkit/fp';
17
+ *
18
+ * pipe([{ id: 1 }], unionBy([{ id: 1 }, { id: 2 }], item => item.id));
19
+ * // => [{ id: 1 }, { id: 2 }]
20
+ */
21
+ function unionBy(secondArray, mapper) {
22
+ return function(array) {
23
+ return unionBy$1(array, secondArray, mapper);
24
+ };
25
+ }
26
+ //#endregion
27
+ export { unionBy };
@@ -0,0 +1,21 @@
1
+ //#region src/fp/array/unionWith.d.ts
2
+ /**
3
+ * Creates a function that returns unique values using a custom equality function.
4
+ *
5
+ * Values from the piped array are considered before values from secondArray. The equality
6
+ * function decides whether two values represent the same item.
7
+ *
8
+ * @template T - The type of elements in the arrays.
9
+ * @param secondArray - Values to include after the piped array.
10
+ * @param areItemsEqual - Returns true when two values are equal.
11
+ * @returns A function that maps a readonly array to its union with secondArray.
12
+ *
13
+ * @example
14
+ * import { pipe, unionWith } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([{ id: 1 }], unionWith([{ id: 1 }, { id: 2 }], (a, b) => a.id === b.id));
17
+ * // => [{ id: 1 }, { id: 2 }]
18
+ */
19
+ declare function unionWith<T>(secondArray: readonly T[], areItemsEqual: (item: T, other: T) => boolean): (array: readonly T[]) => T[];
20
+ //#endregion
21
+ export { unionWith };
@@ -0,0 +1,21 @@
1
+ //#region src/fp/array/unionWith.d.ts
2
+ /**
3
+ * Creates a function that returns unique values using a custom equality function.
4
+ *
5
+ * Values from the piped array are considered before values from secondArray. The equality
6
+ * function decides whether two values represent the same item.
7
+ *
8
+ * @template T - The type of elements in the arrays.
9
+ * @param secondArray - Values to include after the piped array.
10
+ * @param areItemsEqual - Returns true when two values are equal.
11
+ * @returns A function that maps a readonly array to its union with secondArray.
12
+ *
13
+ * @example
14
+ * import { pipe, unionWith } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([{ id: 1 }], unionWith([{ id: 1 }, { id: 2 }], (a, b) => a.id === b.id));
17
+ * // => [{ id: 1 }, { id: 2 }]
18
+ */
19
+ declare function unionWith<T>(secondArray: readonly T[], areItemsEqual: (item: T, other: T) => boolean): (array: readonly T[]) => T[];
20
+ //#endregion
21
+ export { unionWith };
@@ -0,0 +1,26 @@
1
+ const require_unionWith = require("../../array/unionWith.js");
2
+ //#region src/fp/array/unionWith.ts
3
+ /**
4
+ * Creates a function that returns unique values using a custom equality function.
5
+ *
6
+ * Values from the piped array are considered before values from secondArray. The equality
7
+ * function decides whether two values represent the same item.
8
+ *
9
+ * @template T - The type of elements in the arrays.
10
+ * @param secondArray - Values to include after the piped array.
11
+ * @param areItemsEqual - Returns true when two values are equal.
12
+ * @returns A function that maps a readonly array to its union with secondArray.
13
+ *
14
+ * @example
15
+ * import { pipe, unionWith } from 'es-toolkit/fp';
16
+ *
17
+ * pipe([{ id: 1 }], unionWith([{ id: 1 }, { id: 2 }], (a, b) => a.id === b.id));
18
+ * // => [{ id: 1 }, { id: 2 }]
19
+ */
20
+ function unionWith(secondArray, areItemsEqual) {
21
+ return function(array) {
22
+ return require_unionWith.unionWith(array, secondArray, areItemsEqual);
23
+ };
24
+ }
25
+ //#endregion
26
+ exports.unionWith = unionWith;
@@ -0,0 +1,26 @@
1
+ import { unionWith as unionWith$1 } from "../../array/unionWith.mjs";
2
+ //#region src/fp/array/unionWith.ts
3
+ /**
4
+ * Creates a function that returns unique values using a custom equality function.
5
+ *
6
+ * Values from the piped array are considered before values from secondArray. The equality
7
+ * function decides whether two values represent the same item.
8
+ *
9
+ * @template T - The type of elements in the arrays.
10
+ * @param secondArray - Values to include after the piped array.
11
+ * @param areItemsEqual - Returns true when two values are equal.
12
+ * @returns A function that maps a readonly array to its union with secondArray.
13
+ *
14
+ * @example
15
+ * import { pipe, unionWith } from 'es-toolkit/fp';
16
+ *
17
+ * pipe([{ id: 1 }], unionWith([{ id: 1 }, { id: 2 }], (a, b) => a.id === b.id));
18
+ * // => [{ id: 1 }, { id: 2 }]
19
+ */
20
+ function unionWith(secondArray, areItemsEqual) {
21
+ return function(array) {
22
+ return unionWith$1(array, secondArray, areItemsEqual);
23
+ };
24
+ }
25
+ //#endregion
26
+ export { unionWith };
@@ -0,0 +1,21 @@
1
+ //#region src/fp/array/uniq.d.ts
2
+ /**
3
+ * Creates a function that removes duplicate values from an array, preserving
4
+ * the order of first occurrence. Equality follows SameValueZero, matching
5
+ * Set semantics. Use it with {@link pipe}.
6
+ *
7
+ * The returned function is lazy-capable inside {@link pipe}. It keeps a Set of
8
+ * values already emitted during each pipeline run.
9
+ *
10
+ * @template T - The type of elements in the array.
11
+ * @returns A function that maps a readonly array to a duplicate-free array.
12
+ *
13
+ * @example
14
+ * import { pipe, uniq } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([1, 2, 2, 3, 3, 3], uniq());
17
+ * // => [1, 2, 3]
18
+ */
19
+ declare function uniq<T>(): (array: readonly T[]) => T[];
20
+ //#endregion
21
+ export { uniq };
@@ -0,0 +1,21 @@
1
+ //#region src/fp/array/uniq.d.ts
2
+ /**
3
+ * Creates a function that removes duplicate values from an array, preserving
4
+ * the order of first occurrence. Equality follows SameValueZero, matching
5
+ * Set semantics. Use it with {@link pipe}.
6
+ *
7
+ * The returned function is lazy-capable inside {@link pipe}. It keeps a Set of
8
+ * values already emitted during each pipeline run.
9
+ *
10
+ * @template T - The type of elements in the array.
11
+ * @returns A function that maps a readonly array to a duplicate-free array.
12
+ *
13
+ * @example
14
+ * import { pipe, uniq } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([1, 2, 2, 3, 3, 3], uniq());
17
+ * // => [1, 2, 3]
18
+ */
19
+ declare function uniq<T>(): (array: readonly T[]) => T[];
20
+ //#endregion
21
+ export { uniq };
@@ -0,0 +1,36 @@
1
+ const require_uniq = require("../../array/uniq.js");
2
+ const require_lazy = require("../_internal/lazy.js");
3
+ //#region src/fp/array/uniq.ts
4
+ /**
5
+ * Creates a function that removes duplicate values from an array, preserving
6
+ * the order of first occurrence. Equality follows SameValueZero, matching
7
+ * Set semantics. Use it with {@link pipe}.
8
+ *
9
+ * The returned function is lazy-capable inside {@link pipe}. It keeps a Set of
10
+ * values already emitted during each pipeline run.
11
+ *
12
+ * @template T - The type of elements in the array.
13
+ * @returns A function that maps a readonly array to a duplicate-free array.
14
+ *
15
+ * @example
16
+ * import { pipe, uniq } from 'es-toolkit/fp';
17
+ *
18
+ * pipe([1, 2, 2, 3, 3, 3], uniq());
19
+ * // => [1, 2, 3]
20
+ */
21
+ function uniq() {
22
+ function uniqEager(array) {
23
+ return require_uniq.uniq(array);
24
+ }
25
+ const uniqLazy = (emit) => {
26
+ const seen = /* @__PURE__ */ new Set();
27
+ return (value) => {
28
+ if (seen.has(value)) return true;
29
+ seen.add(value);
30
+ return emit(value);
31
+ };
32
+ };
33
+ return require_lazy.combineEagerAndLazyFunctions(uniqEager, uniqLazy);
34
+ }
35
+ //#endregion
36
+ exports.uniq = uniq;
@@ -0,0 +1,36 @@
1
+ import { uniq as uniq$1 } from "../../array/uniq.mjs";
2
+ import { combineEagerAndLazyFunctions } from "../_internal/lazy.mjs";
3
+ //#region src/fp/array/uniq.ts
4
+ /**
5
+ * Creates a function that removes duplicate values from an array, preserving
6
+ * the order of first occurrence. Equality follows SameValueZero, matching
7
+ * Set semantics. Use it with {@link pipe}.
8
+ *
9
+ * The returned function is lazy-capable inside {@link pipe}. It keeps a Set of
10
+ * values already emitted during each pipeline run.
11
+ *
12
+ * @template T - The type of elements in the array.
13
+ * @returns A function that maps a readonly array to a duplicate-free array.
14
+ *
15
+ * @example
16
+ * import { pipe, uniq } from 'es-toolkit/fp';
17
+ *
18
+ * pipe([1, 2, 2, 3, 3, 3], uniq());
19
+ * // => [1, 2, 3]
20
+ */
21
+ function uniq() {
22
+ function uniqEager(array) {
23
+ return uniq$1(array);
24
+ }
25
+ const uniqLazy = (emit) => {
26
+ const seen = /* @__PURE__ */ new Set();
27
+ return (value) => {
28
+ if (seen.has(value)) return true;
29
+ seen.add(value);
30
+ return emit(value);
31
+ };
32
+ };
33
+ return combineEagerAndLazyFunctions(uniqEager, uniqLazy);
34
+ }
35
+ //#endregion
36
+ export { uniq };
@@ -0,0 +1,21 @@
1
+ //#region src/fp/array/uniqBy.d.ts
2
+ /**
3
+ * Creates a function that removes duplicate values by mapped identity.
4
+ *
5
+ * The first value for each mapped key is preserved. The returned function is
6
+ * lazy-capable inside {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @template U - The type of comparison keys returned by the mapper.
10
+ * @param mapper - Called with each value and index to produce a comparison key.
11
+ * @returns A function that maps the piped array to unique values.
12
+ *
13
+ * @example
14
+ * import { pipe, uniqBy } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([{ id: 1 }, { id: 1 }, { id: 2 }], uniqBy(item => item.id));
17
+ * // => [{ id: 1 }, { id: 2 }]
18
+ */
19
+ declare function uniqBy<T, U>(mapper: (item: T, index: number) => U): (array: readonly T[]) => T[];
20
+ //#endregion
21
+ export { uniqBy };
@@ -0,0 +1,21 @@
1
+ //#region src/fp/array/uniqBy.d.ts
2
+ /**
3
+ * Creates a function that removes duplicate values by mapped identity.
4
+ *
5
+ * The first value for each mapped key is preserved. The returned function is
6
+ * lazy-capable inside {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @template U - The type of comparison keys returned by the mapper.
10
+ * @param mapper - Called with each value and index to produce a comparison key.
11
+ * @returns A function that maps the piped array to unique values.
12
+ *
13
+ * @example
14
+ * import { pipe, uniqBy } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([{ id: 1 }, { id: 1 }, { id: 2 }], uniqBy(item => item.id));
17
+ * // => [{ id: 1 }, { id: 2 }]
18
+ */
19
+ declare function uniqBy<T, U>(mapper: (item: T, index: number) => U): (array: readonly T[]) => T[];
20
+ //#endregion
21
+ export { uniqBy };