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,14 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+
3
+ const mPrependAll = prependedValues => {
4
+ assertArgIsType(prependedValues, 'prependedValues', 'array', 'mPrependAll')
5
+
6
+ return anArray => {
7
+ assertArgIsType(anArray, 'anArray', 'array', 'mPrependAll')
8
+
9
+ anArray.unshift(...prependedValues)
10
+ return anArray
11
+ }
12
+ }
13
+
14
+ module.exports = mPrependAll
@@ -0,0 +1,2 @@
1
+ import { default as mPrependAll } from '@common-fp/common-fp-types/m-prepend-all'
2
+ export = mPrependAll
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/m-prepend-all'
@@ -0,0 +1,14 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+
3
+ const mPrependAll = prependedValues => {
4
+ assertArgIsType(prependedValues, 'prependedValues', 'array', 'mPrependAll')
5
+
6
+ return anArray => {
7
+ assertArgIsType(anArray, 'anArray', 'array', 'mPrependAll')
8
+
9
+ anArray.unshift(...prependedValues)
10
+ return anArray
11
+ }
12
+ }
13
+
14
+ export default mPrependAll
@@ -0,0 +1,10 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+
3
+ const mPrependOne = el => anArray => {
4
+ assertArgIsType(anArray, 'anArray', 'array', 'mPrependOne')
5
+
6
+ anArray.unshift(el)
7
+ return anArray
8
+ }
9
+
10
+ module.exports = mPrependOne
@@ -0,0 +1,2 @@
1
+ import { default as mPrependOne } from '@common-fp/common-fp-types/m-prepend-one'
2
+ export = mPrependOne
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/m-prepend-one'
@@ -0,0 +1,10 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+
3
+ const mPrependOne = el => anArray => {
4
+ assertArgIsType(anArray, 'anArray', 'array', 'mPrependOne')
5
+
6
+ anArray.unshift(el)
7
+ return anArray
8
+ }
9
+
10
+ export default mPrependOne
@@ -0,0 +1,8 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+
3
+ const mReverse = anArray => {
4
+ assertArgIsType(anArray, 'anArray', 'array', 'mReverse')
5
+ return anArray.reverse()
6
+ }
7
+
8
+ module.exports = mReverse
@@ -0,0 +1,2 @@
1
+ import { default as mReverse } from '@common-fp/common-fp-types/m-reverse'
2
+ export = mReverse
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/m-reverse'
@@ -0,0 +1,8 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+
3
+ const mReverse = anArray => {
4
+ assertArgIsType(anArray, 'anArray', 'array', 'mReverse')
5
+ return anArray.reverse()
6
+ }
7
+
8
+ export default mReverse
@@ -0,0 +1,40 @@
1
+ const assertArgIsArrayOfAcceptedTypes = require('@common-fp/shared-internals/assert-arg-is-array-of-accepted-types')
2
+ const ct = require('@common-fp/shared-internals/common-types')
3
+
4
+ const mSetAtPath = (path, value) => {
5
+ assertArgIsArrayOfAcceptedTypes(path, 'path', ct.propertyKey, 'mSetAtPath')
6
+ if (!path.length) {
7
+ throw new Error("mSetAtPath requries 'path' to be a non-empty array")
8
+ }
9
+
10
+ return anything => {
11
+ const initialPath = path.slice(0, -1)
12
+ let obj = anything
13
+
14
+ for (const key of initialPath) {
15
+ obj = obj?.[key]
16
+ if (obj === undefined) {
17
+ const err = new Error(
18
+ "mSetAtPath requires path to exist on 'anything'. Arguments are assigned to this error to aid in debugging."
19
+ )
20
+ Object.assign(err, { arguments: { path, value, anything } })
21
+ throw err
22
+ }
23
+ }
24
+
25
+ const lastKey = path[path.length - 1]
26
+ try {
27
+ obj[lastKey] = value
28
+ } catch (innerError) {
29
+ const err = new Error(
30
+ 'mSetAtPath requires the property at path to be assignable. See error properties for more info.'
31
+ )
32
+ Object.assign(err, { innerError, arguments: { path, value, anything } })
33
+ throw err
34
+ }
35
+
36
+ return anything
37
+ }
38
+ }
39
+
40
+ module.exports = mSetAtPath
@@ -0,0 +1,2 @@
1
+ import { default as mSetAtPath } from '@common-fp/common-fp-types/m-set-at-path'
2
+ export = mSetAtPath
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/m-set-at-path'
@@ -0,0 +1,40 @@
1
+ import assertArgIsArrayOfAcceptedTypes from '@common-fp/shared-internals/assert-arg-is-array-of-accepted-types'
2
+ import * as ct from '@common-fp/shared-internals/common-types'
3
+
4
+ const mSetAtPath = (path, value) => {
5
+ assertArgIsArrayOfAcceptedTypes(path, 'path', ct.propertyKey, 'mSetAtPath')
6
+ if (!path.length) {
7
+ throw new Error("mSetAtPath requries 'path' to be a non-empty array")
8
+ }
9
+
10
+ return anything => {
11
+ const initialPath = path.slice(0, -1)
12
+ let obj = anything
13
+
14
+ for (const key of initialPath) {
15
+ obj = obj?.[key]
16
+ if (obj === undefined) {
17
+ const err = new Error(
18
+ "mSetAtPath requires path to exist on 'anything'. Arguments are assigned to this error to aid in debugging."
19
+ )
20
+ Object.assign(err, { arguments: { path, value, anything } })
21
+ throw err
22
+ }
23
+ }
24
+
25
+ const lastKey = path[path.length - 1]
26
+ try {
27
+ obj[lastKey] = value
28
+ } catch (innerError) {
29
+ const err = new Error(
30
+ 'mSetAtPath requires the property at path to be assignable. See error properties for more info.'
31
+ )
32
+ Object.assign(err, { innerError, arguments: { path, value, anything } })
33
+ throw err
34
+ }
35
+
36
+ return anything
37
+ }
38
+ }
39
+
40
+ export default mSetAtPath
package/dist/m-set.cjs ADDED
@@ -0,0 +1,21 @@
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
+
4
+ const mSet = (key, value) => {
5
+ assertArgIsOneOfType(key, 'key', ct.propertyKey, 'mSet')
6
+
7
+ return anything => {
8
+ try {
9
+ anything[key] = value
10
+ } catch (innerError) {
11
+ const err = new Error(
12
+ 'mSet requires key to be assignable. See error properties for more info.'
13
+ )
14
+ Object.assign(err, { innerError, arguments: { key, value, anything } })
15
+ throw err
16
+ }
17
+ return anything
18
+ }
19
+ }
20
+
21
+ module.exports = mSet
@@ -0,0 +1,2 @@
1
+ import { default as mSet } from '@common-fp/common-fp-types/m-set'
2
+ export = mSet
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/m-set'
package/dist/m-set.mjs ADDED
@@ -0,0 +1,21 @@
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
+
4
+ const mSet = (key, value) => {
5
+ assertArgIsOneOfType(key, 'key', ct.propertyKey, 'mSet')
6
+
7
+ return anything => {
8
+ try {
9
+ anything[key] = value
10
+ } catch (innerError) {
11
+ const err = new Error(
12
+ 'mSet requires key to be assignable. See error properties for more info.'
13
+ )
14
+ Object.assign(err, { innerError, arguments: { key, value, anything } })
15
+ throw err
16
+ }
17
+ return anything
18
+ }
19
+ }
20
+
21
+ export default mSet
@@ -0,0 +1,20 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+ const getRandomInt = require('@common-fp/shared-internals/get-random-int')
3
+
4
+ const mShuffle = anArray => {
5
+ assertArgIsType(anArray, 'anArray', 'array', 'mShuffle')
6
+
7
+ const len = anArray.length
8
+ for (let i = 0; i < len - 1; i += 1) {
9
+ const randomI = getRandomInt(i, len - 1)
10
+ if (randomI === i) continue
11
+
12
+ const tmp = anArray[i]
13
+ anArray[i] = anArray[randomI]
14
+ anArray[randomI] = tmp
15
+ }
16
+
17
+ return anArray
18
+ }
19
+
20
+ module.exports = mShuffle
@@ -0,0 +1,2 @@
1
+ import { default as mShuffle } from '@common-fp/common-fp-types/m-shuffle'
2
+ export = mShuffle
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/m-shuffle'
@@ -0,0 +1,20 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+ import getRandomInt from '@common-fp/shared-internals/get-random-int'
3
+
4
+ const mShuffle = anArray => {
5
+ assertArgIsType(anArray, 'anArray', 'array', 'mShuffle')
6
+
7
+ const len = anArray.length
8
+ for (let i = 0; i < len - 1; i += 1) {
9
+ const randomI = getRandomInt(i, len - 1)
10
+ if (randomI === i) continue
11
+
12
+ const tmp = anArray[i]
13
+ anArray[i] = anArray[randomI]
14
+ anArray[randomI] = tmp
15
+ }
16
+
17
+ return anArray
18
+ }
19
+
20
+ export default mShuffle
@@ -0,0 +1,68 @@
1
+ const aOrAn = require('@common-fp/shared-internals/a-or-an')
2
+ const assertArgHasValuesOfType = require('@common-fp/shared-internals/assert-arg-has-values-of-type')
3
+ const assertArgTypeIsOneOf = require('@common-fp/shared-internals/assert-arg-type-is-one-of')
4
+ const ct = require('@common-fp/shared-internals/common-types')
5
+ const getIterator = require('@common-fp/shared-internals/get-iterator')
6
+ const getType = require('@common-fp/shared-internals/get-type')
7
+
8
+ const mUpdate = mapperFns => {
9
+ const mapperType = getType(mapperFns)
10
+ assertArgTypeIsOneOf(mapperType, 'mapperFns', ct.entryCollection, 'mUpdate')
11
+ assertArgHasValuesOfType(mapperFns, 'mapperFns', 'function', 'mUpdate')
12
+
13
+ return collection => {
14
+ const collType = getType(collection)
15
+ assertArgTypeIsOneOf(collType, 'collection', ct.entryCollection, 'mUpdate')
16
+ validateCollectionType(collType, mapperType)
17
+ const fn = typeToFn[collType]
18
+ const mapperFnsIterator = getIterator('entries', mapperFns)
19
+ return fn(collection, mapperFnsIterator)
20
+ }
21
+ }
22
+
23
+ const typeToFn = {
24
+ array: mUpdate_array,
25
+ map: mUpdate_map,
26
+ object: mUpdate_object,
27
+ }
28
+
29
+ function mUpdate_array(arr, mapperFnsIterator) {
30
+ for (const [key, fn] of mapperFnsIterator) {
31
+ if (Object.hasOwn(arr, key)) arr[key] = fn(arr[key], key, arr)
32
+ }
33
+
34
+ return arr
35
+ }
36
+
37
+ function mUpdate_map(aMap, mapperFnsIterator) {
38
+ for (const [key, fn] of mapperFnsIterator) {
39
+ if (aMap.has(key)) aMap.set(key, fn(aMap.get(key), key, aMap))
40
+ }
41
+
42
+ return aMap
43
+ }
44
+
45
+ function mUpdate_object(obj, mapperFnsIterator) {
46
+ for (const [key, fn] of mapperFnsIterator) {
47
+ if (Object.hasOwn(obj, key)) obj[key] = fn(obj[key], key, obj)
48
+ }
49
+
50
+ return obj
51
+ }
52
+
53
+ /**
54
+ * If mapperFns is an array or map, then collection must match. This convention
55
+ * will prevent odd combinations like declaring an array of mappers intended for
56
+ * objects which happen to have number keys.
57
+ *
58
+ * Objects, on the other hand, will be the most common way to declare mappers
59
+ * - and should apply to array and map collections.
60
+ */
61
+ function validateCollectionType(collType, mapperType) {
62
+ if (['array', 'map'].includes(mapperType) && collType !== mapperType) {
63
+ const msg = `mUpdate requires argument 'collection' to be ${aOrAn(mapperType)} since you passed ${aOrAn(mapperType)} for 'mapperFns'`
64
+ throw new Error(msg)
65
+ }
66
+ }
67
+
68
+ module.exports = mUpdate
@@ -0,0 +1,2 @@
1
+ import { default as mUpdate } from '@common-fp/common-fp-types/m-update'
2
+ export = mUpdate
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/m-update'
@@ -0,0 +1,68 @@
1
+ import aOrAn from '@common-fp/shared-internals/a-or-an'
2
+ import assertArgHasValuesOfType from '@common-fp/shared-internals/assert-arg-has-values-of-type'
3
+ import assertArgTypeIsOneOf from '@common-fp/shared-internals/assert-arg-type-is-one-of'
4
+ import * as ct from '@common-fp/shared-internals/common-types'
5
+ import getIterator from '@common-fp/shared-internals/get-iterator'
6
+ import getType from '@common-fp/shared-internals/get-type'
7
+
8
+ const mUpdate = mapperFns => {
9
+ const mapperType = getType(mapperFns)
10
+ assertArgTypeIsOneOf(mapperType, 'mapperFns', ct.entryCollection, 'mUpdate')
11
+ assertArgHasValuesOfType(mapperFns, 'mapperFns', 'function', 'mUpdate')
12
+
13
+ return collection => {
14
+ const collType = getType(collection)
15
+ assertArgTypeIsOneOf(collType, 'collection', ct.entryCollection, 'mUpdate')
16
+ validateCollectionType(collType, mapperType)
17
+ const fn = typeToFn[collType]
18
+ const mapperFnsIterator = getIterator('entries', mapperFns)
19
+ return fn(collection, mapperFnsIterator)
20
+ }
21
+ }
22
+
23
+ const typeToFn = {
24
+ array: mUpdate_array,
25
+ map: mUpdate_map,
26
+ object: mUpdate_object,
27
+ }
28
+
29
+ function mUpdate_array(arr, mapperFnsIterator) {
30
+ for (const [key, fn] of mapperFnsIterator) {
31
+ if (Object.hasOwn(arr, key)) arr[key] = fn(arr[key], key, arr)
32
+ }
33
+
34
+ return arr
35
+ }
36
+
37
+ function mUpdate_map(aMap, mapperFnsIterator) {
38
+ for (const [key, fn] of mapperFnsIterator) {
39
+ if (aMap.has(key)) aMap.set(key, fn(aMap.get(key), key, aMap))
40
+ }
41
+
42
+ return aMap
43
+ }
44
+
45
+ function mUpdate_object(obj, mapperFnsIterator) {
46
+ for (const [key, fn] of mapperFnsIterator) {
47
+ if (Object.hasOwn(obj, key)) obj[key] = fn(obj[key], key, obj)
48
+ }
49
+
50
+ return obj
51
+ }
52
+
53
+ /**
54
+ * If mapperFns is an array or map, then collection must match. This convention
55
+ * will prevent odd combinations like declaring an array of mappers intended for
56
+ * objects which happen to have number keys.
57
+ *
58
+ * Objects, on the other hand, will be the most common way to declare mappers
59
+ * - and should apply to array and map collections.
60
+ */
61
+ function validateCollectionType(collType, mapperType) {
62
+ if (['array', 'map'].includes(mapperType) && collType !== mapperType) {
63
+ const msg = `mUpdate requires argument 'collection' to be ${aOrAn(mapperType)} since you passed ${aOrAn(mapperType)} for 'mapperFns'`
64
+ throw new Error(msg)
65
+ }
66
+ }
67
+
68
+ export default mUpdate
@@ -0,0 +1,36 @@
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 mapKeys = mapperFn => {
5
+ assertArgIsType(mapperFn, 'mapperFn', 'function', 'mapKeys')
6
+
7
+ return collection => {
8
+ const fn = getFn(typeToFn, collection, 'collection', 'mapKeys')
9
+ return fn(collection, mapperFn)
10
+ }
11
+ }
12
+
13
+ const typeToFn = {
14
+ map: mapKeys_map,
15
+ object: mapKeys_object,
16
+ }
17
+
18
+ function mapKeys_map(aMap, mapperFn) {
19
+ const result = new Map()
20
+
21
+ for (const [key, val] of aMap) result.set(mapperFn(val, key, aMap), val)
22
+
23
+ return result
24
+ }
25
+
26
+ function mapKeys_object(obj, mapperFn) {
27
+ const result = {}
28
+
29
+ for (const [key, val] of Object.entries(obj)) {
30
+ result[mapperFn(val, key, obj)] = val
31
+ }
32
+
33
+ return result
34
+ }
35
+
36
+ module.exports = mapKeys
@@ -0,0 +1,2 @@
1
+ import { default as mapKeys } from '@common-fp/common-fp-types/map-keys'
2
+ export = mapKeys
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/map-keys'
@@ -0,0 +1,36 @@
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 mapKeys = mapperFn => {
5
+ assertArgIsType(mapperFn, 'mapperFn', 'function', 'mapKeys')
6
+
7
+ return collection => {
8
+ const fn = getFn(typeToFn, collection, 'collection', 'mapKeys')
9
+ return fn(collection, mapperFn)
10
+ }
11
+ }
12
+
13
+ const typeToFn = {
14
+ map: mapKeys_map,
15
+ object: mapKeys_object,
16
+ }
17
+
18
+ function mapKeys_map(aMap, mapperFn) {
19
+ const result = new Map()
20
+
21
+ for (const [key, val] of aMap) result.set(mapperFn(val, key, aMap), val)
22
+
23
+ return result
24
+ }
25
+
26
+ function mapKeys_object(obj, mapperFn) {
27
+ const result = {}
28
+
29
+ for (const [key, val] of Object.entries(obj)) {
30
+ result[mapperFn(val, key, obj)] = val
31
+ }
32
+
33
+ return result
34
+ }
35
+
36
+ export default mapKeys
@@ -0,0 +1,50 @@
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 mapValues = mapperFn => {
5
+ assertArgIsType(mapperFn, 'mapperFn', 'function', 'mapValues')
6
+
7
+ return collection => {
8
+ const fn = getFn(typeToFn, collection, 'collection', 'mapValues')
9
+ return fn(collection, mapperFn)
10
+ }
11
+ }
12
+
13
+ const typeToFn = {
14
+ array: mapValues_array,
15
+ map: mapValues_map,
16
+ object: mapValues_object,
17
+ set: mapValues_set,
18
+ }
19
+
20
+ function mapValues_array(arr, mapperFn) {
21
+ return arr.map(mapperFn)
22
+ }
23
+
24
+ function mapValues_map(aMap, mapperFn) {
25
+ const result = new Map()
26
+
27
+ for (const [key, val] of aMap) result.set(key, mapperFn(val, key, aMap))
28
+
29
+ return result
30
+ }
31
+
32
+ function mapValues_object(obj, mapperFn) {
33
+ const result = {}
34
+
35
+ for (const [key, val] of Object.entries(obj)) {
36
+ result[key] = mapperFn(val, key, obj)
37
+ }
38
+
39
+ return result
40
+ }
41
+
42
+ function mapValues_set(aSet, mapperFn) {
43
+ const result = new Set()
44
+
45
+ for (const el of aSet) result.add(mapperFn(el, el, aSet))
46
+
47
+ return result
48
+ }
49
+
50
+ module.exports = mapValues
@@ -0,0 +1,2 @@
1
+ import { default as mapValues } from '@common-fp/common-fp-types/map-values'
2
+ export = mapValues
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/map-values'
@@ -0,0 +1,50 @@
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 mapValues = mapperFn => {
5
+ assertArgIsType(mapperFn, 'mapperFn', 'function', 'mapValues')
6
+
7
+ return collection => {
8
+ const fn = getFn(typeToFn, collection, 'collection', 'mapValues')
9
+ return fn(collection, mapperFn)
10
+ }
11
+ }
12
+
13
+ const typeToFn = {
14
+ array: mapValues_array,
15
+ map: mapValues_map,
16
+ object: mapValues_object,
17
+ set: mapValues_set,
18
+ }
19
+
20
+ function mapValues_array(arr, mapperFn) {
21
+ return arr.map(mapperFn)
22
+ }
23
+
24
+ function mapValues_map(aMap, mapperFn) {
25
+ const result = new Map()
26
+
27
+ for (const [key, val] of aMap) result.set(key, mapperFn(val, key, aMap))
28
+
29
+ return result
30
+ }
31
+
32
+ function mapValues_object(obj, mapperFn) {
33
+ const result = {}
34
+
35
+ for (const [key, val] of Object.entries(obj)) {
36
+ result[key] = mapperFn(val, key, obj)
37
+ }
38
+
39
+ return result
40
+ }
41
+
42
+ function mapValues_set(aSet, mapperFn) {
43
+ const result = new Set()
44
+
45
+ for (const el of aSet) result.add(mapperFn(el, el, aSet))
46
+
47
+ return result
48
+ }
49
+
50
+ export default mapValues
@@ -0,0 +1,13 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+
3
+ const multiplyBy = n1 => {
4
+ assertArgIsType(n1, 'n1', 'number', 'multiplyBy')
5
+
6
+ return n2 => {
7
+ assertArgIsType(n2, 'n2', 'number', 'multiplyBy')
8
+
9
+ return n2 * n1
10
+ }
11
+ }
12
+
13
+ module.exports = multiplyBy
@@ -0,0 +1,2 @@
1
+ import { default as multiplyBy } from '@common-fp/common-fp-types/multiply-by'
2
+ export = multiplyBy
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/multiply-by'
@@ -0,0 +1,13 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+
3
+ const multiplyBy = n1 => {
4
+ assertArgIsType(n1, 'n1', 'number', 'multiplyBy')
5
+
6
+ return n2 => {
7
+ assertArgIsType(n2, 'n2', 'number', 'multiplyBy')
8
+
9
+ return n2 * n1
10
+ }
11
+ }
12
+
13
+ export default multiplyBy