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,2 @@
1
+ import { default as prepend } from '@common-fp/common-fp-types/prepend'
2
+ export = prepend
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/prepend'
@@ -0,0 +1,13 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+
3
+ const prepend = start => {
4
+ assertArgIsType(start, 'start', 'string', 'append')
5
+
6
+ return base => {
7
+ assertArgIsType(base, 'base', 'string', 'append')
8
+
9
+ return start + base
10
+ }
11
+ }
12
+
13
+ export default prepend
@@ -0,0 +1,18 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+ const validatePruneArg = require('./internal/validate-prune-arg.cjs')
3
+
4
+ const pruneEnd = pruneArg => {
5
+ validatePruneArg(pruneArg)
6
+ const charsToPrune = new Set(pruneArg)
7
+
8
+ return aString => {
9
+ assertArgIsType(aString, 'aString', 'string', 'prune')
10
+
11
+ let endIdx = aString.length - 1
12
+ while (charsToPrune.has(aString[endIdx])) endIdx -= 1
13
+
14
+ return aString.slice(0, endIdx + 1)
15
+ }
16
+ }
17
+
18
+ module.exports = pruneEnd
@@ -0,0 +1,2 @@
1
+ import { default as pruneEnd } from '@common-fp/common-fp-types/prune-end'
2
+ export = pruneEnd
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/prune-end'
@@ -0,0 +1,18 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+ import validatePruneArg from './internal/validate-prune-arg.mjs'
3
+
4
+ const pruneEnd = pruneArg => {
5
+ validatePruneArg(pruneArg)
6
+ const charsToPrune = new Set(pruneArg)
7
+
8
+ return aString => {
9
+ assertArgIsType(aString, 'aString', 'string', 'prune')
10
+
11
+ let endIdx = aString.length - 1
12
+ while (charsToPrune.has(aString[endIdx])) endIdx -= 1
13
+
14
+ return aString.slice(0, endIdx + 1)
15
+ }
16
+ }
17
+
18
+ export default pruneEnd
@@ -0,0 +1,18 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+ const validatePruneArg = require('./internal/validate-prune-arg.cjs')
3
+
4
+ const pruneStart = pruneArg => {
5
+ validatePruneArg(pruneArg)
6
+ const charsToPrune = new Set(pruneArg)
7
+
8
+ return aString => {
9
+ assertArgIsType(aString, 'aString', 'string', 'prune')
10
+
11
+ let startIdx = 0
12
+ while (charsToPrune.has(aString[startIdx])) startIdx += 1
13
+
14
+ return aString.slice(startIdx)
15
+ }
16
+ }
17
+
18
+ module.exports = pruneStart
@@ -0,0 +1,2 @@
1
+ import { default as pruneStart } from '@common-fp/common-fp-types/prune-start'
2
+ export = pruneStart
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/prune-start'
@@ -0,0 +1,18 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+ import validatePruneArg from './internal/validate-prune-arg.mjs'
3
+
4
+ const pruneStart = pruneArg => {
5
+ validatePruneArg(pruneArg)
6
+ const charsToPrune = new Set(pruneArg)
7
+
8
+ return aString => {
9
+ assertArgIsType(aString, 'aString', 'string', 'prune')
10
+
11
+ let startIdx = 0
12
+ while (charsToPrune.has(aString[startIdx])) startIdx += 1
13
+
14
+ return aString.slice(startIdx)
15
+ }
16
+ }
17
+
18
+ export default pruneStart
package/dist/prune.cjs ADDED
@@ -0,0 +1,21 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+ const validatePruneArg = require('./internal/validate-prune-arg.cjs')
3
+
4
+ const prune = pruneArg => {
5
+ validatePruneArg(pruneArg)
6
+ const charsToPrune = new Set(pruneArg)
7
+
8
+ return aString => {
9
+ assertArgIsType(aString, 'aString', 'string', 'prune')
10
+
11
+ let startIdx = 0
12
+ while (charsToPrune.has(aString[startIdx])) startIdx += 1
13
+
14
+ let endIdx = aString.length - 1
15
+ while (charsToPrune.has(aString[endIdx])) endIdx -= 1
16
+
17
+ return aString.slice(startIdx, endIdx + 1)
18
+ }
19
+ }
20
+
21
+ module.exports = prune
@@ -0,0 +1,2 @@
1
+ import { default as prune } from '@common-fp/common-fp-types/prune'
2
+ export = prune
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/prune'
package/dist/prune.mjs ADDED
@@ -0,0 +1,21 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+ import validatePruneArg from './internal/validate-prune-arg.mjs'
3
+
4
+ const prune = pruneArg => {
5
+ validatePruneArg(pruneArg)
6
+ const charsToPrune = new Set(pruneArg)
7
+
8
+ return aString => {
9
+ assertArgIsType(aString, 'aString', 'string', 'prune')
10
+
11
+ let startIdx = 0
12
+ while (charsToPrune.has(aString[startIdx])) startIdx += 1
13
+
14
+ let endIdx = aString.length - 1
15
+ while (charsToPrune.has(aString[endIdx])) endIdx -= 1
16
+
17
+ return aString.slice(startIdx, endIdx + 1)
18
+ }
19
+ }
20
+
21
+ export default prune
@@ -0,0 +1,83 @@
1
+ const assertArgIsInt = require('@common-fp/shared-internals/assert-arg-is-int')
2
+ const getFn = require('@common-fp/shared-internals/get-fn')
3
+ const getRandomInt = require('@common-fp/shared-internals/get-random-int')
4
+
5
+ const randomlyKeep = num => {
6
+ assertArgIsInt(num, 'num', 'randomlyKeep', {
7
+ nonNegative: true,
8
+ })
9
+
10
+ return collection => {
11
+ const fn = getFn(typeToFn, collection, 'collection', 'randomlyKeep')
12
+ return fn(collection, num)
13
+ }
14
+ }
15
+
16
+ const typeToFn = {
17
+ array: randomlyKeep_array,
18
+ map: randomlyKeep_map,
19
+ object: randomlyKeep_object,
20
+ set: randomlyKeep_set,
21
+ }
22
+
23
+ function randomlyKeep_array(arr, num) {
24
+ const result = []
25
+
26
+ let numToTake = num
27
+ const valsToChooseFrom = [...arr]
28
+ while (numToTake > 0 && valsToChooseFrom.length) {
29
+ const randomIdx = getRandomInt(0, valsToChooseFrom.length - 1)
30
+ const pluckedVal = valsToChooseFrom.splice(randomIdx, 1)[0]
31
+ result.push(pluckedVal)
32
+ numToTake -= 1
33
+ }
34
+
35
+ return result
36
+ }
37
+
38
+ function randomlyKeep_map(aMap, num) {
39
+ const result = new Map()
40
+
41
+ let numToTake = num
42
+ const keysToChooseFrom = [...aMap.keys()]
43
+ while (numToTake > 0 && keysToChooseFrom.length) {
44
+ const idx = getRandomInt(0, keysToChooseFrom.length - 1)
45
+ const randomKey = keysToChooseFrom.splice(idx, 1)[0]
46
+ result.set(randomKey, aMap.get(randomKey))
47
+ numToTake -= 1
48
+ }
49
+
50
+ return result
51
+ }
52
+
53
+ function randomlyKeep_object(obj, num) {
54
+ const result = {}
55
+
56
+ let numToTake = num
57
+ const keysToChooseFrom = Object.keys(obj)
58
+ while (numToTake > 0 && keysToChooseFrom.length) {
59
+ const idx = getRandomInt(0, keysToChooseFrom.length - 1)
60
+ const randomKey = keysToChooseFrom.splice(idx, 1)[0]
61
+ result[randomKey] = obj[randomKey]
62
+ numToTake -= 1
63
+ }
64
+
65
+ return result
66
+ }
67
+
68
+ function randomlyKeep_set(aSet, num) {
69
+ const result = new Set()
70
+
71
+ let numToTake = num
72
+ const valsToChooseFrom = [...aSet]
73
+ while (numToTake > 0 && valsToChooseFrom.length) {
74
+ const randomIdx = getRandomInt(0, valsToChooseFrom.length - 1)
75
+ const pluckedVal = valsToChooseFrom.splice(randomIdx, 1)[0]
76
+ result.add(pluckedVal)
77
+ numToTake -= 1
78
+ }
79
+
80
+ return result
81
+ }
82
+
83
+ module.exports = randomlyKeep
@@ -0,0 +1,2 @@
1
+ import { default as randomlyKeep } from '@common-fp/common-fp-types/randomly-keep'
2
+ export = randomlyKeep
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/randomly-keep'
@@ -0,0 +1,83 @@
1
+ import assertArgIsInt from '@common-fp/shared-internals/assert-arg-is-int'
2
+ import getFn from '@common-fp/shared-internals/get-fn'
3
+ import getRandomInt from '@common-fp/shared-internals/get-random-int'
4
+
5
+ const randomlyKeep = num => {
6
+ assertArgIsInt(num, 'num', 'randomlyKeep', {
7
+ nonNegative: true,
8
+ })
9
+
10
+ return collection => {
11
+ const fn = getFn(typeToFn, collection, 'collection', 'randomlyKeep')
12
+ return fn(collection, num)
13
+ }
14
+ }
15
+
16
+ const typeToFn = {
17
+ array: randomlyKeep_array,
18
+ map: randomlyKeep_map,
19
+ object: randomlyKeep_object,
20
+ set: randomlyKeep_set,
21
+ }
22
+
23
+ function randomlyKeep_array(arr, num) {
24
+ const result = []
25
+
26
+ let numToTake = num
27
+ const valsToChooseFrom = [...arr]
28
+ while (numToTake > 0 && valsToChooseFrom.length) {
29
+ const randomIdx = getRandomInt(0, valsToChooseFrom.length - 1)
30
+ const pluckedVal = valsToChooseFrom.splice(randomIdx, 1)[0]
31
+ result.push(pluckedVal)
32
+ numToTake -= 1
33
+ }
34
+
35
+ return result
36
+ }
37
+
38
+ function randomlyKeep_map(aMap, num) {
39
+ const result = new Map()
40
+
41
+ let numToTake = num
42
+ const keysToChooseFrom = [...aMap.keys()]
43
+ while (numToTake > 0 && keysToChooseFrom.length) {
44
+ const idx = getRandomInt(0, keysToChooseFrom.length - 1)
45
+ const randomKey = keysToChooseFrom.splice(idx, 1)[0]
46
+ result.set(randomKey, aMap.get(randomKey))
47
+ numToTake -= 1
48
+ }
49
+
50
+ return result
51
+ }
52
+
53
+ function randomlyKeep_object(obj, num) {
54
+ const result = {}
55
+
56
+ let numToTake = num
57
+ const keysToChooseFrom = Object.keys(obj)
58
+ while (numToTake > 0 && keysToChooseFrom.length) {
59
+ const idx = getRandomInt(0, keysToChooseFrom.length - 1)
60
+ const randomKey = keysToChooseFrom.splice(idx, 1)[0]
61
+ result[randomKey] = obj[randomKey]
62
+ numToTake -= 1
63
+ }
64
+
65
+ return result
66
+ }
67
+
68
+ function randomlyKeep_set(aSet, num) {
69
+ const result = new Set()
70
+
71
+ let numToTake = num
72
+ const valsToChooseFrom = [...aSet]
73
+ while (numToTake > 0 && valsToChooseFrom.length) {
74
+ const randomIdx = getRandomInt(0, valsToChooseFrom.length - 1)
75
+ const pluckedVal = valsToChooseFrom.splice(randomIdx, 1)[0]
76
+ result.add(pluckedVal)
77
+ numToTake -= 1
78
+ }
79
+
80
+ return result
81
+ }
82
+
83
+ export default randomlyKeep
@@ -0,0 +1,33 @@
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 getType = require('@common-fp/shared-internals/get-type')
4
+
5
+ const replaceAllMatches = (search, replacement) => {
6
+ validateInput(search, replacement)
7
+
8
+ return aString => {
9
+ assertArgIsType(aString, 'aString', 'string', 'replaceAllMatches')
10
+
11
+ return aString.replaceAll(search, replacement)
12
+ }
13
+ }
14
+
15
+ function validateInput(search, replacement) {
16
+ const searchType = getType(search)
17
+ assertArgTypeIsOneOf(
18
+ searchType,
19
+ 'search',
20
+ ['regexp', 'string'],
21
+ 'replaceAllMatches'
22
+ )
23
+ assertArgIsType(replacement, 'replacement', 'string', 'replaceAllMatches')
24
+
25
+ if (searchType === 'regexp' && !search.global) {
26
+ const errMsg =
27
+ 'When passing a regex to replaceAllMatches, it must be global.' +
28
+ " In other words, add the the 'g' flag."
29
+ throw new Error(errMsg)
30
+ }
31
+ }
32
+
33
+ module.exports = replaceAllMatches
@@ -0,0 +1,2 @@
1
+ import { default as replaceAllMatches } from '@common-fp/common-fp-types/replace-all-matches'
2
+ export = replaceAllMatches
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/replace-all-matches'
@@ -0,0 +1,33 @@
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 getType from '@common-fp/shared-internals/get-type'
4
+
5
+ const replaceAllMatches = (search, replacement) => {
6
+ validateInput(search, replacement)
7
+
8
+ return aString => {
9
+ assertArgIsType(aString, 'aString', 'string', 'replaceAllMatches')
10
+
11
+ return aString.replaceAll(search, replacement)
12
+ }
13
+ }
14
+
15
+ function validateInput(search, replacement) {
16
+ const searchType = getType(search)
17
+ assertArgTypeIsOneOf(
18
+ searchType,
19
+ 'search',
20
+ ['regexp', 'string'],
21
+ 'replaceAllMatches'
22
+ )
23
+ assertArgIsType(replacement, 'replacement', 'string', 'replaceAllMatches')
24
+
25
+ if (searchType === 'regexp' && !search.global) {
26
+ const errMsg =
27
+ 'When passing a regex to replaceAllMatches, it must be global.' +
28
+ " In other words, add the the 'g' flag."
29
+ throw new Error(errMsg)
30
+ }
31
+ }
32
+
33
+ export default replaceAllMatches
@@ -0,0 +1,38 @@
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 getType = require('@common-fp/shared-internals/get-type')
4
+
5
+ const replaceFirstMatch = (search, replacement) => {
6
+ validateInput(search, replacement)
7
+
8
+ return aString => {
9
+ assertArgIsType(aString, 'aString', 'string', 'replaceFirstMatch')
10
+
11
+ return aString.replace(search, replacement)
12
+ }
13
+ }
14
+
15
+ //
16
+ //------------------//
17
+ // Helper Functions //
18
+ //------------------//
19
+
20
+ function validateInput(search, replacement) {
21
+ const searchType = getType(search)
22
+ assertArgTypeIsOneOf(
23
+ searchType,
24
+ 'search',
25
+ ['regexp', 'string'],
26
+ 'replaceFirstMatch'
27
+ )
28
+ if (searchType === 'regexp' && search.global) {
29
+ const errMsg =
30
+ 'When passing a regex to replaceFirstMatch, it cannot be global.' +
31
+ " In other words, remove the 'g' flag."
32
+ throw new Error(errMsg)
33
+ }
34
+
35
+ assertArgIsType(replacement, 'replacement', 'string', 'replaceFirstMatch')
36
+ }
37
+
38
+ module.exports = replaceFirstMatch
@@ -0,0 +1,2 @@
1
+ import { default as replaceFirstMatch } from '@common-fp/common-fp-types/replace-first-match'
2
+ export = replaceFirstMatch
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/replace-first-match'
@@ -0,0 +1,38 @@
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 getType from '@common-fp/shared-internals/get-type'
4
+
5
+ const replaceFirstMatch = (search, replacement) => {
6
+ validateInput(search, replacement)
7
+
8
+ return aString => {
9
+ assertArgIsType(aString, 'aString', 'string', 'replaceFirstMatch')
10
+
11
+ return aString.replace(search, replacement)
12
+ }
13
+ }
14
+
15
+ //
16
+ //------------------//
17
+ // Helper Functions //
18
+ //------------------//
19
+
20
+ function validateInput(search, replacement) {
21
+ const searchType = getType(search)
22
+ assertArgTypeIsOneOf(
23
+ searchType,
24
+ 'search',
25
+ ['regexp', 'string'],
26
+ 'replaceFirstMatch'
27
+ )
28
+ if (searchType === 'regexp' && search.global) {
29
+ const errMsg =
30
+ 'When passing a regex to replaceFirstMatch, it cannot be global.' +
31
+ " In other words, remove the 'g' flag."
32
+ throw new Error(errMsg)
33
+ }
34
+
35
+ assertArgIsType(replacement, 'replacement', 'string', 'replaceFirstMatch')
36
+ }
37
+
38
+ export default replaceFirstMatch
@@ -0,0 +1,4 @@
1
+ // also known as the 'identity' function
2
+ const returnFirstArg = firstArg => firstArg
3
+
4
+ module.exports = returnFirstArg
@@ -0,0 +1,2 @@
1
+ import { default as returnFirstArg } from '@common-fp/common-fp-types/return-first-arg'
2
+ export = returnFirstArg
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/return-first-arg'
@@ -0,0 +1,4 @@
1
+ // also known as the 'identity' function
2
+ const returnFirstArg = firstArg => firstArg
3
+
4
+ export default returnFirstArg
@@ -0,0 +1,4 @@
1
+ // also known as "no operation" or "noop"
2
+ const returnUndefined = () => undefined
3
+
4
+ module.exports = returnUndefined
@@ -0,0 +1,2 @@
1
+ import { default as returnUndefined } from '@common-fp/common-fp-types/return-undefined'
2
+ export = returnUndefined
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/return-undefined'
@@ -0,0 +1,4 @@
1
+ // also known as "no operation" or "noop"
2
+ const returnUndefined = () => undefined
3
+
4
+ export default returnUndefined
@@ -0,0 +1,8 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+
3
+ const reverse = anArray => {
4
+ assertArgIsType(anArray, 'anArray', 'array', 'reverse')
5
+ return [...anArray].reverse()
6
+ }
7
+
8
+ module.exports = reverse
@@ -0,0 +1,2 @@
1
+ import { default as reverse } from '@common-fp/common-fp-types/reverse'
2
+ export = reverse
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/reverse'
@@ -0,0 +1,8 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+
3
+ const reverse = anArray => {
4
+ assertArgIsType(anArray, 'anArray', 'array', 'reverse')
5
+ return [...anArray].reverse()
6
+ }
7
+
8
+ export default reverse
@@ -0,0 +1,51 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+ const truncateToNChars = require('@common-fp/shared-internals/truncate-to-n-chars')
3
+
4
+ const roundToNearest = precision => {
5
+ validatePrecision(precision)
6
+ const numPrecision =
7
+ precision.includes('.') ?
8
+ precision.length - 2 // 2 accounts for the leading "0."
9
+ : -precision.length + 1
10
+
11
+ return aNumber => {
12
+ assertArgIsType(aNumber, 'aNumber', 'number', 'roundToNearest')
13
+
14
+ /**
15
+ * implementation based off lodash. Essentially we're
16
+ * 1. shifting the exponent based off the precision passed
17
+ * 2. rounding the shifted result
18
+ * 3. shifting it back and returning the value
19
+ *
20
+ * per lodash this gets around pesky floating point issues
21
+ */
22
+ const [base, exp] = aNumber.toExponential().split('e')
23
+ const shiftedNum = Math.round(base + 'e' + (Number(exp) + numPrecision))
24
+
25
+ const [shiftedBase, shiftedExp] = shiftedNum.toExponential().split('e')
26
+ return Number(shiftedBase + 'e' + (Number(shiftedExp) - numPrecision))
27
+ }
28
+ }
29
+
30
+ function validatePrecision(precision) {
31
+ assertArgIsType(precision, 'precision', 'string', 'roundToNearest')
32
+ if (precision.includes('.')) {
33
+ if (!/^0\.0{0,9}1$/.test(precision)) {
34
+ const truncatedPrecision = truncateToNChars(15, precision)
35
+ throw new Error(
36
+ 'With a decimal, roundToNearest requires a precision passing the regex /^0\\.0{0,9}1$/' +
37
+ `\n precision: ${truncatedPrecision}`
38
+ )
39
+ }
40
+ } else {
41
+ if (!/^10{0,9}$/.test(precision)) {
42
+ const truncatedPrecision = truncateToNChars(15, precision)
43
+ throw new Error(
44
+ 'Without a decimal, roundToNearest requires a precision passing the regex /^10{0,9}$/' +
45
+ `\n precision: ${truncatedPrecision}`
46
+ )
47
+ }
48
+ }
49
+ }
50
+
51
+ module.exports = roundToNearest
@@ -0,0 +1,2 @@
1
+ import { default as roundToNearest } from '@common-fp/common-fp-types/round-to-nearest'
2
+ export = roundToNearest
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/round-to-nearest'