es-toolkit 1.48.1 → 1.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/array/chunkBy.d.mts +32 -0
  3. package/dist/array/chunkBy.d.ts +32 -0
  4. package/dist/array/chunkBy.js +42 -0
  5. package/dist/array/chunkBy.mjs +42 -0
  6. package/dist/array/index.d.mts +2 -1
  7. package/dist/array/index.d.ts +2 -1
  8. package/dist/array/index.js +2 -0
  9. package/dist/array/index.mjs +2 -1
  10. package/dist/array/take.d.mts +1 -7
  11. package/dist/array/take.d.ts +1 -7
  12. package/dist/array/take.js +1 -9
  13. package/dist/array/take.mjs +1 -9
  14. package/dist/array/takeRight.d.mts +2 -2
  15. package/dist/array/takeRight.d.ts +2 -2
  16. package/dist/array/takeRight.js +2 -4
  17. package/dist/array/takeRight.mjs +2 -4
  18. package/dist/array/windowed.d.mts +1 -1
  19. package/dist/array/windowed.d.ts +1 -1
  20. package/dist/browser.global.js +3 -3
  21. package/dist/compat/array/chunk.js +4 -2
  22. package/dist/compat/array/chunk.mjs +4 -2
  23. package/dist/compat/array/differenceBy.js +5 -5
  24. package/dist/compat/array/differenceBy.mjs +5 -5
  25. package/dist/compat/array/drop.d.mts +2 -3
  26. package/dist/compat/array/drop.d.ts +2 -3
  27. package/dist/compat/array/drop.js +4 -4
  28. package/dist/compat/array/drop.mjs +4 -4
  29. package/dist/compat/array/dropRight.js +1 -1
  30. package/dist/compat/array/dropRight.mjs +1 -1
  31. package/dist/compat/array/dropRightWhile.d.mts +1 -1
  32. package/dist/compat/array/dropRightWhile.d.ts +1 -1
  33. package/dist/compat/array/dropRightWhile.js +5 -4
  34. package/dist/compat/array/dropRightWhile.mjs +5 -4
  35. package/dist/compat/array/dropWhile.d.mts +2 -2
  36. package/dist/compat/array/dropWhile.d.ts +2 -2
  37. package/dist/compat/array/dropWhile.js +4 -4
  38. package/dist/compat/array/dropWhile.mjs +4 -4
  39. package/dist/compat/array/findLast.js +1 -1
  40. package/dist/compat/array/findLast.mjs +1 -1
  41. package/dist/compat/array/includes.js +1 -1
  42. package/dist/compat/array/includes.mjs +1 -1
  43. package/dist/compat/array/nth.js +1 -1
  44. package/dist/compat/array/nth.mjs +1 -1
  45. package/dist/compat/array/slice.js +1 -1
  46. package/dist/compat/array/slice.mjs +1 -1
  47. package/dist/compat/array/sortedIndexBy.js +1 -1
  48. package/dist/compat/array/sortedIndexBy.mjs +1 -1
  49. package/dist/compat/array/take.js +2 -2
  50. package/dist/compat/array/take.mjs +2 -2
  51. package/dist/compat/array/takeRight.js +1 -1
  52. package/dist/compat/array/takeRight.mjs +1 -1
  53. package/dist/compat/compat.js +4 -4
  54. package/dist/compat/compat.mjs +4 -4
  55. package/dist/compat/index.js +4 -4
  56. package/dist/compat/index.mjs +4 -4
  57. package/dist/compat/math/add.js +1 -1
  58. package/dist/compat/math/add.mjs +1 -1
  59. package/dist/compat/math/divide.js +1 -1
  60. package/dist/compat/math/divide.mjs +1 -1
  61. package/dist/compat/math/multiply.js +1 -1
  62. package/dist/compat/math/multiply.mjs +1 -1
  63. package/dist/compat/math/random.js +3 -1
  64. package/dist/compat/math/random.mjs +3 -1
  65. package/dist/compat/math/subtract.js +1 -1
  66. package/dist/compat/math/subtract.mjs +1 -1
  67. package/dist/compat/object/get.js +1 -1
  68. package/dist/compat/object/get.mjs +1 -1
  69. package/dist/compat/object/omitBy.js +1 -1
  70. package/dist/compat/object/omitBy.mjs +1 -1
  71. package/dist/compat/object/pick.js +1 -1
  72. package/dist/compat/object/pick.mjs +1 -1
  73. package/dist/compat/object/pickBy.js +1 -1
  74. package/dist/compat/object/pickBy.mjs +1 -1
  75. package/dist/compat/string/repeat.js +1 -1
  76. package/dist/compat/string/repeat.mjs +1 -1
  77. package/dist/fp/_internal/lazy.js +58 -0
  78. package/dist/fp/_internal/lazy.mjs +57 -0
  79. package/dist/fp/array/at.d.mts +20 -0
  80. package/dist/fp/array/at.d.ts +20 -0
  81. package/dist/fp/array/at.js +25 -0
  82. package/dist/fp/array/at.mjs +25 -0
  83. package/dist/fp/array/cartesianProduct.d.mts +61 -0
  84. package/dist/fp/array/cartesianProduct.d.ts +61 -0
  85. package/dist/fp/array/cartesianProduct.js +9 -0
  86. package/dist/fp/array/cartesianProduct.mjs +9 -0
  87. package/dist/fp/array/chunk.d.mts +19 -0
  88. package/dist/fp/array/chunk.d.ts +19 -0
  89. package/dist/fp/array/chunk.js +24 -0
  90. package/dist/fp/array/chunk.mjs +24 -0
  91. package/dist/fp/array/chunkBy.d.mts +20 -0
  92. package/dist/fp/array/chunkBy.d.ts +20 -0
  93. package/dist/fp/array/chunkBy.js +25 -0
  94. package/dist/fp/array/chunkBy.mjs +25 -0
  95. package/dist/fp/array/combinations.d.mts +21 -0
  96. package/dist/fp/array/combinations.d.ts +21 -0
  97. package/dist/fp/array/combinations.js +26 -0
  98. package/dist/fp/array/combinations.mjs +26 -0
  99. package/dist/fp/array/compact.d.mts +22 -0
  100. package/dist/fp/array/compact.d.ts +22 -0
  101. package/dist/fp/array/compact.js +31 -0
  102. package/dist/fp/array/compact.mjs +30 -0
  103. package/dist/fp/array/countBy.d.mts +21 -0
  104. package/dist/fp/array/countBy.d.ts +21 -0
  105. package/dist/fp/array/countBy.js +26 -0
  106. package/dist/fp/array/countBy.mjs +26 -0
  107. package/dist/fp/array/difference.d.mts +21 -0
  108. package/dist/fp/array/difference.d.ts +21 -0
  109. package/dist/fp/array/difference.js +32 -0
  110. package/dist/fp/array/difference.mjs +31 -0
  111. package/dist/fp/array/differenceBy.d.mts +22 -0
  112. package/dist/fp/array/differenceBy.d.ts +22 -0
  113. package/dist/fp/array/differenceBy.js +33 -0
  114. package/dist/fp/array/differenceBy.mjs +32 -0
  115. package/dist/fp/array/differenceWith.d.mts +22 -0
  116. package/dist/fp/array/differenceWith.d.ts +22 -0
  117. package/dist/fp/array/differenceWith.js +32 -0
  118. package/dist/fp/array/differenceWith.mjs +31 -0
  119. package/dist/fp/array/drop.d.mts +20 -0
  120. package/dist/fp/array/drop.d.ts +20 -0
  121. package/dist/fp/array/drop.js +31 -0
  122. package/dist/fp/array/drop.mjs +30 -0
  123. package/dist/fp/array/dropRight.d.mts +20 -0
  124. package/dist/fp/array/dropRight.d.ts +20 -0
  125. package/dist/fp/array/dropRight.js +25 -0
  126. package/dist/fp/array/dropRight.mjs +25 -0
  127. package/dist/fp/array/dropRightWhile.d.mts +20 -0
  128. package/dist/fp/array/dropRightWhile.d.ts +20 -0
  129. package/dist/fp/array/dropRightWhile.js +25 -0
  130. package/dist/fp/array/dropRightWhile.mjs +25 -0
  131. package/dist/fp/array/dropWhile.d.mts +20 -0
  132. package/dist/fp/array/dropWhile.d.ts +20 -0
  133. package/dist/fp/array/dropWhile.js +36 -0
  134. package/dist/fp/array/dropWhile.mjs +36 -0
  135. package/dist/fp/array/filter.d.mts +45 -0
  136. package/dist/fp/array/filter.d.ts +45 -0
  137. package/dist/fp/array/filter.js +13 -0
  138. package/dist/fp/array/filter.mjs +12 -0
  139. package/dist/fp/array/find.d.mts +39 -0
  140. package/dist/fp/array/find.d.ts +39 -0
  141. package/dist/fp/array/find.js +8 -0
  142. package/dist/fp/array/find.mjs +8 -0
  143. package/dist/fp/array/findIndex.d.mts +20 -0
  144. package/dist/fp/array/findIndex.d.ts +20 -0
  145. package/dist/fp/array/findIndex.js +24 -0
  146. package/dist/fp/array/findIndex.mjs +24 -0
  147. package/dist/fp/array/findLast.d.mts +39 -0
  148. package/dist/fp/array/findLast.d.ts +39 -0
  149. package/dist/fp/array/findLast.js +11 -0
  150. package/dist/fp/array/findLast.mjs +11 -0
  151. package/dist/fp/array/findLastIndex.d.mts +20 -0
  152. package/dist/fp/array/findLastIndex.d.ts +20 -0
  153. package/dist/fp/array/findLastIndex.js +25 -0
  154. package/dist/fp/array/findLastIndex.mjs +25 -0
  155. package/dist/fp/array/flatMap.d.mts +28 -0
  156. package/dist/fp/array/flatMap.d.ts +28 -0
  157. package/dist/fp/array/flatMap.js +39 -0
  158. package/dist/fp/array/flatMap.mjs +38 -0
  159. package/dist/fp/array/flatMapDeep.d.mts +23 -0
  160. package/dist/fp/array/flatMapDeep.d.ts +23 -0
  161. package/dist/fp/array/flatMapDeep.js +38 -0
  162. package/dist/fp/array/flatMapDeep.mjs +37 -0
  163. package/dist/fp/array/flatten.d.mts +21 -0
  164. package/dist/fp/array/flatten.d.ts +21 -0
  165. package/dist/fp/array/flatten.js +39 -0
  166. package/dist/fp/array/flatten.mjs +38 -0
  167. package/dist/fp/array/flattenDeep.d.mts +21 -0
  168. package/dist/fp/array/flattenDeep.d.ts +21 -0
  169. package/dist/fp/array/flattenDeep.js +36 -0
  170. package/dist/fp/array/flattenDeep.mjs +35 -0
  171. package/dist/fp/array/forEach.d.mts +22 -0
  172. package/dist/fp/array/forEach.d.ts +22 -0
  173. package/dist/fp/array/forEach.js +33 -0
  174. package/dist/fp/array/forEach.mjs +32 -0
  175. package/dist/fp/array/groupBy.d.mts +21 -0
  176. package/dist/fp/array/groupBy.d.ts +21 -0
  177. package/dist/fp/array/groupBy.js +26 -0
  178. package/dist/fp/array/groupBy.mjs +26 -0
  179. package/dist/fp/array/head.d.mts +35 -0
  180. package/dist/fp/array/head.d.ts +35 -0
  181. package/dist/fp/array/head.js +9 -0
  182. package/dist/fp/array/head.mjs +9 -0
  183. package/dist/fp/array/index.d.mts +69 -0
  184. package/dist/fp/array/index.d.ts +69 -0
  185. package/dist/fp/array/index.js +68 -0
  186. package/dist/fp/array/index.mjs +68 -0
  187. package/dist/fp/array/initial.d.mts +19 -0
  188. package/dist/fp/array/initial.d.ts +19 -0
  189. package/dist/fp/array/initial.js +24 -0
  190. package/dist/fp/array/initial.mjs +24 -0
  191. package/dist/fp/array/intersection.d.mts +21 -0
  192. package/dist/fp/array/intersection.d.ts +21 -0
  193. package/dist/fp/array/intersection.js +32 -0
  194. package/dist/fp/array/intersection.mjs +31 -0
  195. package/dist/fp/array/intersectionBy.d.mts +22 -0
  196. package/dist/fp/array/intersectionBy.d.ts +22 -0
  197. package/dist/fp/array/intersectionBy.js +33 -0
  198. package/dist/fp/array/intersectionBy.mjs +32 -0
  199. package/dist/fp/array/intersectionWith.d.mts +22 -0
  200. package/dist/fp/array/intersectionWith.d.ts +22 -0
  201. package/dist/fp/array/intersectionWith.js +32 -0
  202. package/dist/fp/array/intersectionWith.mjs +31 -0
  203. package/dist/fp/array/isSubset.d.mts +20 -0
  204. package/dist/fp/array/isSubset.d.ts +20 -0
  205. package/dist/fp/array/isSubset.js +25 -0
  206. package/dist/fp/array/isSubset.mjs +25 -0
  207. package/dist/fp/array/isSubsetWith.d.mts +21 -0
  208. package/dist/fp/array/isSubsetWith.d.ts +21 -0
  209. package/dist/fp/array/isSubsetWith.js +26 -0
  210. package/dist/fp/array/isSubsetWith.mjs +26 -0
  211. package/dist/fp/array/join.d.mts +20 -0
  212. package/dist/fp/array/join.d.ts +20 -0
  213. package/dist/fp/array/join.js +24 -0
  214. package/dist/fp/array/join.mjs +24 -0
  215. package/dist/fp/array/keyBy.d.mts +21 -0
  216. package/dist/fp/array/keyBy.d.ts +21 -0
  217. package/dist/fp/array/keyBy.js +26 -0
  218. package/dist/fp/array/keyBy.mjs +26 -0
  219. package/dist/fp/array/last.d.mts +35 -0
  220. package/dist/fp/array/last.d.ts +35 -0
  221. package/dist/fp/array/last.js +9 -0
  222. package/dist/fp/array/last.mjs +9 -0
  223. package/dist/fp/array/length.d.mts +18 -0
  224. package/dist/fp/array/length.d.ts +18 -0
  225. package/dist/fp/array/length.js +22 -0
  226. package/dist/fp/array/length.mjs +22 -0
  227. package/dist/fp/array/map.d.mts +27 -0
  228. package/dist/fp/array/map.d.ts +27 -0
  229. package/dist/fp/array/map.js +36 -0
  230. package/dist/fp/array/map.mjs +35 -0
  231. package/dist/fp/array/maxBy.d.mts +37 -0
  232. package/dist/fp/array/maxBy.d.ts +37 -0
  233. package/dist/fp/array/maxBy.js +9 -0
  234. package/dist/fp/array/maxBy.mjs +9 -0
  235. package/dist/fp/array/minBy.d.mts +37 -0
  236. package/dist/fp/array/minBy.d.ts +37 -0
  237. package/dist/fp/array/minBy.js +9 -0
  238. package/dist/fp/array/minBy.mjs +9 -0
  239. package/dist/fp/array/orderBy.d.mts +21 -0
  240. package/dist/fp/array/orderBy.d.ts +21 -0
  241. package/dist/fp/array/orderBy.js +26 -0
  242. package/dist/fp/array/orderBy.mjs +26 -0
  243. package/dist/fp/array/partition.d.mts +39 -0
  244. package/dist/fp/array/partition.d.ts +39 -0
  245. package/dist/fp/array/partition.js +9 -0
  246. package/dist/fp/array/partition.mjs +9 -0
  247. package/dist/fp/array/reverse.d.mts +19 -0
  248. package/dist/fp/array/reverse.d.ts +19 -0
  249. package/dist/fp/array/reverse.js +23 -0
  250. package/dist/fp/array/reverse.mjs +23 -0
  251. package/dist/fp/array/sample.d.mts +18 -0
  252. package/dist/fp/array/sample.d.ts +18 -0
  253. package/dist/fp/array/sample.js +23 -0
  254. package/dist/fp/array/sample.mjs +23 -0
  255. package/dist/fp/array/sampleSize.d.mts +20 -0
  256. package/dist/fp/array/sampleSize.d.ts +20 -0
  257. package/dist/fp/array/sampleSize.js +25 -0
  258. package/dist/fp/array/sampleSize.mjs +25 -0
  259. package/dist/fp/array/shuffle.d.mts +19 -0
  260. package/dist/fp/array/shuffle.d.ts +19 -0
  261. package/dist/fp/array/shuffle.js +24 -0
  262. package/dist/fp/array/shuffle.mjs +24 -0
  263. package/dist/fp/array/sortBy.d.mts +26 -0
  264. package/dist/fp/array/sortBy.d.ts +26 -0
  265. package/dist/fp/array/sortBy.js +31 -0
  266. package/dist/fp/array/sortBy.mjs +31 -0
  267. package/dist/fp/array/tail.d.mts +19 -0
  268. package/dist/fp/array/tail.d.ts +19 -0
  269. package/dist/fp/array/tail.js +24 -0
  270. package/dist/fp/array/tail.mjs +24 -0
  271. package/dist/fp/array/take.d.mts +26 -0
  272. package/dist/fp/array/take.d.ts +26 -0
  273. package/dist/fp/array/take.js +39 -0
  274. package/dist/fp/array/take.mjs +38 -0
  275. package/dist/fp/array/takeRight.d.mts +20 -0
  276. package/dist/fp/array/takeRight.d.ts +20 -0
  277. package/dist/fp/array/takeRight.js +25 -0
  278. package/dist/fp/array/takeRight.mjs +25 -0
  279. package/dist/fp/array/takeRightWhile.d.mts +20 -0
  280. package/dist/fp/array/takeRightWhile.d.ts +20 -0
  281. package/dist/fp/array/takeRightWhile.js +25 -0
  282. package/dist/fp/array/takeRightWhile.mjs +25 -0
  283. package/dist/fp/array/takeWhile.d.mts +21 -0
  284. package/dist/fp/array/takeWhile.d.ts +21 -0
  285. package/dist/fp/array/takeWhile.js +32 -0
  286. package/dist/fp/array/takeWhile.mjs +31 -0
  287. package/dist/fp/array/toFilled.d.mts +23 -0
  288. package/dist/fp/array/toFilled.d.ts +23 -0
  289. package/dist/fp/array/toFilled.js +30 -0
  290. package/dist/fp/array/toFilled.mjs +30 -0
  291. package/dist/fp/array/union.d.mts +20 -0
  292. package/dist/fp/array/union.d.ts +20 -0
  293. package/dist/fp/array/union.js +25 -0
  294. package/dist/fp/array/union.mjs +25 -0
  295. package/dist/fp/array/unionBy.d.mts +22 -0
  296. package/dist/fp/array/unionBy.d.ts +22 -0
  297. package/dist/fp/array/unionBy.js +27 -0
  298. package/dist/fp/array/unionBy.mjs +27 -0
  299. package/dist/fp/array/unionWith.d.mts +21 -0
  300. package/dist/fp/array/unionWith.d.ts +21 -0
  301. package/dist/fp/array/unionWith.js +26 -0
  302. package/dist/fp/array/unionWith.mjs +26 -0
  303. package/dist/fp/array/uniq.d.mts +21 -0
  304. package/dist/fp/array/uniq.d.ts +21 -0
  305. package/dist/fp/array/uniq.js +36 -0
  306. package/dist/fp/array/uniq.mjs +36 -0
  307. package/dist/fp/array/uniqBy.d.mts +21 -0
  308. package/dist/fp/array/uniqBy.d.ts +21 -0
  309. package/dist/fp/array/uniqBy.js +38 -0
  310. package/dist/fp/array/uniqBy.mjs +38 -0
  311. package/dist/fp/array/uniqWith.d.mts +20 -0
  312. package/dist/fp/array/uniqWith.d.ts +20 -0
  313. package/dist/fp/array/uniqWith.js +35 -0
  314. package/dist/fp/array/uniqWith.mjs +35 -0
  315. package/dist/fp/array/unzip.d.mts +20 -0
  316. package/dist/fp/array/unzip.d.ts +20 -0
  317. package/dist/fp/array/unzip.js +24 -0
  318. package/dist/fp/array/unzip.mjs +24 -0
  319. package/dist/fp/array/unzipWith.d.mts +21 -0
  320. package/dist/fp/array/unzipWith.d.ts +21 -0
  321. package/dist/fp/array/unzipWith.js +26 -0
  322. package/dist/fp/array/unzipWith.mjs +26 -0
  323. package/dist/fp/array/windowed.d.mts +25 -0
  324. package/dist/fp/array/windowed.d.ts +25 -0
  325. package/dist/fp/array/windowed.js +50 -0
  326. package/dist/fp/array/windowed.mjs +50 -0
  327. package/dist/fp/array/without.d.mts +19 -0
  328. package/dist/fp/array/without.d.ts +19 -0
  329. package/dist/fp/array/without.js +30 -0
  330. package/dist/fp/array/without.mjs +29 -0
  331. package/dist/fp/array/xor.d.mts +20 -0
  332. package/dist/fp/array/xor.d.ts +20 -0
  333. package/dist/fp/array/xor.js +25 -0
  334. package/dist/fp/array/xor.mjs +25 -0
  335. package/dist/fp/array/xorBy.d.mts +22 -0
  336. package/dist/fp/array/xorBy.d.ts +22 -0
  337. package/dist/fp/array/xorBy.js +27 -0
  338. package/dist/fp/array/xorBy.mjs +27 -0
  339. package/dist/fp/array/xorWith.d.mts +21 -0
  340. package/dist/fp/array/xorWith.d.ts +21 -0
  341. package/dist/fp/array/xorWith.js +26 -0
  342. package/dist/fp/array/xorWith.mjs +26 -0
  343. package/dist/fp/array/zip.d.mts +61 -0
  344. package/dist/fp/array/zip.d.ts +61 -0
  345. package/dist/fp/array/zip.js +9 -0
  346. package/dist/fp/array/zip.mjs +9 -0
  347. package/dist/fp/array/zipObject.d.mts +21 -0
  348. package/dist/fp/array/zipObject.d.ts +21 -0
  349. package/dist/fp/array/zipObject.js +26 -0
  350. package/dist/fp/array/zipObject.mjs +26 -0
  351. package/dist/fp/array/zipWith.d.mts +57 -0
  352. package/dist/fp/array/zipWith.d.ts +57 -0
  353. package/dist/fp/array/zipWith.js +9 -0
  354. package/dist/fp/array/zipWith.mjs +9 -0
  355. package/dist/fp/index.d.mts +75 -0
  356. package/dist/fp/index.d.ts +75 -0
  357. package/dist/fp/index.js +150 -0
  358. package/dist/fp/index.mjs +77 -0
  359. package/dist/fp/math/add.d.mts +17 -0
  360. package/dist/fp/math/add.d.ts +17 -0
  361. package/dist/fp/math/add.js +21 -0
  362. package/dist/fp/math/add.mjs +21 -0
  363. package/dist/fp/math/index.d.mts +2 -0
  364. package/dist/fp/math/index.d.ts +2 -0
  365. package/dist/fp/math/index.js +2 -0
  366. package/dist/fp/math/index.mjs +2 -0
  367. package/dist/fp/math/multiply.d.mts +17 -0
  368. package/dist/fp/math/multiply.d.ts +17 -0
  369. package/dist/fp/math/multiply.js +21 -0
  370. package/dist/fp/math/multiply.mjs +21 -0
  371. package/dist/fp/object/index.d.mts +2 -0
  372. package/dist/fp/object/index.d.ts +2 -0
  373. package/dist/fp/object/index.js +2 -0
  374. package/dist/fp/object/index.mjs +2 -0
  375. package/dist/fp/object/omit.d.mts +18 -0
  376. package/dist/fp/object/omit.d.ts +18 -0
  377. package/dist/fp/object/omit.js +23 -0
  378. package/dist/fp/object/omit.mjs +23 -0
  379. package/dist/fp/object/pick.d.mts +19 -0
  380. package/dist/fp/object/pick.d.ts +19 -0
  381. package/dist/fp/object/pick.js +24 -0
  382. package/dist/fp/object/pick.mjs +24 -0
  383. package/dist/fp/pipe.d.mts +235 -0
  384. package/dist/fp/pipe.d.ts +235 -0
  385. package/dist/fp/pipe.js +116 -0
  386. package/dist/fp/pipe.mjs +116 -0
  387. package/dist/index.d.mts +3 -1
  388. package/dist/index.d.ts +3 -1
  389. package/dist/index.js +4 -0
  390. package/dist/index.mjs +3 -1
  391. package/dist/predicate/index.d.mts +2 -1
  392. package/dist/predicate/index.d.ts +2 -1
  393. package/dist/predicate/index.js +2 -0
  394. package/dist/predicate/index.mjs +2 -1
  395. package/dist/predicate/isIterable.d.mts +26 -0
  396. package/dist/predicate/isIterable.d.ts +26 -0
  397. package/dist/predicate/isIterable.js +28 -0
  398. package/dist/predicate/isIterable.mjs +28 -0
  399. package/dist/string/trimStart.js +1 -0
  400. package/dist/string/trimStart.mjs +1 -0
  401. package/fp.d.ts +1 -0
  402. package/fp.js +1 -0
  403. package/package.json +22 -1
@@ -0,0 +1,24 @@
1
+ import { initial as initial$1 } from "../../array/initial.mjs";
2
+ //#region src/fp/array/initial.ts
3
+ /**
4
+ * Creates a function that returns every element except the last one.
5
+ *
6
+ * The returned function follows the main {@link initial} behavior and always returns a new array.
7
+ * 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 its initial elements.
11
+ *
12
+ * @example
13
+ * import { initial, pipe } from 'es-toolkit/fp';
14
+ *
15
+ * pipe([1, 2, 3], initial());
16
+ * // => [1, 2]
17
+ */
18
+ function initial() {
19
+ return function(array) {
20
+ return initial$1(array);
21
+ };
22
+ }
23
+ //#endregion
24
+ export { initial };
@@ -0,0 +1,21 @@
1
+ //#region src/fp/array/intersection.d.ts
2
+ /**
3
+ * Creates a function that keeps values from the piped array that are also present in another array.
4
+ *
5
+ * Equality follows SameValueZero through Set membership, matching the main
6
+ * {@link intersection} implementation. The returned function is lazy-capable
7
+ * inside {@link pipe}.
8
+ *
9
+ * @template T - The type of elements in the arrays.
10
+ * @param secondArray - Values to intersect with the piped array.
11
+ * @returns A function that maps the piped array to its intersection.
12
+ *
13
+ * @example
14
+ * import { intersection, pipe } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([1, 2, 3], intersection([2, 4]));
17
+ * // => [2]
18
+ */
19
+ declare function intersection<T>(secondArray: readonly T[]): (array: readonly T[]) => T[];
20
+ //#endregion
21
+ export { intersection };
@@ -0,0 +1,21 @@
1
+ //#region src/fp/array/intersection.d.ts
2
+ /**
3
+ * Creates a function that keeps values from the piped array that are also present in another array.
4
+ *
5
+ * Equality follows SameValueZero through Set membership, matching the main
6
+ * {@link intersection} implementation. The returned function is lazy-capable
7
+ * inside {@link pipe}.
8
+ *
9
+ * @template T - The type of elements in the arrays.
10
+ * @param secondArray - Values to intersect with the piped array.
11
+ * @returns A function that maps the piped array to its intersection.
12
+ *
13
+ * @example
14
+ * import { intersection, pipe } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([1, 2, 3], intersection([2, 4]));
17
+ * // => [2]
18
+ */
19
+ declare function intersection<T>(secondArray: readonly T[]): (array: readonly T[]) => T[];
20
+ //#endregion
21
+ export { intersection };
@@ -0,0 +1,32 @@
1
+ const require_intersection = require("../../array/intersection.js");
2
+ const require_lazy = require("../_internal/lazy.js");
3
+ //#region src/fp/array/intersection.ts
4
+ /**
5
+ * Creates a function that keeps values from the piped array that are also present in another array.
6
+ *
7
+ * Equality follows SameValueZero through Set membership, matching the main
8
+ * {@link intersection} implementation. The returned function is lazy-capable
9
+ * inside {@link pipe}.
10
+ *
11
+ * @template T - The type of elements in the arrays.
12
+ * @param secondArray - Values to intersect with the piped array.
13
+ * @returns A function that maps the piped array to its intersection.
14
+ *
15
+ * @example
16
+ * import { intersection, pipe } from 'es-toolkit/fp';
17
+ *
18
+ * pipe([1, 2, 3], intersection([2, 4]));
19
+ * // => [2]
20
+ */
21
+ function intersection(secondArray) {
22
+ const secondSet = new Set(secondArray);
23
+ function intersectionEager(array) {
24
+ return require_intersection.intersection(array, secondArray);
25
+ }
26
+ const intersectionLazy = require_lazy.createLazyFunction((value, _index, emit) => {
27
+ if (secondSet.has(value)) emit(value);
28
+ });
29
+ return require_lazy.combineEagerAndLazyFunctions(intersectionEager, intersectionLazy);
30
+ }
31
+ //#endregion
32
+ exports.intersection = intersection;
@@ -0,0 +1,31 @@
1
+ import { intersection as intersection$1 } from "../../array/intersection.mjs";
2
+ import { combineEagerAndLazyFunctions, createLazyFunction } from "../_internal/lazy.mjs";
3
+ //#region src/fp/array/intersection.ts
4
+ /**
5
+ * Creates a function that keeps values from the piped array that are also present in another array.
6
+ *
7
+ * Equality follows SameValueZero through Set membership, matching the main
8
+ * {@link intersection} implementation. The returned function is lazy-capable
9
+ * inside {@link pipe}.
10
+ *
11
+ * @template T - The type of elements in the arrays.
12
+ * @param secondArray - Values to intersect with the piped array.
13
+ * @returns A function that maps the piped array to its intersection.
14
+ *
15
+ * @example
16
+ * import { intersection, pipe } from 'es-toolkit/fp';
17
+ *
18
+ * pipe([1, 2, 3], intersection([2, 4]));
19
+ * // => [2]
20
+ */
21
+ function intersection(secondArray) {
22
+ const secondSet = new Set(secondArray);
23
+ function intersectionEager(array) {
24
+ return intersection$1(array, secondArray);
25
+ }
26
+ return combineEagerAndLazyFunctions(intersectionEager, createLazyFunction((value, _index, emit) => {
27
+ if (secondSet.has(value)) emit(value);
28
+ }));
29
+ }
30
+ //#endregion
31
+ export { intersection };
@@ -0,0 +1,22 @@
1
+ //#region src/fp/array/intersectionBy.d.ts
2
+ /**
3
+ * Creates a function that keeps values whose mapped identity appears in another array.
4
+ *
5
+ * The mapper is applied to values from both arrays. The returned function is
6
+ * lazy-capable inside {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the piped array.
9
+ * @template U - The type of elements in the configured array.
10
+ * @param secondArray - Values to intersect with the piped array after mapping.
11
+ * @param mapper - Maps values from both arrays to comparison keys.
12
+ * @returns A function that maps the piped array to its mapped intersection.
13
+ *
14
+ * @example
15
+ * import { intersectionBy, pipe } from 'es-toolkit/fp';
16
+ *
17
+ * pipe([{ id: 1 }, { id: 2 }], intersectionBy([2], value => typeof value === 'number' ? value : value.id));
18
+ * // => [{ id: 2 }]
19
+ */
20
+ declare function intersectionBy<T, U>(secondArray: readonly U[], mapper: (value: T | U) => unknown): (array: readonly T[]) => T[];
21
+ //#endregion
22
+ export { intersectionBy };
@@ -0,0 +1,22 @@
1
+ //#region src/fp/array/intersectionBy.d.ts
2
+ /**
3
+ * Creates a function that keeps values whose mapped identity appears in another array.
4
+ *
5
+ * The mapper is applied to values from both arrays. The returned function is
6
+ * lazy-capable inside {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the piped array.
9
+ * @template U - The type of elements in the configured array.
10
+ * @param secondArray - Values to intersect with the piped array after mapping.
11
+ * @param mapper - Maps values from both arrays to comparison keys.
12
+ * @returns A function that maps the piped array to its mapped intersection.
13
+ *
14
+ * @example
15
+ * import { intersectionBy, pipe } from 'es-toolkit/fp';
16
+ *
17
+ * pipe([{ id: 1 }, { id: 2 }], intersectionBy([2], value => typeof value === 'number' ? value : value.id));
18
+ * // => [{ id: 2 }]
19
+ */
20
+ declare function intersectionBy<T, U>(secondArray: readonly U[], mapper: (value: T | U) => unknown): (array: readonly T[]) => T[];
21
+ //#endregion
22
+ export { intersectionBy };
@@ -0,0 +1,33 @@
1
+ const require_intersectionBy = require("../../array/intersectionBy.js");
2
+ const require_lazy = require("../_internal/lazy.js");
3
+ //#region src/fp/array/intersectionBy.ts
4
+ /**
5
+ * Creates a function that keeps values whose mapped identity appears in another array.
6
+ *
7
+ * The mapper is applied to values from both arrays. The returned function is
8
+ * lazy-capable inside {@link pipe}.
9
+ *
10
+ * @template T - The type of elements in the piped array.
11
+ * @template U - The type of elements in the configured array.
12
+ * @param secondArray - Values to intersect with the piped array after mapping.
13
+ * @param mapper - Maps values from both arrays to comparison keys.
14
+ * @returns A function that maps the piped array to its mapped intersection.
15
+ *
16
+ * @example
17
+ * import { intersectionBy, pipe } from 'es-toolkit/fp';
18
+ *
19
+ * pipe([{ id: 1 }, { id: 2 }], intersectionBy([2], value => typeof value === 'number' ? value : value.id));
20
+ * // => [{ id: 2 }]
21
+ */
22
+ function intersectionBy(secondArray, mapper) {
23
+ const mappedSecondSet = new Set(secondArray.map((item) => mapper(item)));
24
+ function intersectionByEager(array) {
25
+ return require_intersectionBy.intersectionBy(array, secondArray, mapper);
26
+ }
27
+ const intersectionByLazy = require_lazy.createLazyFunction((value, _index, emit) => {
28
+ if (mappedSecondSet.has(mapper(value))) emit(value);
29
+ });
30
+ return require_lazy.combineEagerAndLazyFunctions(intersectionByEager, intersectionByLazy);
31
+ }
32
+ //#endregion
33
+ exports.intersectionBy = intersectionBy;
@@ -0,0 +1,32 @@
1
+ import { intersectionBy as intersectionBy$1 } from "../../array/intersectionBy.mjs";
2
+ import { combineEagerAndLazyFunctions, createLazyFunction } from "../_internal/lazy.mjs";
3
+ //#region src/fp/array/intersectionBy.ts
4
+ /**
5
+ * Creates a function that keeps values whose mapped identity appears in another array.
6
+ *
7
+ * The mapper is applied to values from both arrays. The returned function is
8
+ * lazy-capable inside {@link pipe}.
9
+ *
10
+ * @template T - The type of elements in the piped array.
11
+ * @template U - The type of elements in the configured array.
12
+ * @param secondArray - Values to intersect with the piped array after mapping.
13
+ * @param mapper - Maps values from both arrays to comparison keys.
14
+ * @returns A function that maps the piped array to its mapped intersection.
15
+ *
16
+ * @example
17
+ * import { intersectionBy, pipe } from 'es-toolkit/fp';
18
+ *
19
+ * pipe([{ id: 1 }, { id: 2 }], intersectionBy([2], value => typeof value === 'number' ? value : value.id));
20
+ * // => [{ id: 2 }]
21
+ */
22
+ function intersectionBy(secondArray, mapper) {
23
+ const mappedSecondSet = new Set(secondArray.map((item) => mapper(item)));
24
+ function intersectionByEager(array) {
25
+ return intersectionBy$1(array, secondArray, mapper);
26
+ }
27
+ return combineEagerAndLazyFunctions(intersectionByEager, createLazyFunction((value, _index, emit) => {
28
+ if (mappedSecondSet.has(mapper(value))) emit(value);
29
+ }));
30
+ }
31
+ //#endregion
32
+ export { intersectionBy };
@@ -0,0 +1,22 @@
1
+ //#region src/fp/array/intersectionWith.d.ts
2
+ /**
3
+ * Creates a function that keeps values equal to at least one configured value.
4
+ *
5
+ * Equality is decided by the provided comparator. The returned function is
6
+ * lazy-capable inside {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the piped array.
9
+ * @template U - The type of elements in the configured array.
10
+ * @param secondArray - Values to compare against the piped array.
11
+ * @param areItemsEqual - Returns true when a piped value equals a configured value.
12
+ * @returns A function that maps the piped array to its custom intersection.
13
+ *
14
+ * @example
15
+ * import { intersectionWith, pipe } from 'es-toolkit/fp';
16
+ *
17
+ * pipe([{ id: 1 }, { id: 2 }], intersectionWith([2], (item, id) => item.id === id));
18
+ * // => [{ id: 2 }]
19
+ */
20
+ declare function intersectionWith<T, U>(secondArray: readonly U[], areItemsEqual: (item: T, other: U) => boolean): (array: readonly T[]) => T[];
21
+ //#endregion
22
+ export { intersectionWith };
@@ -0,0 +1,22 @@
1
+ //#region src/fp/array/intersectionWith.d.ts
2
+ /**
3
+ * Creates a function that keeps values equal to at least one configured value.
4
+ *
5
+ * Equality is decided by the provided comparator. The returned function is
6
+ * lazy-capable inside {@link pipe}.
7
+ *
8
+ * @template T - The type of elements in the piped array.
9
+ * @template U - The type of elements in the configured array.
10
+ * @param secondArray - Values to compare against the piped array.
11
+ * @param areItemsEqual - Returns true when a piped value equals a configured value.
12
+ * @returns A function that maps the piped array to its custom intersection.
13
+ *
14
+ * @example
15
+ * import { intersectionWith, pipe } from 'es-toolkit/fp';
16
+ *
17
+ * pipe([{ id: 1 }, { id: 2 }], intersectionWith([2], (item, id) => item.id === id));
18
+ * // => [{ id: 2 }]
19
+ */
20
+ declare function intersectionWith<T, U>(secondArray: readonly U[], areItemsEqual: (item: T, other: U) => boolean): (array: readonly T[]) => T[];
21
+ //#endregion
22
+ export { intersectionWith };
@@ -0,0 +1,32 @@
1
+ const require_intersectionWith = require("../../array/intersectionWith.js");
2
+ const require_lazy = require("../_internal/lazy.js");
3
+ //#region src/fp/array/intersectionWith.ts
4
+ /**
5
+ * Creates a function that keeps values equal to at least one configured value.
6
+ *
7
+ * Equality is decided by the provided comparator. The returned function is
8
+ * lazy-capable inside {@link pipe}.
9
+ *
10
+ * @template T - The type of elements in the piped array.
11
+ * @template U - The type of elements in the configured array.
12
+ * @param secondArray - Values to compare against the piped array.
13
+ * @param areItemsEqual - Returns true when a piped value equals a configured value.
14
+ * @returns A function that maps the piped array to its custom intersection.
15
+ *
16
+ * @example
17
+ * import { intersectionWith, pipe } from 'es-toolkit/fp';
18
+ *
19
+ * pipe([{ id: 1 }, { id: 2 }], intersectionWith([2], (item, id) => item.id === id));
20
+ * // => [{ id: 2 }]
21
+ */
22
+ function intersectionWith(secondArray, areItemsEqual) {
23
+ function intersectionWithEager(array) {
24
+ return require_intersectionWith.intersectionWith(array, secondArray, areItemsEqual);
25
+ }
26
+ const intersectionWithLazy = require_lazy.createLazyFunction((value, _index, emit) => {
27
+ if (secondArray.some((other) => areItemsEqual(value, other))) emit(value);
28
+ });
29
+ return require_lazy.combineEagerAndLazyFunctions(intersectionWithEager, intersectionWithLazy);
30
+ }
31
+ //#endregion
32
+ exports.intersectionWith = intersectionWith;
@@ -0,0 +1,31 @@
1
+ import { intersectionWith as intersectionWith$1 } from "../../array/intersectionWith.mjs";
2
+ import { combineEagerAndLazyFunctions, createLazyFunction } from "../_internal/lazy.mjs";
3
+ //#region src/fp/array/intersectionWith.ts
4
+ /**
5
+ * Creates a function that keeps values equal to at least one configured value.
6
+ *
7
+ * Equality is decided by the provided comparator. The returned function is
8
+ * lazy-capable inside {@link pipe}.
9
+ *
10
+ * @template T - The type of elements in the piped array.
11
+ * @template U - The type of elements in the configured array.
12
+ * @param secondArray - Values to compare against the piped array.
13
+ * @param areItemsEqual - Returns true when a piped value equals a configured value.
14
+ * @returns A function that maps the piped array to its custom intersection.
15
+ *
16
+ * @example
17
+ * import { intersectionWith, pipe } from 'es-toolkit/fp';
18
+ *
19
+ * pipe([{ id: 1 }, { id: 2 }], intersectionWith([2], (item, id) => item.id === id));
20
+ * // => [{ id: 2 }]
21
+ */
22
+ function intersectionWith(secondArray, areItemsEqual) {
23
+ function intersectionWithEager(array) {
24
+ return intersectionWith$1(array, secondArray, areItemsEqual);
25
+ }
26
+ return combineEagerAndLazyFunctions(intersectionWithEager, createLazyFunction((value, _index, emit) => {
27
+ if (secondArray.some((other) => areItemsEqual(value, other))) emit(value);
28
+ }));
29
+ }
30
+ //#endregion
31
+ export { intersectionWith };
@@ -0,0 +1,20 @@
1
+ //#region src/fp/array/isSubset.d.ts
2
+ /**
3
+ * Creates a predicate that checks whether the piped array is a subset of superset.
4
+ *
5
+ * Every value in the piped array must be present in superset, using the main
6
+ * {@link isSubset} equality behavior.
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
+ * @returns A predicate for the piped array.
11
+ *
12
+ * @example
13
+ * import { isSubset, pipe } from 'es-toolkit/fp';
14
+ *
15
+ * pipe([1, 2], isSubset([1, 2, 3]));
16
+ * // => true
17
+ */
18
+ declare function isSubset<T>(superset: readonly T[]): (array: readonly T[]) => boolean;
19
+ //#endregion
20
+ export { isSubset };
@@ -0,0 +1,20 @@
1
+ //#region src/fp/array/isSubset.d.ts
2
+ /**
3
+ * Creates a predicate that checks whether the piped array is a subset of superset.
4
+ *
5
+ * Every value in the piped array must be present in superset, using the main
6
+ * {@link isSubset} equality behavior.
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
+ * @returns A predicate for the piped array.
11
+ *
12
+ * @example
13
+ * import { isSubset, pipe } from 'es-toolkit/fp';
14
+ *
15
+ * pipe([1, 2], isSubset([1, 2, 3]));
16
+ * // => true
17
+ */
18
+ declare function isSubset<T>(superset: readonly T[]): (array: readonly T[]) => boolean;
19
+ //#endregion
20
+ export { isSubset };
@@ -0,0 +1,25 @@
1
+ const require_isSubset = require("../../array/isSubset.js");
2
+ //#region src/fp/array/isSubset.ts
3
+ /**
4
+ * Creates a predicate that checks whether the piped array is a subset of superset.
5
+ *
6
+ * Every value in the piped array must be present in superset, using the main
7
+ * {@link isSubset} equality behavior.
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
+ * @returns A predicate for the piped array.
12
+ *
13
+ * @example
14
+ * import { isSubset, pipe } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([1, 2], isSubset([1, 2, 3]));
17
+ * // => true
18
+ */
19
+ function isSubset(superset) {
20
+ return function(array) {
21
+ return require_isSubset.isSubset(superset, array);
22
+ };
23
+ }
24
+ //#endregion
25
+ exports.isSubset = isSubset;
@@ -0,0 +1,25 @@
1
+ import { isSubset as isSubset$1 } from "../../array/isSubset.mjs";
2
+ //#region src/fp/array/isSubset.ts
3
+ /**
4
+ * Creates a predicate that checks whether the piped array is a subset of superset.
5
+ *
6
+ * Every value in the piped array must be present in superset, using the main
7
+ * {@link isSubset} equality behavior.
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
+ * @returns A predicate for the piped array.
12
+ *
13
+ * @example
14
+ * import { isSubset, pipe } from 'es-toolkit/fp';
15
+ *
16
+ * pipe([1, 2], isSubset([1, 2, 3]));
17
+ * // => true
18
+ */
19
+ function isSubset(superset) {
20
+ return function(array) {
21
+ return isSubset$1(superset, array);
22
+ };
23
+ }
24
+ //#endregion
25
+ export { isSubset };
@@ -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 };