common-fp 0.1.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 (645) hide show
  1. package/dist/add.cjs +13 -0
  2. package/dist/add.d.cts +2 -0
  3. package/dist/add.d.ts +1 -0
  4. package/dist/add.mjs +13 -0
  5. package/dist/all.cjs +23 -0
  6. package/dist/all.d.cts +2 -0
  7. package/dist/all.d.ts +1 -0
  8. package/dist/all.mjs +23 -0
  9. package/dist/alter.cjs +24 -0
  10. package/dist/alter.d.cts +2 -0
  11. package/dist/alter.d.ts +1 -0
  12. package/dist/alter.mjs +24 -0
  13. package/dist/any.cjs +22 -0
  14. package/dist/any.d.cts +2 -0
  15. package/dist/any.d.ts +1 -0
  16. package/dist/any.mjs +22 -0
  17. package/dist/append-all.cjs +13 -0
  18. package/dist/append-all.d.cts +2 -0
  19. package/dist/append-all.d.ts +1 -0
  20. package/dist/append-all.mjs +13 -0
  21. package/dist/append-one.cjs +9 -0
  22. package/dist/append-one.d.cts +2 -0
  23. package/dist/append-one.d.ts +1 -0
  24. package/dist/append-one.mjs +9 -0
  25. package/dist/append.cjs +13 -0
  26. package/dist/append.d.cts +2 -0
  27. package/dist/append.d.ts +1 -0
  28. package/dist/append.mjs +13 -0
  29. package/dist/assign-defaults.cjs +43 -0
  30. package/dist/assign-defaults.d.cts +2 -0
  31. package/dist/assign-defaults.d.ts +1 -0
  32. package/dist/assign-defaults.mjs +43 -0
  33. package/dist/assign-overrides.cjs +43 -0
  34. package/dist/assign-overrides.d.cts +2 -0
  35. package/dist/assign-overrides.d.ts +1 -0
  36. package/dist/assign-overrides.mjs +43 -0
  37. package/dist/compare-by-path.cjs +24 -0
  38. package/dist/compare-by-path.d.cts +2 -0
  39. package/dist/compare-by-path.d.ts +1 -0
  40. package/dist/compare-by-path.mjs +24 -0
  41. package/dist/compare-by-prop.cjs +23 -0
  42. package/dist/compare-by-prop.d.cts +2 -0
  43. package/dist/compare-by-prop.d.ts +1 -0
  44. package/dist/compare-by-prop.mjs +23 -0
  45. package/dist/compose.cjs +15 -0
  46. package/dist/compose.d.cts +2 -0
  47. package/dist/compose.d.ts +1 -0
  48. package/dist/compose.mjs +15 -0
  49. package/dist/contained-in.cjs +26 -0
  50. package/dist/contained-in.d.cts +2 -0
  51. package/dist/contained-in.d.ts +1 -0
  52. package/dist/contained-in.mjs +26 -0
  53. package/dist/contains.cjs +28 -0
  54. package/dist/contains.d.cts +2 -0
  55. package/dist/contains.d.ts +1 -0
  56. package/dist/contains.mjs +28 -0
  57. package/dist/date-is-between.cjs +31 -0
  58. package/dist/date-is-between.d.cts +2 -0
  59. package/dist/date-is-between.d.ts +1 -0
  60. package/dist/date-is-between.mjs +31 -0
  61. package/dist/default-falsey-val-to.cjs +3 -0
  62. package/dist/default-falsey-val-to.d.cts +2 -0
  63. package/dist/default-falsey-val-to.d.ts +1 -0
  64. package/dist/default-falsey-val-to.mjs +3 -0
  65. package/dist/default-nullish-val-to.cjs +3 -0
  66. package/dist/default-nullish-val-to.d.cts +2 -0
  67. package/dist/default-nullish-val-to.d.ts +1 -0
  68. package/dist/default-nullish-val-to.mjs +3 -0
  69. package/dist/discard-first-while.cjs +18 -0
  70. package/dist/discard-first-while.d.cts +2 -0
  71. package/dist/discard-first-while.d.ts +1 -0
  72. package/dist/discard-first-while.mjs +18 -0
  73. package/dist/discard-first.cjs +16 -0
  74. package/dist/discard-first.d.cts +2 -0
  75. package/dist/discard-first.d.ts +1 -0
  76. package/dist/discard-first.mjs +16 -0
  77. package/dist/discard-last-while.cjs +17 -0
  78. package/dist/discard-last-while.d.cts +2 -0
  79. package/dist/discard-last-while.d.ts +1 -0
  80. package/dist/discard-last-while.mjs +17 -0
  81. package/dist/discard-last.cjs +16 -0
  82. package/dist/discard-last.d.cts +2 -0
  83. package/dist/discard-last.d.ts +1 -0
  84. package/dist/discard-last.mjs +16 -0
  85. package/dist/discard-range.cjs +31 -0
  86. package/dist/discard-range.d.cts +2 -0
  87. package/dist/discard-range.d.ts +1 -0
  88. package/dist/discard-range.mjs +31 -0
  89. package/dist/discard-when.cjs +55 -0
  90. package/dist/discard-when.d.cts +2 -0
  91. package/dist/discard-when.d.ts +1 -0
  92. package/dist/discard-when.mjs +55 -0
  93. package/dist/discard.cjs +57 -0
  94. package/dist/discard.d.cts +2 -0
  95. package/dist/discard.d.ts +1 -0
  96. package/dist/discard.mjs +57 -0
  97. package/dist/divide-by.cjs +13 -0
  98. package/dist/divide-by.d.cts +2 -0
  99. package/dist/divide-by.d.ts +1 -0
  100. package/dist/divide-by.mjs +13 -0
  101. package/dist/ends-with.cjs +13 -0
  102. package/dist/ends-with.d.cts +2 -0
  103. package/dist/ends-with.d.ts +1 -0
  104. package/dist/ends-with.mjs +13 -0
  105. package/dist/expand-end.cjs +16 -0
  106. package/dist/expand-end.d.cts +2 -0
  107. package/dist/expand-end.d.ts +1 -0
  108. package/dist/expand-end.mjs +16 -0
  109. package/dist/expand-start.cjs +16 -0
  110. package/dist/expand-start.d.cts +2 -0
  111. package/dist/expand-start.d.ts +1 -0
  112. package/dist/expand-start.mjs +16 -0
  113. package/dist/expand.cjs +22 -0
  114. package/dist/expand.d.cts +2 -0
  115. package/dist/expand.d.ts +1 -0
  116. package/dist/expand.mjs +22 -0
  117. package/dist/fill-range-with.cjs +18 -0
  118. package/dist/fill-range-with.d.cts +2 -0
  119. package/dist/fill-range-with.d.ts +1 -0
  120. package/dist/fill-range-with.mjs +18 -0
  121. package/dist/fill-with.cjs +34 -0
  122. package/dist/fill-with.d.cts +2 -0
  123. package/dist/fill-with.d.ts +1 -0
  124. package/dist/fill-with.mjs +34 -0
  125. package/dist/find-key-with-val.cjs +46 -0
  126. package/dist/find-key-with-val.d.cts +2 -0
  127. package/dist/find-key-with-val.d.ts +1 -0
  128. package/dist/find-key-with-val.mjs +46 -0
  129. package/dist/find-key.cjs +21 -0
  130. package/dist/find-key.d.cts +2 -0
  131. package/dist/find-key.d.ts +1 -0
  132. package/dist/find-key.mjs +21 -0
  133. package/dist/find-last-key-with-val.cjs +23 -0
  134. package/dist/find-last-key-with-val.d.cts +2 -0
  135. package/dist/find-last-key-with-val.d.ts +1 -0
  136. package/dist/find-last-key-with-val.mjs +23 -0
  137. package/dist/find-last-key.cjs +16 -0
  138. package/dist/find-last-key.d.cts +2 -0
  139. package/dist/find-last-key.d.ts +1 -0
  140. package/dist/find-last-key.mjs +16 -0
  141. package/dist/find-last.cjs +16 -0
  142. package/dist/find-last.d.cts +2 -0
  143. package/dist/find-last.d.ts +1 -0
  144. package/dist/find-last.mjs +16 -0
  145. package/dist/find.cjs +21 -0
  146. package/dist/find.d.cts +2 -0
  147. package/dist/find.d.ts +1 -0
  148. package/dist/find.mjs +21 -0
  149. package/dist/first.cjs +10 -0
  150. package/dist/first.d.cts +2 -0
  151. package/dist/first.d.ts +1 -0
  152. package/dist/first.mjs +10 -0
  153. package/dist/flatten-fully.cjs +9 -0
  154. package/dist/flatten-fully.d.cts +2 -0
  155. package/dist/flatten-fully.d.ts +1 -0
  156. package/dist/flatten-fully.mjs +9 -0
  157. package/dist/flatten-once.cjs +9 -0
  158. package/dist/flatten-once.d.cts +2 -0
  159. package/dist/flatten-once.d.ts +1 -0
  160. package/dist/flatten-once.mjs +9 -0
  161. package/dist/flatten-to-depth.cjs +15 -0
  162. package/dist/flatten-to-depth.d.cts +2 -0
  163. package/dist/flatten-to-depth.d.ts +1 -0
  164. package/dist/flatten-to-depth.mjs +15 -0
  165. package/dist/for-each.cjs +22 -0
  166. package/dist/for-each.d.cts +2 -0
  167. package/dist/for-each.d.ts +1 -0
  168. package/dist/for-each.mjs +22 -0
  169. package/dist/get-at-path.cjs +11 -0
  170. package/dist/get-at-path.d.cts +2 -0
  171. package/dist/get-at-path.d.ts +1 -0
  172. package/dist/get-at-path.mjs +11 -0
  173. package/dist/get-average-value.cjs +19 -0
  174. package/dist/get-average-value.d.cts +2 -0
  175. package/dist/get-average-value.d.ts +1 -0
  176. package/dist/get-average-value.mjs +19 -0
  177. package/dist/get-common-values.cjs +31 -0
  178. package/dist/get-common-values.d.cts +2 -0
  179. package/dist/get-common-values.d.ts +1 -0
  180. package/dist/get-common-values.mjs +31 -0
  181. package/dist/get-exclusive-values.cjs +41 -0
  182. package/dist/get-exclusive-values.d.cts +2 -0
  183. package/dist/get-exclusive-values.d.ts +1 -0
  184. package/dist/get-exclusive-values.mjs +41 -0
  185. package/dist/get-keys.cjs +23 -0
  186. package/dist/get-keys.d.cts +2 -0
  187. package/dist/get-keys.d.ts +1 -0
  188. package/dist/get-keys.mjs +23 -0
  189. package/dist/get-max-value.cjs +16 -0
  190. package/dist/get-max-value.d.cts +2 -0
  191. package/dist/get-max-value.d.ts +1 -0
  192. package/dist/get-max-value.mjs +16 -0
  193. package/dist/get-min-value.cjs +16 -0
  194. package/dist/get-min-value.d.cts +2 -0
  195. package/dist/get-min-value.d.ts +1 -0
  196. package/dist/get-min-value.mjs +16 -0
  197. package/dist/get-random-value.cjs +18 -0
  198. package/dist/get-random-value.d.cts +2 -0
  199. package/dist/get-random-value.d.ts +1 -0
  200. package/dist/get-random-value.mjs +18 -0
  201. package/dist/get-size.cjs +28 -0
  202. package/dist/get-size.d.cts +2 -0
  203. package/dist/get-size.d.ts +1 -0
  204. package/dist/get-size.mjs +28 -0
  205. package/dist/get-value-at-map-key.cjs +8 -0
  206. package/dist/get-value-at-map-key.d.cts +2 -0
  207. package/dist/get-value-at-map-key.d.ts +1 -0
  208. package/dist/get-value-at-map-key.mjs +8 -0
  209. package/dist/get-values.cjs +22 -0
  210. package/dist/get-values.d.cts +2 -0
  211. package/dist/get-values.d.ts +1 -0
  212. package/dist/get-values.mjs +22 -0
  213. package/dist/get.cjs +10 -0
  214. package/dist/get.d.cts +2 -0
  215. package/dist/get.d.ts +1 -0
  216. package/dist/get.mjs +10 -0
  217. package/dist/greater-than-or-equal-to.cjs +13 -0
  218. package/dist/greater-than-or-equal-to.d.cts +2 -0
  219. package/dist/greater-than-or-equal-to.d.ts +1 -0
  220. package/dist/greater-than-or-equal-to.mjs +13 -0
  221. package/dist/greater-than.cjs +13 -0
  222. package/dist/greater-than.d.cts +2 -0
  223. package/dist/greater-than.d.ts +1 -0
  224. package/dist/greater-than.mjs +13 -0
  225. package/dist/group-by.cjs +28 -0
  226. package/dist/group-by.d.cts +2 -0
  227. package/dist/group-by.d.ts +1 -0
  228. package/dist/group-by.mjs +28 -0
  229. package/dist/index.cjs +160 -0
  230. package/dist/index.d.cts +2 -0
  231. package/dist/index.d.ts +1 -0
  232. package/dist/index.mjs +158 -0
  233. package/dist/internal/contains-type-to-fn.cjs +33 -0
  234. package/dist/internal/contains-type-to-fn.mjs +33 -0
  235. package/dist/internal/get-at-path.cjs +12 -0
  236. package/dist/internal/get-at-path.mjs +12 -0
  237. package/dist/internal/validate-prune-arg.cjs +43 -0
  238. package/dist/internal/validate-prune-arg.mjs +43 -0
  239. package/dist/invert.cjs +29 -0
  240. package/dist/invert.d.cts +2 -0
  241. package/dist/invert.d.ts +1 -0
  242. package/dist/invert.mjs +29 -0
  243. package/dist/invoke-with.cjs +11 -0
  244. package/dist/invoke-with.d.cts +2 -0
  245. package/dist/invoke-with.d.ts +1 -0
  246. package/dist/invoke-with.mjs +11 -0
  247. package/dist/is-after.cjs +13 -0
  248. package/dist/is-after.d.cts +2 -0
  249. package/dist/is-after.d.ts +1 -0
  250. package/dist/is-after.mjs +13 -0
  251. package/dist/is-at-or-after.cjs +13 -0
  252. package/dist/is-at-or-after.d.cts +2 -0
  253. package/dist/is-at-or-after.d.ts +1 -0
  254. package/dist/is-at-or-after.mjs +13 -0
  255. package/dist/is-at-or-before.cjs +13 -0
  256. package/dist/is-at-or-before.d.cts +2 -0
  257. package/dist/is-at-or-before.d.ts +1 -0
  258. package/dist/is-at-or-before.mjs +13 -0
  259. package/dist/is-before.cjs +13 -0
  260. package/dist/is-before.d.cts +2 -0
  261. package/dist/is-before.d.ts +1 -0
  262. package/dist/is-before.mjs +13 -0
  263. package/dist/is-empty.cjs +28 -0
  264. package/dist/is-empty.d.cts +2 -0
  265. package/dist/is-empty.d.ts +1 -0
  266. package/dist/is-empty.mjs +28 -0
  267. package/dist/is-falsey.cjs +3 -0
  268. package/dist/is-falsey.d.cts +2 -0
  269. package/dist/is-falsey.d.ts +1 -0
  270. package/dist/is-falsey.mjs +3 -0
  271. package/dist/is-laden.cjs +28 -0
  272. package/dist/is-laden.d.cts +2 -0
  273. package/dist/is-laden.d.ts +1 -0
  274. package/dist/is-laden.mjs +28 -0
  275. package/dist/is-truthy.cjs +3 -0
  276. package/dist/is-truthy.d.cts +2 -0
  277. package/dist/is-truthy.d.ts +1 -0
  278. package/dist/is-truthy.mjs +3 -0
  279. package/dist/join-values.cjs +18 -0
  280. package/dist/join-values.d.cts +2 -0
  281. package/dist/join-values.d.ts +1 -0
  282. package/dist/join-values.mjs +18 -0
  283. package/dist/keep-first-while.cjs +18 -0
  284. package/dist/keep-first-while.d.cts +2 -0
  285. package/dist/keep-first-while.d.ts +1 -0
  286. package/dist/keep-first-while.mjs +18 -0
  287. package/dist/keep-first.cjs +14 -0
  288. package/dist/keep-first.d.cts +2 -0
  289. package/dist/keep-first.d.ts +1 -0
  290. package/dist/keep-first.mjs +14 -0
  291. package/dist/keep-last-while.cjs +18 -0
  292. package/dist/keep-last-while.d.cts +2 -0
  293. package/dist/keep-last-while.d.ts +1 -0
  294. package/dist/keep-last-while.mjs +18 -0
  295. package/dist/keep-last.cjs +14 -0
  296. package/dist/keep-last.d.cts +2 -0
  297. package/dist/keep-last.d.ts +1 -0
  298. package/dist/keep-last.mjs +14 -0
  299. package/dist/keep-range.cjs +14 -0
  300. package/dist/keep-range.d.cts +2 -0
  301. package/dist/keep-range.d.ts +1 -0
  302. package/dist/keep-range.mjs +14 -0
  303. package/dist/keep-when.cjs +54 -0
  304. package/dist/keep-when.d.cts +2 -0
  305. package/dist/keep-when.d.ts +1 -0
  306. package/dist/keep-when.mjs +54 -0
  307. package/dist/keep.cjs +63 -0
  308. package/dist/keep.d.cts +2 -0
  309. package/dist/keep.d.ts +1 -0
  310. package/dist/keep.mjs +63 -0
  311. package/dist/last.cjs +10 -0
  312. package/dist/last.d.cts +2 -0
  313. package/dist/last.d.ts +1 -0
  314. package/dist/last.mjs +10 -0
  315. package/dist/less-than-or-equal-to.cjs +13 -0
  316. package/dist/less-than-or-equal-to.d.cts +2 -0
  317. package/dist/less-than-or-equal-to.d.ts +1 -0
  318. package/dist/less-than-or-equal-to.mjs +13 -0
  319. package/dist/less-than.cjs +13 -0
  320. package/dist/less-than.d.cts +2 -0
  321. package/dist/less-than.d.ts +1 -0
  322. package/dist/less-than.mjs +13 -0
  323. package/dist/m-append-all.cjs +14 -0
  324. package/dist/m-append-all.d.cts +2 -0
  325. package/dist/m-append-all.d.ts +1 -0
  326. package/dist/m-append-all.mjs +14 -0
  327. package/dist/m-append-one.cjs +10 -0
  328. package/dist/m-append-one.d.cts +2 -0
  329. package/dist/m-append-one.d.ts +1 -0
  330. package/dist/m-append-one.mjs +10 -0
  331. package/dist/m-assign-defaults.cjs +51 -0
  332. package/dist/m-assign-defaults.d.cts +2 -0
  333. package/dist/m-assign-defaults.d.ts +1 -0
  334. package/dist/m-assign-defaults.mjs +51 -0
  335. package/dist/m-assign-overrides.cjs +47 -0
  336. package/dist/m-assign-overrides.d.cts +2 -0
  337. package/dist/m-assign-overrides.d.ts +1 -0
  338. package/dist/m-assign-overrides.mjs +47 -0
  339. package/dist/m-discard-first-while.cjs +19 -0
  340. package/dist/m-discard-first-while.d.cts +2 -0
  341. package/dist/m-discard-first-while.d.ts +1 -0
  342. package/dist/m-discard-first-while.mjs +19 -0
  343. package/dist/m-discard-first.cjs +16 -0
  344. package/dist/m-discard-first.d.cts +2 -0
  345. package/dist/m-discard-first.d.ts +1 -0
  346. package/dist/m-discard-first.mjs +16 -0
  347. package/dist/m-discard-last-while.cjs +20 -0
  348. package/dist/m-discard-last-while.d.cts +2 -0
  349. package/dist/m-discard-last-while.d.ts +1 -0
  350. package/dist/m-discard-last-while.mjs +20 -0
  351. package/dist/m-discard-last.cjs +16 -0
  352. package/dist/m-discard-last.d.cts +2 -0
  353. package/dist/m-discard-last.d.ts +1 -0
  354. package/dist/m-discard-last.mjs +16 -0
  355. package/dist/m-discard-range.cjs +17 -0
  356. package/dist/m-discard-range.d.cts +2 -0
  357. package/dist/m-discard-range.d.ts +1 -0
  358. package/dist/m-discard-range.mjs +17 -0
  359. package/dist/m-fill-range-with.cjs +17 -0
  360. package/dist/m-fill-range-with.d.cts +2 -0
  361. package/dist/m-fill-range-with.d.ts +1 -0
  362. package/dist/m-fill-range-with.mjs +17 -0
  363. package/dist/m-fill-with.cjs +32 -0
  364. package/dist/m-fill-with.d.cts +2 -0
  365. package/dist/m-fill-with.d.ts +1 -0
  366. package/dist/m-fill-with.mjs +32 -0
  367. package/dist/m-keep-first-while.cjs +19 -0
  368. package/dist/m-keep-first-while.d.cts +2 -0
  369. package/dist/m-keep-first-while.d.ts +1 -0
  370. package/dist/m-keep-first-while.mjs +19 -0
  371. package/dist/m-keep-first.cjs +14 -0
  372. package/dist/m-keep-first.d.cts +2 -0
  373. package/dist/m-keep-first.d.ts +1 -0
  374. package/dist/m-keep-first.mjs +14 -0
  375. package/dist/m-keep-last-while.cjs +19 -0
  376. package/dist/m-keep-last-while.d.cts +2 -0
  377. package/dist/m-keep-last-while.d.ts +1 -0
  378. package/dist/m-keep-last-while.mjs +19 -0
  379. package/dist/m-keep-last.cjs +14 -0
  380. package/dist/m-keep-last.d.cts +2 -0
  381. package/dist/m-keep-last.d.ts +1 -0
  382. package/dist/m-keep-last.mjs +14 -0
  383. package/dist/m-keep-range.cjs +18 -0
  384. package/dist/m-keep-range.d.cts +2 -0
  385. package/dist/m-keep-range.d.ts +1 -0
  386. package/dist/m-keep-range.mjs +18 -0
  387. package/dist/m-map-values.cjs +47 -0
  388. package/dist/m-map-values.d.cts +2 -0
  389. package/dist/m-map-values.d.ts +1 -0
  390. package/dist/m-map-values.mjs +47 -0
  391. package/dist/m-omit.cjs +62 -0
  392. package/dist/m-omit.d.cts +2 -0
  393. package/dist/m-omit.d.ts +1 -0
  394. package/dist/m-omit.mjs +62 -0
  395. package/dist/m-order.cjs +13 -0
  396. package/dist/m-order.d.cts +2 -0
  397. package/dist/m-order.d.ts +1 -0
  398. package/dist/m-order.mjs +13 -0
  399. package/dist/m-pick.cjs +67 -0
  400. package/dist/m-pick.d.cts +2 -0
  401. package/dist/m-pick.d.ts +1 -0
  402. package/dist/m-pick.mjs +67 -0
  403. package/dist/m-prepend-all.cjs +14 -0
  404. package/dist/m-prepend-all.d.cts +2 -0
  405. package/dist/m-prepend-all.d.ts +1 -0
  406. package/dist/m-prepend-all.mjs +14 -0
  407. package/dist/m-prepend-one.cjs +10 -0
  408. package/dist/m-prepend-one.d.cts +2 -0
  409. package/dist/m-prepend-one.d.ts +1 -0
  410. package/dist/m-prepend-one.mjs +10 -0
  411. package/dist/m-reverse.cjs +8 -0
  412. package/dist/m-reverse.d.cts +2 -0
  413. package/dist/m-reverse.d.ts +1 -0
  414. package/dist/m-reverse.mjs +8 -0
  415. package/dist/m-set-at-path.cjs +40 -0
  416. package/dist/m-set-at-path.d.cts +2 -0
  417. package/dist/m-set-at-path.d.ts +1 -0
  418. package/dist/m-set-at-path.mjs +40 -0
  419. package/dist/m-set.cjs +21 -0
  420. package/dist/m-set.d.cts +2 -0
  421. package/dist/m-set.d.ts +1 -0
  422. package/dist/m-set.mjs +21 -0
  423. package/dist/m-shuffle.cjs +20 -0
  424. package/dist/m-shuffle.d.cts +2 -0
  425. package/dist/m-shuffle.d.ts +1 -0
  426. package/dist/m-shuffle.mjs +20 -0
  427. package/dist/m-update.cjs +68 -0
  428. package/dist/m-update.d.cts +2 -0
  429. package/dist/m-update.d.ts +1 -0
  430. package/dist/m-update.mjs +68 -0
  431. package/dist/map-keys.cjs +36 -0
  432. package/dist/map-keys.d.cts +2 -0
  433. package/dist/map-keys.d.ts +1 -0
  434. package/dist/map-keys.mjs +36 -0
  435. package/dist/map-values.cjs +50 -0
  436. package/dist/map-values.d.cts +2 -0
  437. package/dist/map-values.d.ts +1 -0
  438. package/dist/map-values.mjs +50 -0
  439. package/dist/multiply-by.cjs +13 -0
  440. package/dist/multiply-by.d.cts +2 -0
  441. package/dist/multiply-by.d.ts +1 -0
  442. package/dist/multiply-by.mjs +13 -0
  443. package/dist/negate.cjs +9 -0
  444. package/dist/negate.d.cts +2 -0
  445. package/dist/negate.d.ts +1 -0
  446. package/dist/negate.mjs +9 -0
  447. package/dist/number-is-between.cjs +33 -0
  448. package/dist/number-is-between.d.cts +2 -0
  449. package/dist/number-is-between.d.ts +1 -0
  450. package/dist/number-is-between.mjs +33 -0
  451. package/dist/omit.cjs +52 -0
  452. package/dist/omit.d.cts +2 -0
  453. package/dist/omit.d.ts +1 -0
  454. package/dist/omit.mjs +52 -0
  455. package/dist/order.cjs +13 -0
  456. package/dist/order.d.cts +2 -0
  457. package/dist/order.d.ts +1 -0
  458. package/dist/order.mjs +13 -0
  459. package/dist/p-all.cjs +23 -0
  460. package/dist/p-all.d.cts +2 -0
  461. package/dist/p-all.d.ts +1 -0
  462. package/dist/p-all.mjs +23 -0
  463. package/dist/p-any.cjs +23 -0
  464. package/dist/p-any.d.cts +2 -0
  465. package/dist/p-any.d.ts +1 -0
  466. package/dist/p-any.mjs +23 -0
  467. package/dist/p-compose.cjs +18 -0
  468. package/dist/p-compose.d.cts +2 -0
  469. package/dist/p-compose.d.ts +1 -0
  470. package/dist/p-compose.mjs +18 -0
  471. package/dist/p-discard-when.cjs +64 -0
  472. package/dist/p-discard-when.d.cts +2 -0
  473. package/dist/p-discard-when.d.ts +1 -0
  474. package/dist/p-discard-when.mjs +64 -0
  475. package/dist/p-find.cjs +21 -0
  476. package/dist/p-find.d.cts +2 -0
  477. package/dist/p-find.d.ts +1 -0
  478. package/dist/p-find.mjs +21 -0
  479. package/dist/p-for-each.cjs +21 -0
  480. package/dist/p-for-each.d.cts +2 -0
  481. package/dist/p-for-each.d.ts +1 -0
  482. package/dist/p-for-each.mjs +21 -0
  483. package/dist/p-keep-when.cjs +64 -0
  484. package/dist/p-keep-when.d.cts +2 -0
  485. package/dist/p-keep-when.d.ts +1 -0
  486. package/dist/p-keep-when.mjs +64 -0
  487. package/dist/p-map-values.cjs +57 -0
  488. package/dist/p-map-values.d.cts +2 -0
  489. package/dist/p-map-values.d.ts +1 -0
  490. package/dist/p-map-values.mjs +57 -0
  491. package/dist/p-pass-through.cjs +12 -0
  492. package/dist/p-pass-through.d.cts +2 -0
  493. package/dist/p-pass-through.d.ts +1 -0
  494. package/dist/p-pass-through.mjs +12 -0
  495. package/dist/p-resolve-values.cjs +43 -0
  496. package/dist/p-resolve-values.d.cts +2 -0
  497. package/dist/p-resolve-values.d.ts +1 -0
  498. package/dist/p-resolve-values.mjs +43 -0
  499. package/dist/p-wait-ms.cjs +8 -0
  500. package/dist/p-wait-ms.d.cts +2 -0
  501. package/dist/p-wait-ms.d.ts +1 -0
  502. package/dist/p-wait-ms.mjs +8 -0
  503. package/dist/pass-through.cjs +9 -0
  504. package/dist/pass-through.d.cts +2 -0
  505. package/dist/pass-through.d.ts +1 -0
  506. package/dist/pass-through.mjs +9 -0
  507. package/dist/peek.cjs +13 -0
  508. package/dist/peek.d.cts +2 -0
  509. package/dist/peek.d.ts +1 -0
  510. package/dist/peek.mjs +13 -0
  511. package/dist/pick.cjs +50 -0
  512. package/dist/pick.d.cts +2 -0
  513. package/dist/pick.d.ts +1 -0
  514. package/dist/pick.mjs +50 -0
  515. package/dist/prepend-all.cjs +13 -0
  516. package/dist/prepend-all.d.cts +2 -0
  517. package/dist/prepend-all.d.ts +1 -0
  518. package/dist/prepend-all.mjs +13 -0
  519. package/dist/prepend-one.cjs +9 -0
  520. package/dist/prepend-one.d.cts +2 -0
  521. package/dist/prepend-one.d.ts +1 -0
  522. package/dist/prepend-one.mjs +9 -0
  523. package/dist/prepend.cjs +13 -0
  524. package/dist/prepend.d.cts +2 -0
  525. package/dist/prepend.d.ts +1 -0
  526. package/dist/prepend.mjs +13 -0
  527. package/dist/prune-end.cjs +18 -0
  528. package/dist/prune-end.d.cts +2 -0
  529. package/dist/prune-end.d.ts +1 -0
  530. package/dist/prune-end.mjs +18 -0
  531. package/dist/prune-start.cjs +18 -0
  532. package/dist/prune-start.d.cts +2 -0
  533. package/dist/prune-start.d.ts +1 -0
  534. package/dist/prune-start.mjs +18 -0
  535. package/dist/prune.cjs +21 -0
  536. package/dist/prune.d.cts +2 -0
  537. package/dist/prune.d.ts +1 -0
  538. package/dist/prune.mjs +21 -0
  539. package/dist/randomly-keep.cjs +83 -0
  540. package/dist/randomly-keep.d.cts +2 -0
  541. package/dist/randomly-keep.d.ts +1 -0
  542. package/dist/randomly-keep.mjs +83 -0
  543. package/dist/replace-all-matches.cjs +33 -0
  544. package/dist/replace-all-matches.d.cts +2 -0
  545. package/dist/replace-all-matches.d.ts +1 -0
  546. package/dist/replace-all-matches.mjs +33 -0
  547. package/dist/replace-first-match.cjs +38 -0
  548. package/dist/replace-first-match.d.cts +2 -0
  549. package/dist/replace-first-match.d.ts +1 -0
  550. package/dist/replace-first-match.mjs +38 -0
  551. package/dist/return-first-arg.cjs +4 -0
  552. package/dist/return-first-arg.d.cts +2 -0
  553. package/dist/return-first-arg.d.ts +1 -0
  554. package/dist/return-first-arg.mjs +4 -0
  555. package/dist/return-undefined.cjs +4 -0
  556. package/dist/return-undefined.d.cts +2 -0
  557. package/dist/return-undefined.d.ts +1 -0
  558. package/dist/return-undefined.mjs +4 -0
  559. package/dist/reverse.cjs +8 -0
  560. package/dist/reverse.d.cts +2 -0
  561. package/dist/reverse.d.ts +1 -0
  562. package/dist/reverse.mjs +8 -0
  563. package/dist/round-to-nearest.cjs +51 -0
  564. package/dist/round-to-nearest.d.cts +2 -0
  565. package/dist/round-to-nearest.d.ts +1 -0
  566. package/dist/round-to-nearest.mjs +51 -0
  567. package/dist/set.cjs +51 -0
  568. package/dist/set.d.cts +2 -0
  569. package/dist/set.d.ts +1 -0
  570. package/dist/set.mjs +51 -0
  571. package/dist/shuffle.cjs +21 -0
  572. package/dist/shuffle.d.cts +2 -0
  573. package/dist/shuffle.d.ts +1 -0
  574. package/dist/shuffle.mjs +21 -0
  575. package/dist/split-every.cjs +31 -0
  576. package/dist/split-every.d.cts +2 -0
  577. package/dist/split-every.d.ts +1 -0
  578. package/dist/split-every.mjs +31 -0
  579. package/dist/split.cjs +14 -0
  580. package/dist/split.d.cts +2 -0
  581. package/dist/split.d.ts +1 -0
  582. package/dist/split.mjs +14 -0
  583. package/dist/starts-with.cjs +13 -0
  584. package/dist/starts-with.d.cts +2 -0
  585. package/dist/starts-with.d.ts +1 -0
  586. package/dist/starts-with.mjs +13 -0
  587. package/dist/strict-equals.cjs +3 -0
  588. package/dist/strict-equals.d.cts +2 -0
  589. package/dist/strict-equals.d.ts +1 -0
  590. package/dist/strict-equals.mjs +3 -0
  591. package/dist/subtract.cjs +13 -0
  592. package/dist/subtract.d.cts +2 -0
  593. package/dist/subtract.d.ts +1 -0
  594. package/dist/subtract.mjs +13 -0
  595. package/dist/sum-values.cjs +20 -0
  596. package/dist/sum-values.d.cts +2 -0
  597. package/dist/sum-values.d.ts +1 -0
  598. package/dist/sum-values.mjs +20 -0
  599. package/dist/swap-first-two-args.cjs +15 -0
  600. package/dist/swap-first-two-args.d.cts +2 -0
  601. package/dist/swap-first-two-args.d.ts +1 -0
  602. package/dist/swap-first-two-args.mjs +15 -0
  603. package/dist/transpose.cjs +46 -0
  604. package/dist/transpose.d.cts +2 -0
  605. package/dist/transpose.d.ts +1 -0
  606. package/dist/transpose.mjs +46 -0
  607. package/dist/truncate-to-n-chars.cjs +17 -0
  608. package/dist/truncate-to-n-chars.d.cts +2 -0
  609. package/dist/truncate-to-n-chars.d.ts +1 -0
  610. package/dist/truncate-to-n-chars.mjs +17 -0
  611. package/dist/truncate-to-n-lines.cjs +58 -0
  612. package/dist/truncate-to-n-lines.d.cts +2 -0
  613. package/dist/truncate-to-n-lines.d.ts +1 -0
  614. package/dist/truncate-to-n-lines.mjs +58 -0
  615. package/dist/update.cjs +74 -0
  616. package/dist/update.d.cts +2 -0
  617. package/dist/update.d.ts +1 -0
  618. package/dist/update.mjs +74 -0
  619. package/dist/with-dates-ascending.cjs +3 -0
  620. package/dist/with-dates-ascending.d.cts +2 -0
  621. package/dist/with-dates-ascending.d.ts +1 -0
  622. package/dist/with-dates-ascending.mjs +3 -0
  623. package/dist/with-dates-descending.cjs +3 -0
  624. package/dist/with-dates-descending.d.cts +2 -0
  625. package/dist/with-dates-descending.d.ts +1 -0
  626. package/dist/with-dates-descending.mjs +3 -0
  627. package/dist/with-numbers-ascending.cjs +3 -0
  628. package/dist/with-numbers-ascending.d.cts +2 -0
  629. package/dist/with-numbers-ascending.d.ts +1 -0
  630. package/dist/with-numbers-ascending.mjs +3 -0
  631. package/dist/with-numbers-descending.cjs +3 -0
  632. package/dist/with-numbers-descending.d.cts +2 -0
  633. package/dist/with-numbers-descending.d.ts +1 -0
  634. package/dist/with-numbers-descending.mjs +3 -0
  635. package/dist/with-strings-ascending.cjs +4 -0
  636. package/dist/with-strings-ascending.d.cts +2 -0
  637. package/dist/with-strings-ascending.d.ts +1 -0
  638. package/dist/with-strings-ascending.mjs +4 -0
  639. package/dist/with-strings-descending.cjs +4 -0
  640. package/dist/with-strings-descending.d.cts +2 -0
  641. package/dist/with-strings-descending.d.ts +1 -0
  642. package/dist/with-strings-descending.mjs +4 -0
  643. package/license.txt +41 -0
  644. package/package.json +46 -0
  645. package/readme.md +108 -0
@@ -0,0 +1,9 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+
3
+ const negate = fn => {
4
+ assertArgIsType(fn, 'fn', 'function', 'negate')
5
+
6
+ return (...args) => !fn(...args)
7
+ }
8
+
9
+ module.exports = negate
@@ -0,0 +1,2 @@
1
+ import { default as negate } from '@common-fp/common-fp-types/negate'
2
+ export = negate
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/negate'
@@ -0,0 +1,9 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+
3
+ const negate = fn => {
4
+ assertArgIsType(fn, 'fn', 'function', 'negate')
5
+
6
+ return (...args) => !fn(...args)
7
+ }
8
+
9
+ export default negate
@@ -0,0 +1,33 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+ const validateIsBetweenInput = require('@common-fp/shared-internals/validate-is-between-input')
3
+
4
+ const numberIsBetween = (num1, num2, opts = {}) => {
5
+ let { exclusiveMin, exclusiveMax } = opts
6
+
7
+ validateIsBetweenInput(
8
+ num1,
9
+ 'num1',
10
+ num2,
11
+ 'num2',
12
+ 'number',
13
+ 'numberIsBetween',
14
+ {
15
+ exclusiveMin,
16
+ exclusiveMax,
17
+ }
18
+ )
19
+
20
+ const [min, max] = num1 <= num2 ? [num1, num2] : [num2, num1]
21
+ if (exclusiveMin === undefined) exclusiveMin = false
22
+ if (exclusiveMax === undefined) exclusiveMax = false
23
+
24
+ return aNumber => {
25
+ assertArgIsType(aNumber, 'aNumber', 'number', 'numberIsBetween')
26
+ const minCheck = exclusiveMin ? aNumber > min : aNumber >= min
27
+ if (!minCheck) return false
28
+
29
+ return exclusiveMax ? aNumber < max : aNumber <= max
30
+ }
31
+ }
32
+
33
+ module.exports = numberIsBetween
@@ -0,0 +1,2 @@
1
+ import { default as numberIsBetween } from '@common-fp/common-fp-types/number-is-between'
2
+ export = numberIsBetween
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/number-is-between'
@@ -0,0 +1,33 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+ import validateIsBetweenInput from '@common-fp/shared-internals/validate-is-between-input'
3
+
4
+ const numberIsBetween = (num1, num2, opts = {}) => {
5
+ let { exclusiveMin, exclusiveMax } = opts
6
+
7
+ validateIsBetweenInput(
8
+ num1,
9
+ 'num1',
10
+ num2,
11
+ 'num2',
12
+ 'number',
13
+ 'numberIsBetween',
14
+ {
15
+ exclusiveMin,
16
+ exclusiveMax,
17
+ }
18
+ )
19
+
20
+ const [min, max] = num1 <= num2 ? [num1, num2] : [num2, num1]
21
+ if (exclusiveMin === undefined) exclusiveMin = false
22
+ if (exclusiveMax === undefined) exclusiveMax = false
23
+
24
+ return aNumber => {
25
+ assertArgIsType(aNumber, 'aNumber', 'number', 'numberIsBetween')
26
+ const minCheck = exclusiveMin ? aNumber > min : aNumber >= min
27
+ if (!minCheck) return false
28
+
29
+ return exclusiveMax ? aNumber < max : aNumber <= max
30
+ }
31
+ }
32
+
33
+ export default numberIsBetween
package/dist/omit.cjs ADDED
@@ -0,0 +1,52 @@
1
+ const assertArgIsOneOfType = require('@common-fp/shared-internals/assert-arg-is-one-of-type')
2
+ const ct = require('@common-fp/shared-internals/common-types')
3
+ const ensureSet = require('@common-fp/shared-internals/ensure-set')
4
+ const getFn = require('@common-fp/shared-internals/get-fn')
5
+ const validateArrayKeys = require('@common-fp/shared-internals/validate-array-keys')
6
+ const validateObjectKeys = require('@common-fp/shared-internals/validate-object-keys')
7
+
8
+ const omit = keys => {
9
+ assertArgIsOneOfType(keys, 'keys', ct.valueCollection, 'omit')
10
+ const setOfKeys = ensureSet(keys)
11
+
12
+ return collection => {
13
+ const fn = getFn(typeToFn, collection, 'collection', 'omit')
14
+ return fn(collection, setOfKeys)
15
+ }
16
+ }
17
+
18
+ const typeToFn = {
19
+ array: omit_array,
20
+ map: omit_map,
21
+ object: omit_object,
22
+ }
23
+
24
+ function omit_array(arr, keys) {
25
+ validateArrayKeys(keys, 'omit')
26
+
27
+ return arr.filter((_el, i) => !keys.has(i))
28
+ }
29
+
30
+ function omit_map(aMap, keys) {
31
+ const result = new Map()
32
+
33
+ for (const [k, val] of aMap) {
34
+ if (!keys.has(k)) result.set(k, val)
35
+ }
36
+
37
+ return result
38
+ }
39
+
40
+ function omit_object(obj, keys) {
41
+ validateObjectKeys(keys, 'omit')
42
+
43
+ const result = {}
44
+
45
+ for (const k of Object.keys(obj)) {
46
+ if (!keys.has(k)) result[k] = obj[k]
47
+ }
48
+
49
+ return result
50
+ }
51
+
52
+ module.exports = omit
@@ -0,0 +1,2 @@
1
+ import { default as omit } from '@common-fp/common-fp-types/omit'
2
+ export = omit
package/dist/omit.d.ts ADDED
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/omit'
package/dist/omit.mjs ADDED
@@ -0,0 +1,52 @@
1
+ import assertArgIsOneOfType from '@common-fp/shared-internals/assert-arg-is-one-of-type'
2
+ import * as ct from '@common-fp/shared-internals/common-types'
3
+ import ensureSet from '@common-fp/shared-internals/ensure-set'
4
+ import getFn from '@common-fp/shared-internals/get-fn'
5
+ import validateArrayKeys from '@common-fp/shared-internals/validate-array-keys'
6
+ import validateObjectKeys from '@common-fp/shared-internals/validate-object-keys'
7
+
8
+ const omit = keys => {
9
+ assertArgIsOneOfType(keys, 'keys', ct.valueCollection, 'omit')
10
+ const setOfKeys = ensureSet(keys)
11
+
12
+ return collection => {
13
+ const fn = getFn(typeToFn, collection, 'collection', 'omit')
14
+ return fn(collection, setOfKeys)
15
+ }
16
+ }
17
+
18
+ const typeToFn = {
19
+ array: omit_array,
20
+ map: omit_map,
21
+ object: omit_object,
22
+ }
23
+
24
+ function omit_array(arr, keys) {
25
+ validateArrayKeys(keys, 'omit')
26
+
27
+ return arr.filter((_el, i) => !keys.has(i))
28
+ }
29
+
30
+ function omit_map(aMap, keys) {
31
+ const result = new Map()
32
+
33
+ for (const [k, val] of aMap) {
34
+ if (!keys.has(k)) result.set(k, val)
35
+ }
36
+
37
+ return result
38
+ }
39
+
40
+ function omit_object(obj, keys) {
41
+ validateObjectKeys(keys, 'omit')
42
+
43
+ const result = {}
44
+
45
+ for (const k of Object.keys(obj)) {
46
+ if (!keys.has(k)) result[k] = obj[k]
47
+ }
48
+
49
+ return result
50
+ }
51
+
52
+ export default omit
package/dist/order.cjs ADDED
@@ -0,0 +1,13 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+
3
+ const order = compareFn => {
4
+ assertArgIsType(compareFn, 'compareFn', 'function', 'order')
5
+
6
+ return anArray => {
7
+ assertArgIsType(anArray, 'anArray', 'array', 'order')
8
+
9
+ return [...anArray].sort(compareFn)
10
+ }
11
+ }
12
+
13
+ module.exports = order
@@ -0,0 +1,2 @@
1
+ import { default as order } from '@common-fp/common-fp-types/order'
2
+ export = order
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/order'
package/dist/order.mjs ADDED
@@ -0,0 +1,13 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+
3
+ const order = compareFn => {
4
+ assertArgIsType(compareFn, 'compareFn', 'function', 'order')
5
+
6
+ return anArray => {
7
+ assertArgIsType(anArray, 'anArray', 'array', 'order')
8
+
9
+ return [...anArray].sort(compareFn)
10
+ }
11
+ }
12
+
13
+ export default order
package/dist/p-all.cjs ADDED
@@ -0,0 +1,23 @@
1
+ const assertArgTypeIsOneOf = require('@common-fp/shared-internals/assert-arg-type-is-one-of')
2
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
3
+ const ct = require('@common-fp/shared-internals/common-types')
4
+ const getIterator = require('@common-fp/shared-internals/get-iterator')
5
+ const getType = require('@common-fp/shared-internals/get-type')
6
+
7
+ const pAll = predicate => {
8
+ assertArgIsType(predicate, 'predicate', 'function', 'pAll')
9
+
10
+ return async collection => {
11
+ const collType = getType(collection)
12
+ assertArgTypeIsOneOf(collType, 'collection', ct.collection, 'pAll')
13
+ const entries = getIterator('entries', collection, collType)
14
+
15
+ for (const [key, val] of entries) {
16
+ if (!(await predicate(val, key, collection))) return false
17
+ }
18
+
19
+ return true
20
+ }
21
+ }
22
+
23
+ module.exports = pAll
@@ -0,0 +1,2 @@
1
+ import { default as pAll } from '@common-fp/common-fp-types/p-all'
2
+ export = pAll
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/p-all'
package/dist/p-all.mjs ADDED
@@ -0,0 +1,23 @@
1
+ import assertArgTypeIsOneOf from '@common-fp/shared-internals/assert-arg-type-is-one-of'
2
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
3
+ import * as ct from '@common-fp/shared-internals/common-types'
4
+ import getIterator from '@common-fp/shared-internals/get-iterator'
5
+ import getType from '@common-fp/shared-internals/get-type'
6
+
7
+ const pAll = predicate => {
8
+ assertArgIsType(predicate, 'predicate', 'function', 'pAll')
9
+
10
+ return async collection => {
11
+ const collType = getType(collection)
12
+ assertArgTypeIsOneOf(collType, 'collection', ct.collection, 'pAll')
13
+ const entries = getIterator('entries', collection, collType)
14
+
15
+ for (const [key, val] of entries) {
16
+ if (!(await predicate(val, key, collection))) return false
17
+ }
18
+
19
+ return true
20
+ }
21
+ }
22
+
23
+ export default pAll
package/dist/p-any.cjs ADDED
@@ -0,0 +1,23 @@
1
+ const assertArgTypeIsOneOf = require('@common-fp/shared-internals/assert-arg-type-is-one-of')
2
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
3
+ const ct = require('@common-fp/shared-internals/common-types')
4
+ const getIterator = require('@common-fp/shared-internals/get-iterator')
5
+ const getType = require('@common-fp/shared-internals/get-type')
6
+
7
+ const pAny = predicate => {
8
+ assertArgIsType(predicate, 'predicate', 'function', 'pAny')
9
+
10
+ return async collection => {
11
+ const collType = getType(collection)
12
+ assertArgTypeIsOneOf(collType, 'collection', ct.collection, 'pAny')
13
+ const entries = getIterator('entries', collection, collType)
14
+
15
+ for (const [key, val] of entries) {
16
+ if (await predicate(val, key, collection)) return true
17
+ }
18
+
19
+ return false
20
+ }
21
+ }
22
+
23
+ module.exports = pAny
@@ -0,0 +1,2 @@
1
+ import { default as pAny } from '@common-fp/common-fp-types/p-any'
2
+ export = pAny
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/p-any'
package/dist/p-any.mjs ADDED
@@ -0,0 +1,23 @@
1
+ import assertArgTypeIsOneOf from '@common-fp/shared-internals/assert-arg-type-is-one-of'
2
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
3
+ import * as ct from '@common-fp/shared-internals/common-types'
4
+ import getIterator from '@common-fp/shared-internals/get-iterator'
5
+ import getType from '@common-fp/shared-internals/get-type'
6
+
7
+ const pAny = predicate => {
8
+ assertArgIsType(predicate, 'predicate', 'function', 'pAny')
9
+
10
+ return async collection => {
11
+ const collType = getType(collection)
12
+ assertArgTypeIsOneOf(collType, 'collection', ct.collection, 'pAny')
13
+ const entries = getIterator('entries', collection, collType)
14
+
15
+ for (const [key, val] of entries) {
16
+ if (await predicate(val, key, collection)) return true
17
+ }
18
+
19
+ return false
20
+ }
21
+ }
22
+
23
+ export default pAny
@@ -0,0 +1,18 @@
1
+ const assertArgIsArrayOfType = require('@common-fp/shared-internals/assert-arg-is-array-of-type')
2
+
3
+ const compose = fnArray => {
4
+ assertArgIsArrayOfType(fnArray, 'fnArray', 'function', 'compose')
5
+
6
+ return async (...args) => {
7
+ if (!fnArray.length) return args[0]
8
+
9
+ const [firstFn, ...restFns] = fnArray
10
+ let result = await firstFn(...args)
11
+ for (const fn of restFns) {
12
+ result = await fn(result)
13
+ }
14
+ return result
15
+ }
16
+ }
17
+
18
+ module.exports = compose
@@ -0,0 +1,2 @@
1
+ import { default as pCompose } from '@common-fp/common-fp-types/p-compose'
2
+ export = pCompose
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/p-compose'
@@ -0,0 +1,18 @@
1
+ import assertArgIsArrayOfType from '@common-fp/shared-internals/assert-arg-is-array-of-type'
2
+
3
+ const compose = fnArray => {
4
+ assertArgIsArrayOfType(fnArray, 'fnArray', 'function', 'compose')
5
+
6
+ return async (...args) => {
7
+ if (!fnArray.length) return args[0]
8
+
9
+ const [firstFn, ...restFns] = fnArray
10
+ let result = await firstFn(...args)
11
+ for (const fn of restFns) {
12
+ result = await fn(result)
13
+ }
14
+ return result
15
+ }
16
+ }
17
+
18
+ export default compose
@@ -0,0 +1,64 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+ const getFn = require('@common-fp/shared-internals/get-fn')
3
+
4
+ const pDiscardWhen = predicate => {
5
+ assertArgIsType(predicate, 'predicate', 'function', 'pDiscardWhen')
6
+
7
+ return async collection => {
8
+ const fn = getFn(typeToFn, collection, 'collection', 'pDiscardWhen')
9
+ return fn(collection, predicate)
10
+ }
11
+ }
12
+
13
+ const typeToFn = {
14
+ array: pDiscardWhen_array,
15
+ map: pDiscardWhen_map,
16
+ object: pDiscardWhen_object,
17
+ set: pDiscardWhen_set,
18
+ }
19
+
20
+ async function pDiscardWhen_array(arr, predicate) {
21
+ const shouldKeepArr = await Promise.all(
22
+ arr.map(async (el, i) => !(await predicate(el, i, arr)))
23
+ )
24
+
25
+ return arr.filter((_el, i) => shouldKeepArr[i])
26
+ }
27
+
28
+ async function pDiscardWhen_map(aMap, predicate) {
29
+ const result = new Map()
30
+ await Promise.all(
31
+ [...aMap].map(async ([key, val]) => {
32
+ const shouldKeep = !(await predicate(val, key, aMap))
33
+ if (shouldKeep) result.set(key, val)
34
+ })
35
+ )
36
+
37
+ return result
38
+ }
39
+
40
+ async function pDiscardWhen_object(obj, predicate) {
41
+ const result = {}
42
+ await Promise.all(
43
+ [...Object.entries(obj)].map(async ([key, val]) => {
44
+ const shouldKeep = !(await predicate(val, key, obj))
45
+ if (shouldKeep) result[key] = val
46
+ })
47
+ )
48
+
49
+ return result
50
+ }
51
+
52
+ async function pDiscardWhen_set(aSet, predicate) {
53
+ const result = new Set()
54
+ await Promise.all(
55
+ [...aSet].map(async val => {
56
+ const shouldKeep = !(await predicate(val, val, aSet))
57
+ if (shouldKeep) result.add(val)
58
+ })
59
+ )
60
+
61
+ return result
62
+ }
63
+
64
+ module.exports = pDiscardWhen
@@ -0,0 +1,2 @@
1
+ import { default as pDiscardWhen } from '@common-fp/common-fp-types/p-discard-when'
2
+ export = pDiscardWhen
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/p-discard-when'
@@ -0,0 +1,64 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+ import getFn from '@common-fp/shared-internals/get-fn'
3
+
4
+ const pDiscardWhen = predicate => {
5
+ assertArgIsType(predicate, 'predicate', 'function', 'pDiscardWhen')
6
+
7
+ return async collection => {
8
+ const fn = getFn(typeToFn, collection, 'collection', 'pDiscardWhen')
9
+ return fn(collection, predicate)
10
+ }
11
+ }
12
+
13
+ const typeToFn = {
14
+ array: pDiscardWhen_array,
15
+ map: pDiscardWhen_map,
16
+ object: pDiscardWhen_object,
17
+ set: pDiscardWhen_set,
18
+ }
19
+
20
+ async function pDiscardWhen_array(arr, predicate) {
21
+ const shouldKeepArr = await Promise.all(
22
+ arr.map(async (el, i) => !(await predicate(el, i, arr)))
23
+ )
24
+
25
+ return arr.filter((_el, i) => shouldKeepArr[i])
26
+ }
27
+
28
+ async function pDiscardWhen_map(aMap, predicate) {
29
+ const result = new Map()
30
+ await Promise.all(
31
+ [...aMap].map(async ([key, val]) => {
32
+ const shouldKeep = !(await predicate(val, key, aMap))
33
+ if (shouldKeep) result.set(key, val)
34
+ })
35
+ )
36
+
37
+ return result
38
+ }
39
+
40
+ async function pDiscardWhen_object(obj, predicate) {
41
+ const result = {}
42
+ await Promise.all(
43
+ [...Object.entries(obj)].map(async ([key, val]) => {
44
+ const shouldKeep = !(await predicate(val, key, obj))
45
+ if (shouldKeep) result[key] = val
46
+ })
47
+ )
48
+
49
+ return result
50
+ }
51
+
52
+ async function pDiscardWhen_set(aSet, predicate) {
53
+ const result = new Set()
54
+ await Promise.all(
55
+ [...aSet].map(async val => {
56
+ const shouldKeep = !(await predicate(val, val, aSet))
57
+ if (shouldKeep) result.add(val)
58
+ })
59
+ )
60
+
61
+ return result
62
+ }
63
+
64
+ export default pDiscardWhen
@@ -0,0 +1,21 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+ const assertArgTypeIsOneOf = require('@common-fp/shared-internals/assert-arg-type-is-one-of')
3
+ const ct = require('@common-fp/shared-internals/common-types')
4
+ const getIterator = require('@common-fp/shared-internals/get-iterator')
5
+ const getType = require('@common-fp/shared-internals/get-type')
6
+
7
+ const pFind = predicate => {
8
+ assertArgIsType(predicate, 'predicate', 'function', 'pFind')
9
+
10
+ return async collection => {
11
+ const collType = getType(collection)
12
+ assertArgTypeIsOneOf(collType, 'collection', ct.collection, 'pFind')
13
+ const entries = getIterator('entries', collection, collType)
14
+
15
+ for (const [key, val] of entries) {
16
+ if (await predicate(val, key, collection)) return val
17
+ }
18
+ }
19
+ }
20
+
21
+ module.exports = pFind
@@ -0,0 +1,2 @@
1
+ import { default as pFind } from '@common-fp/common-fp-types/p-find'
2
+ export = pFind
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/p-find'
@@ -0,0 +1,21 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+ import assertArgTypeIsOneOf from '@common-fp/shared-internals/assert-arg-type-is-one-of'
3
+ import * as ct from '@common-fp/shared-internals/common-types'
4
+ import getIterator from '@common-fp/shared-internals/get-iterator'
5
+ import getType from '@common-fp/shared-internals/get-type'
6
+
7
+ const pFind = predicate => {
8
+ assertArgIsType(predicate, 'predicate', 'function', 'pFind')
9
+
10
+ return async collection => {
11
+ const collType = getType(collection)
12
+ assertArgTypeIsOneOf(collType, 'collection', ct.collection, 'pFind')
13
+ const entries = getIterator('entries', collection, collType)
14
+
15
+ for (const [key, val] of entries) {
16
+ if (await predicate(val, key, collection)) return val
17
+ }
18
+ }
19
+ }
20
+
21
+ export default pFind
@@ -0,0 +1,21 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+ const assertArgTypeIsOneOf = require('@common-fp/shared-internals/assert-arg-type-is-one-of')
3
+ const ct = require('@common-fp/shared-internals/common-types')
4
+ const getIterator = require('@common-fp/shared-internals/get-iterator')
5
+ const getType = require('@common-fp/shared-internals/get-type')
6
+
7
+ const pForEach = fn => {
8
+ assertArgIsType(fn, 'fn', 'function', 'pForEach')
9
+
10
+ return async collection => {
11
+ const collType = getType(collection)
12
+ assertArgTypeIsOneOf(collType, 'collection', ct.collection, 'pForEach')
13
+
14
+ const entries = [...getIterator('entries', collection, collType)]
15
+ await Promise.all(entries.map(([key, val]) => fn(val, key, collection)))
16
+
17
+ return collection
18
+ }
19
+ }
20
+
21
+ module.exports = pForEach
@@ -0,0 +1,2 @@
1
+ import { default as pForEach } from '@common-fp/common-fp-types/p-for-each'
2
+ export = pForEach
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/p-for-each'
@@ -0,0 +1,21 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+ import assertArgTypeIsOneOf from '@common-fp/shared-internals/assert-arg-type-is-one-of'
3
+ import * as ct from '@common-fp/shared-internals/common-types'
4
+ import getIterator from '@common-fp/shared-internals/get-iterator'
5
+ import getType from '@common-fp/shared-internals/get-type'
6
+
7
+ const pForEach = fn => {
8
+ assertArgIsType(fn, 'fn', 'function', 'pForEach')
9
+
10
+ return async collection => {
11
+ const collType = getType(collection)
12
+ assertArgTypeIsOneOf(collType, 'collection', ct.collection, 'pForEach')
13
+
14
+ const entries = [...getIterator('entries', collection, collType)]
15
+ await Promise.all(entries.map(([key, val]) => fn(val, key, collection)))
16
+
17
+ return collection
18
+ }
19
+ }
20
+
21
+ export default pForEach