es-toolkit 1.48.1-dev.1889 → 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,21 @@
1
+ //#region src/fp/array/isSubsetWith.d.ts
2
+ /**
3
+ * Creates a predicate that checks subset membership with a custom equality function.
4
+ *
5
+ * Every value in the piped array must match at least one value in superset according
6
+ * to areItemsEqual.
7
+ *
8
+ * @template T - The type of elements in the arrays.
9
+ * @param superset - The array that may contain all values from the piped array.
10
+ * @param areItemsEqual - Returns true when a piped value and a superset value are equal.
11
+ * @returns A predicate for the piped array.
12
+ *
13
+ * @example
14
+ * import { isSubsetWith, pipe } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([{ id: 1 }], isSubsetWith([{ id: 1 }, { id: 2 }], (a, b) => a.id === b.id));
17
+ * // => true
18
+ */
19
+ declare function isSubsetWith<T>(superset: readonly T[], areItemsEqual: (item: T, other: T) => boolean): (array: readonly T[]) => boolean;
20
+ //#endregion
21
+ export { isSubsetWith };
@@ -0,0 +1,21 @@
1
+ //#region src/fp/array/isSubsetWith.d.ts
2
+ /**
3
+ * Creates a predicate that checks subset membership with a custom equality function.
4
+ *
5
+ * Every value in the piped array must match at least one value in superset according
6
+ * to areItemsEqual.
7
+ *
8
+ * @template T - The type of elements in the arrays.
9
+ * @param superset - The array that may contain all values from the piped array.
10
+ * @param areItemsEqual - Returns true when a piped value and a superset value are equal.
11
+ * @returns A predicate for the piped array.
12
+ *
13
+ * @example
14
+ * import { isSubsetWith, pipe } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([{ id: 1 }], isSubsetWith([{ id: 1 }, { id: 2 }], (a, b) => a.id === b.id));
17
+ * // => true
18
+ */
19
+ declare function isSubsetWith<T>(superset: readonly T[], areItemsEqual: (item: T, other: T) => boolean): (array: readonly T[]) => boolean;
20
+ //#endregion
21
+ export { isSubsetWith };
@@ -0,0 +1,26 @@
1
+ const require_isSubsetWith = require("../../array/isSubsetWith.js");
2
+ //#region src/fp/array/isSubsetWith.ts
3
+ /**
4
+ * Creates a predicate that checks subset membership with a custom equality function.
5
+ *
6
+ * Every value in the piped array must match at least one value in superset according
7
+ * to areItemsEqual.
8
+ *
9
+ * @template T - The type of elements in the arrays.
10
+ * @param superset - The array that may contain all values from the piped array.
11
+ * @param areItemsEqual - Returns true when a piped value and a superset value are equal.
12
+ * @returns A predicate for the piped array.
13
+ *
14
+ * @example
15
+ * import { isSubsetWith, pipe } from 'es-toolkit/fp';
16
+ *
17
+ * pipe([{ id: 1 }], isSubsetWith([{ id: 1 }, { id: 2 }], (a, b) => a.id === b.id));
18
+ * // => true
19
+ */
20
+ function isSubsetWith(superset, areItemsEqual) {
21
+ return function(array) {
22
+ return require_isSubsetWith.isSubsetWith(superset, array, areItemsEqual);
23
+ };
24
+ }
25
+ //#endregion
26
+ exports.isSubsetWith = isSubsetWith;
@@ -0,0 +1,26 @@
1
+ import { isSubsetWith as isSubsetWith$1 } from "../../array/isSubsetWith.mjs";
2
+ //#region src/fp/array/isSubsetWith.ts
3
+ /**
4
+ * Creates a predicate that checks subset membership with a custom equality function.
5
+ *
6
+ * Every value in the piped array must match at least one value in superset according
7
+ * to areItemsEqual.
8
+ *
9
+ * @template T - The type of elements in the arrays.
10
+ * @param superset - The array that may contain all values from the piped array.
11
+ * @param areItemsEqual - Returns true when a piped value and a superset value are equal.
12
+ * @returns A predicate for the piped array.
13
+ *
14
+ * @example
15
+ * import { isSubsetWith, pipe } from 'es-toolkit/fp';
16
+ *
17
+ * pipe([{ id: 1 }], isSubsetWith([{ id: 1 }, { id: 2 }], (a, b) => a.id === b.id));
18
+ * // => true
19
+ */
20
+ function isSubsetWith(superset, areItemsEqual) {
21
+ return function(array) {
22
+ return isSubsetWith$1(superset, array, areItemsEqual);
23
+ };
24
+ }
25
+ //#endregion
26
+ export { isSubsetWith };
@@ -0,0 +1,20 @@
1
+ //#region src/fp/array/join.d.ts
2
+ /**
3
+ * Creates a function that joins array values into a string.
4
+ *
5
+ * The separator is passed to Array.prototype.join, so undefined uses a comma.
6
+ * Use the returned function with {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @param separator - The separator placed between values.
10
+ * @returns A function that maps a readonly array to a joined string.
11
+ *
12
+ * @example
13
+ * import { join, pipe } from 'es-toolkit/fp';
14
+ *
15
+ * pipe(['a', 'b', 'c'], join('-'));
16
+ * // => 'a-b-c'
17
+ */
18
+ declare function join<T>(separator?: string): (array: readonly T[]) => string;
19
+ //#endregion
20
+ export { join };
@@ -0,0 +1,20 @@
1
+ //#region src/fp/array/join.d.ts
2
+ /**
3
+ * Creates a function that joins array values into a string.
4
+ *
5
+ * The separator is passed to Array.prototype.join, so undefined uses a comma.
6
+ * Use the returned function with {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @param separator - The separator placed between values.
10
+ * @returns A function that maps a readonly array to a joined string.
11
+ *
12
+ * @example
13
+ * import { join, pipe } from 'es-toolkit/fp';
14
+ *
15
+ * pipe(['a', 'b', 'c'], join('-'));
16
+ * // => 'a-b-c'
17
+ */
18
+ declare function join<T>(separator?: string): (array: readonly T[]) => string;
19
+ //#endregion
20
+ export { join };
@@ -0,0 +1,24 @@
1
+ //#region src/fp/array/join.ts
2
+ /**
3
+ * Creates a function that joins array values into a string.
4
+ *
5
+ * The separator is passed to Array.prototype.join, so undefined uses a comma.
6
+ * Use the returned function with {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @param separator - The separator placed between values.
10
+ * @returns A function that maps a readonly array to a joined string.
11
+ *
12
+ * @example
13
+ * import { join, pipe } from 'es-toolkit/fp';
14
+ *
15
+ * pipe(['a', 'b', 'c'], join('-'));
16
+ * // => 'a-b-c'
17
+ */
18
+ function join(separator) {
19
+ return function(array) {
20
+ return array.join(separator);
21
+ };
22
+ }
23
+ //#endregion
24
+ exports.join = join;
@@ -0,0 +1,24 @@
1
+ //#region src/fp/array/join.ts
2
+ /**
3
+ * Creates a function that joins array values into a string.
4
+ *
5
+ * The separator is passed to Array.prototype.join, so undefined uses a comma.
6
+ * Use the returned function with {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @param separator - The separator placed between values.
10
+ * @returns A function that maps a readonly array to a joined string.
11
+ *
12
+ * @example
13
+ * import { join, pipe } from 'es-toolkit/fp';
14
+ *
15
+ * pipe(['a', 'b', 'c'], join('-'));
16
+ * // => 'a-b-c'
17
+ */
18
+ function join(separator) {
19
+ return function(array) {
20
+ return array.join(separator);
21
+ };
22
+ }
23
+ //#endregion
24
+ export { join };
@@ -0,0 +1,21 @@
1
+ //#region src/fp/array/keyBy.d.ts
2
+ /**
3
+ * Creates a function that indexes values by a derived key.
4
+ *
5
+ * The key selector receives each value, index, and full input array. When multiple values
6
+ * produce the same key, the last value wins, matching the main {@link keyBy} behavior.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @template K - The property-key type produced by the selector.
10
+ * @param getKey - Called with each value, index, and array to produce an object key.
11
+ * @returns A function that maps a readonly array to an object keyed by the derived keys.
12
+ *
13
+ * @example
14
+ * import { keyBy, pipe } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([{ id: 'a', value: 1 }, { id: 'b', value: 2 }], keyBy(item => item.id));
17
+ * // => { a: { id: 'a', value: 1 }, b: { id: 'b', value: 2 } }
18
+ */
19
+ declare function keyBy<T, K extends PropertyKey>(getKey: (item: T, index: number, array: readonly T[]) => K): (array: readonly T[]) => Record<K, T>;
20
+ //#endregion
21
+ export { keyBy };
@@ -0,0 +1,21 @@
1
+ //#region src/fp/array/keyBy.d.ts
2
+ /**
3
+ * Creates a function that indexes values by a derived key.
4
+ *
5
+ * The key selector receives each value, index, and full input array. When multiple values
6
+ * produce the same key, the last value wins, matching the main {@link keyBy} behavior.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @template K - The property-key type produced by the selector.
10
+ * @param getKey - Called with each value, index, and array to produce an object key.
11
+ * @returns A function that maps a readonly array to an object keyed by the derived keys.
12
+ *
13
+ * @example
14
+ * import { keyBy, pipe } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([{ id: 'a', value: 1 }, { id: 'b', value: 2 }], keyBy(item => item.id));
17
+ * // => { a: { id: 'a', value: 1 }, b: { id: 'b', value: 2 } }
18
+ */
19
+ declare function keyBy<T, K extends PropertyKey>(getKey: (item: T, index: number, array: readonly T[]) => K): (array: readonly T[]) => Record<K, T>;
20
+ //#endregion
21
+ export { keyBy };
@@ -0,0 +1,26 @@
1
+ const require_keyBy = require("../../array/keyBy.js");
2
+ //#region src/fp/array/keyBy.ts
3
+ /**
4
+ * Creates a function that indexes values by a derived key.
5
+ *
6
+ * The key selector receives each value, index, and full input array. When multiple values
7
+ * produce the same key, the last value wins, matching the main {@link keyBy} behavior.
8
+ *
9
+ * @template T - The type of elements in the array.
10
+ * @template K - The property-key type produced by the selector.
11
+ * @param getKey - Called with each value, index, and array to produce an object key.
12
+ * @returns A function that maps a readonly array to an object keyed by the derived keys.
13
+ *
14
+ * @example
15
+ * import { keyBy, pipe } from 'es-toolkit/fp';
16
+ *
17
+ * pipe([{ id: 'a', value: 1 }, { id: 'b', value: 2 }], keyBy(item => item.id));
18
+ * // => { a: { id: 'a', value: 1 }, b: { id: 'b', value: 2 } }
19
+ */
20
+ function keyBy(getKey) {
21
+ return function(array) {
22
+ return require_keyBy.keyBy(array, getKey);
23
+ };
24
+ }
25
+ //#endregion
26
+ exports.keyBy = keyBy;
@@ -0,0 +1,26 @@
1
+ import { keyBy as keyBy$1 } from "../../array/keyBy.mjs";
2
+ //#region src/fp/array/keyBy.ts
3
+ /**
4
+ * Creates a function that indexes values by a derived key.
5
+ *
6
+ * The key selector receives each value, index, and full input array. When multiple values
7
+ * produce the same key, the last value wins, matching the main {@link keyBy} behavior.
8
+ *
9
+ * @template T - The type of elements in the array.
10
+ * @template K - The property-key type produced by the selector.
11
+ * @param getKey - Called with each value, index, and array to produce an object key.
12
+ * @returns A function that maps a readonly array to an object keyed by the derived keys.
13
+ *
14
+ * @example
15
+ * import { keyBy, pipe } from 'es-toolkit/fp';
16
+ *
17
+ * pipe([{ id: 'a', value: 1 }, { id: 'b', value: 2 }], keyBy(item => item.id));
18
+ * // => { a: { id: 'a', value: 1 }, b: { id: 'b', value: 2 } }
19
+ */
20
+ function keyBy(getKey) {
21
+ return function(array) {
22
+ return keyBy$1(array, getKey);
23
+ };
24
+ }
25
+ //#endregion
26
+ export { keyBy };
@@ -0,0 +1,35 @@
1
+ //#region src/fp/array/last.d.ts
2
+ /**
3
+ * Creates a function that returns the last element of a non-empty array.
4
+ *
5
+ * This overload preserves the non-empty tuple guarantee: the returned function
6
+ * always returns T when the piped array has at least one element.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @returns A function that maps a non-empty readonly array to its last element.
10
+ *
11
+ * @example
12
+ * import { last, pipe } from 'es-toolkit/fp';
13
+ *
14
+ * pipe([1, 2, 3] as const, last());
15
+ * // => 3
16
+ */
17
+ declare function last<T>(): (array: readonly [...T[], T]) => T;
18
+ /**
19
+ * Creates a function that returns the last element of an array, or undefined.
20
+ *
21
+ * Empty arrays return undefined, matching the main {@link last} behavior. Use
22
+ * the returned function with {@link pipe}.
23
+ *
24
+ * @template T - The type of elements in the array.
25
+ * @returns A function that maps a readonly array to its last element, or undefined.
26
+ *
27
+ * @example
28
+ * import { last, pipe } from 'es-toolkit/fp';
29
+ *
30
+ * pipe([] as number[], last());
31
+ * // => undefined
32
+ */
33
+ declare function last<T>(): (array: readonly T[]) => T | undefined;
34
+ //#endregion
35
+ export { last };
@@ -0,0 +1,35 @@
1
+ //#region src/fp/array/last.d.ts
2
+ /**
3
+ * Creates a function that returns the last element of a non-empty array.
4
+ *
5
+ * This overload preserves the non-empty tuple guarantee: the returned function
6
+ * always returns T when the piped array has at least one element.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @returns A function that maps a non-empty readonly array to its last element.
10
+ *
11
+ * @example
12
+ * import { last, pipe } from 'es-toolkit/fp';
13
+ *
14
+ * pipe([1, 2, 3] as const, last());
15
+ * // => 3
16
+ */
17
+ declare function last<T>(): (array: readonly [...T[], T]) => T;
18
+ /**
19
+ * Creates a function that returns the last element of an array, or undefined.
20
+ *
21
+ * Empty arrays return undefined, matching the main {@link last} behavior. Use
22
+ * the returned function with {@link pipe}.
23
+ *
24
+ * @template T - The type of elements in the array.
25
+ * @returns A function that maps a readonly array to its last element, or undefined.
26
+ *
27
+ * @example
28
+ * import { last, pipe } from 'es-toolkit/fp';
29
+ *
30
+ * pipe([] as number[], last());
31
+ * // => undefined
32
+ */
33
+ declare function last<T>(): (array: readonly T[]) => T | undefined;
34
+ //#endregion
35
+ export { last };
@@ -0,0 +1,9 @@
1
+ const require_last = require("../../array/last.js");
2
+ //#region src/fp/array/last.ts
3
+ function last() {
4
+ return function(array) {
5
+ return require_last.last(array);
6
+ };
7
+ }
8
+ //#endregion
9
+ exports.last = last;
@@ -0,0 +1,9 @@
1
+ import { last as last$1 } from "../../array/last.mjs";
2
+ //#region src/fp/array/last.ts
3
+ function last() {
4
+ return function(array) {
5
+ return last$1(array);
6
+ };
7
+ }
8
+ //#endregion
9
+ export { last };
@@ -0,0 +1,18 @@
1
+ //#region src/fp/array/length.d.ts
2
+ /**
3
+ * Creates a function that returns the length of an array.
4
+ *
5
+ * Use it with {@link pipe} when a pipeline should end with the number of input values.
6
+ *
7
+ * @template T - The type of elements in the array.
8
+ * @returns A function that maps a readonly array to its length.
9
+ *
10
+ * @example
11
+ * import { length, pipe } from 'es-toolkit/fp';
12
+ *
13
+ * pipe(['a', 'b', 'c'], length());
14
+ * // => 3
15
+ */
16
+ declare function length<T>(): (array: readonly T[]) => number;
17
+ //#endregion
18
+ export { length };
@@ -0,0 +1,18 @@
1
+ //#region src/fp/array/length.d.ts
2
+ /**
3
+ * Creates a function that returns the length of an array.
4
+ *
5
+ * Use it with {@link pipe} when a pipeline should end with the number of input values.
6
+ *
7
+ * @template T - The type of elements in the array.
8
+ * @returns A function that maps a readonly array to its length.
9
+ *
10
+ * @example
11
+ * import { length, pipe } from 'es-toolkit/fp';
12
+ *
13
+ * pipe(['a', 'b', 'c'], length());
14
+ * // => 3
15
+ */
16
+ declare function length<T>(): (array: readonly T[]) => number;
17
+ //#endregion
18
+ export { length };
@@ -0,0 +1,22 @@
1
+ //#region src/fp/array/length.ts
2
+ /**
3
+ * Creates a function that returns the length of an array.
4
+ *
5
+ * Use it with {@link pipe} when a pipeline should end with the number of input values.
6
+ *
7
+ * @template T - The type of elements in the array.
8
+ * @returns A function that maps a readonly array to its length.
9
+ *
10
+ * @example
11
+ * import { length, pipe } from 'es-toolkit/fp';
12
+ *
13
+ * pipe(['a', 'b', 'c'], length());
14
+ * // => 3
15
+ */
16
+ function length() {
17
+ return function(array) {
18
+ return array.length;
19
+ };
20
+ }
21
+ //#endregion
22
+ exports.length = length;
@@ -0,0 +1,22 @@
1
+ //#region src/fp/array/length.ts
2
+ /**
3
+ * Creates a function that returns the length of an array.
4
+ *
5
+ * Use it with {@link pipe} when a pipeline should end with the number of input values.
6
+ *
7
+ * @template T - The type of elements in the array.
8
+ * @returns A function that maps a readonly array to its length.
9
+ *
10
+ * @example
11
+ * import { length, pipe } from 'es-toolkit/fp';
12
+ *
13
+ * pipe(['a', 'b', 'c'], length());
14
+ * // => 3
15
+ */
16
+ function length() {
17
+ return function(array) {
18
+ return array.length;
19
+ };
20
+ }
21
+ //#endregion
22
+ export { length };
@@ -0,0 +1,27 @@
1
+ //#region src/fp/array/map.d.ts
2
+ /**
3
+ * Creates a function that builds a new array by calling `callback` on every
4
+ * element, equivalent to `Array.prototype.map`. Use it with {@link pipe}.
5
+ *
6
+ * The returned function is **lazy-capable**: inside a {@link pipe} it is fused
7
+ * with adjacent lazy functions and runs element-by-element, so a trailing
8
+ * `take` can terminate the walk early without mapping the rest of the input.
9
+ *
10
+ * @template T - The type of elements in the input array.
11
+ * @template U - The type of elements in the output array.
12
+ * @param callback - Called with `(value, index)` for each element; its return
13
+ * value becomes the corresponding element of the output array.
14
+ * @returns A function that maps a `readonly T[]` to a new `U[]`.
15
+ *
16
+ * @example
17
+ * import { pipe, map } from 'es-toolkit/fp';
18
+ *
19
+ * pipe([1, 2, 3], map(x => x * 2)); // => [2, 4, 6]
20
+ *
21
+ * @example
22
+ * // The index is available as the second argument.
23
+ * pipe([10, 20, 30], map((value, index) => value + index)); // => [10, 21, 32]
24
+ */
25
+ declare function map<T, U>(callback: (value: T, index: number) => U): (array: readonly T[]) => U[];
26
+ //#endregion
27
+ export { map };
@@ -0,0 +1,27 @@
1
+ //#region src/fp/array/map.d.ts
2
+ /**
3
+ * Creates a function that builds a new array by calling `callback` on every
4
+ * element, equivalent to `Array.prototype.map`. Use it with {@link pipe}.
5
+ *
6
+ * The returned function is **lazy-capable**: inside a {@link pipe} it is fused
7
+ * with adjacent lazy functions and runs element-by-element, so a trailing
8
+ * `take` can terminate the walk early without mapping the rest of the input.
9
+ *
10
+ * @template T - The type of elements in the input array.
11
+ * @template U - The type of elements in the output array.
12
+ * @param callback - Called with `(value, index)` for each element; its return
13
+ * value becomes the corresponding element of the output array.
14
+ * @returns A function that maps a `readonly T[]` to a new `U[]`.
15
+ *
16
+ * @example
17
+ * import { pipe, map } from 'es-toolkit/fp';
18
+ *
19
+ * pipe([1, 2, 3], map(x => x * 2)); // => [2, 4, 6]
20
+ *
21
+ * @example
22
+ * // The index is available as the second argument.
23
+ * pipe([10, 20, 30], map((value, index) => value + index)); // => [10, 21, 32]
24
+ */
25
+ declare function map<T, U>(callback: (value: T, index: number) => U): (array: readonly T[]) => U[];
26
+ //#endregion
27
+ export { map };
@@ -0,0 +1,36 @@
1
+ const require_lazy = require("../_internal/lazy.js");
2
+ //#region src/fp/array/map.ts
3
+ /**
4
+ * Creates a function that builds a new array by calling `callback` on every
5
+ * element, equivalent to `Array.prototype.map`. Use it with {@link pipe}.
6
+ *
7
+ * The returned function is **lazy-capable**: inside a {@link pipe} it is fused
8
+ * with adjacent lazy functions and runs element-by-element, so a trailing
9
+ * `take` can terminate the walk early without mapping the rest of the input.
10
+ *
11
+ * @template T - The type of elements in the input array.
12
+ * @template U - The type of elements in the output array.
13
+ * @param callback - Called with `(value, index)` for each element; its return
14
+ * value becomes the corresponding element of the output array.
15
+ * @returns A function that maps a `readonly T[]` to a new `U[]`.
16
+ *
17
+ * @example
18
+ * import { pipe, map } from 'es-toolkit/fp';
19
+ *
20
+ * pipe([1, 2, 3], map(x => x * 2)); // => [2, 4, 6]
21
+ *
22
+ * @example
23
+ * // The index is available as the second argument.
24
+ * pipe([10, 20, 30], map((value, index) => value + index)); // => [10, 21, 32]
25
+ */
26
+ function map(callback) {
27
+ function mapEager(array) {
28
+ return array.map(callback);
29
+ }
30
+ const mapLazy = require_lazy.createLazyFunction((value, index, emit) => {
31
+ emit(callback(value, index));
32
+ });
33
+ return require_lazy.combineEagerAndLazyFunctions(mapEager, mapLazy);
34
+ }
35
+ //#endregion
36
+ exports.map = map;
@@ -0,0 +1,35 @@
1
+ import { combineEagerAndLazyFunctions, createLazyFunction } from "../_internal/lazy.mjs";
2
+ //#region src/fp/array/map.ts
3
+ /**
4
+ * Creates a function that builds a new array by calling `callback` on every
5
+ * element, equivalent to `Array.prototype.map`. Use it with {@link pipe}.
6
+ *
7
+ * The returned function is **lazy-capable**: inside a {@link pipe} it is fused
8
+ * with adjacent lazy functions and runs element-by-element, so a trailing
9
+ * `take` can terminate the walk early without mapping the rest of the input.
10
+ *
11
+ * @template T - The type of elements in the input array.
12
+ * @template U - The type of elements in the output array.
13
+ * @param callback - Called with `(value, index)` for each element; its return
14
+ * value becomes the corresponding element of the output array.
15
+ * @returns A function that maps a `readonly T[]` to a new `U[]`.
16
+ *
17
+ * @example
18
+ * import { pipe, map } from 'es-toolkit/fp';
19
+ *
20
+ * pipe([1, 2, 3], map(x => x * 2)); // => [2, 4, 6]
21
+ *
22
+ * @example
23
+ * // The index is available as the second argument.
24
+ * pipe([10, 20, 30], map((value, index) => value + index)); // => [10, 21, 32]
25
+ */
26
+ function map(callback) {
27
+ function mapEager(array) {
28
+ return array.map(callback);
29
+ }
30
+ return combineEagerAndLazyFunctions(mapEager, createLazyFunction((value, index, emit) => {
31
+ emit(callback(value, index));
32
+ }));
33
+ }
34
+ //#endregion
35
+ export { map };
@@ -0,0 +1,37 @@
1
+ //#region src/fp/array/maxBy.d.ts
2
+ /**
3
+ * Creates a function that returns the element with the maximum selected number from a non-empty array.
4
+ *
5
+ * If the selector returns NaN, the element that produced NaN is returned, matching
6
+ * the main {@link maxBy} behavior.
7
+ *
8
+ * @template T - The type of elements in the array.
9
+ * @param getValue - Selects a numeric value from each element, index, and array.
10
+ * @returns A function that maps a non-empty readonly array to the maximum element.
11
+ *
12
+ * @example
13
+ * import { maxBy, pipe } from 'es-toolkit/fp';
14
+ *
15
+ * pipe([{ score: 10 }, { score: 20 }] as const, maxBy(item => item.score));
16
+ * // => { score: 20 }
17
+ */
18
+ declare function maxBy<T>(getValue: (element: T, index: number, array: readonly T[]) => number): (array: readonly [T, ...T[]]) => T;
19
+ /**
20
+ * Creates a function that returns the element with the maximum selected number.
21
+ *
22
+ * Empty arrays return undefined. If the selector returns NaN, the element that
23
+ * produced NaN is returned, matching the main {@link maxBy} behavior.
24
+ *
25
+ * @template T - The type of elements in the array.
26
+ * @param getValue - Selects a numeric value from each element, index, and array.
27
+ * @returns A function that maps a readonly array to the maximum element, or undefined.
28
+ *
29
+ * @example
30
+ * import { maxBy, pipe } from 'es-toolkit/fp';
31
+ *
32
+ * pipe([] as Array<{ score: number }>, maxBy(item => item.score));
33
+ * // => undefined
34
+ */
35
+ declare function maxBy<T>(getValue: (element: T, index: number, array: readonly T[]) => number): (array: readonly T[]) => T | undefined;
36
+ //#endregion
37
+ export { maxBy };