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,26 @@
1
+ const getFnByType = require('@common-fp/shared-internals/get-fn-by-type')
2
+ const getType = require('@common-fp/shared-internals/get-type')
3
+ const containsTypeToFn = require('./internal/contains-type-to-fn.cjs')
4
+
5
+ const containedIn = collection => {
6
+ const collType = getType(collection)
7
+ const fn = getFnByType(
8
+ containsTypeToFn,
9
+ collType,
10
+ 'collection',
11
+ 'containedIn'
12
+ )
13
+
14
+ return value => {
15
+ const valueType = getType(value)
16
+ if (collType === 'string' && valueType !== 'string') {
17
+ throw new Error(
18
+ `When calling containedIn with a string collection, value must also be a string` +
19
+ `\n value type: ${valueType}`
20
+ )
21
+ }
22
+ return fn(collection, value)
23
+ }
24
+ }
25
+
26
+ module.exports = containedIn
@@ -0,0 +1,2 @@
1
+ import { default as containedIn } from '@common-fp/common-fp-types/contained-in'
2
+ export = containedIn
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/contained-in'
@@ -0,0 +1,26 @@
1
+ import getFnByType from '@common-fp/shared-internals/get-fn-by-type'
2
+ import getType from '@common-fp/shared-internals/get-type'
3
+ import containsTypeToFn from './internal/contains-type-to-fn.mjs'
4
+
5
+ const containedIn = collection => {
6
+ const collType = getType(collection)
7
+ const fn = getFnByType(
8
+ containsTypeToFn,
9
+ collType,
10
+ 'collection',
11
+ 'containedIn'
12
+ )
13
+
14
+ return value => {
15
+ const valueType = getType(value)
16
+ if (collType === 'string' && valueType !== 'string') {
17
+ throw new Error(
18
+ `When calling containedIn with a string collection, value must also be a string` +
19
+ `\n value type: ${valueType}`
20
+ )
21
+ }
22
+ return fn(collection, value)
23
+ }
24
+ }
25
+
26
+ export default containedIn
@@ -0,0 +1,28 @@
1
+ const getFnByType = require('@common-fp/shared-internals/get-fn-by-type')
2
+ const getType = require('@common-fp/shared-internals/get-type')
3
+ const containsTypeToFn = require('./internal/contains-type-to-fn.cjs')
4
+
5
+ const contains = value => {
6
+ const valueType = getType(value)
7
+
8
+ return collection => {
9
+ const collectionType = getType(collection)
10
+ const fn = getFnByType(
11
+ containsTypeToFn,
12
+ collectionType,
13
+ 'collection',
14
+ 'contains'
15
+ )
16
+
17
+ if (collectionType === 'string' && valueType !== 'string') {
18
+ throw new Error(
19
+ 'When calling contains with a collection of type string, value must also be a string' +
20
+ `\n value type: ${valueType}`
21
+ )
22
+ }
23
+
24
+ return fn(collection, value)
25
+ }
26
+ }
27
+
28
+ module.exports = contains
@@ -0,0 +1,2 @@
1
+ import { default as contains } from '@common-fp/common-fp-types/contains'
2
+ export = contains
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/contains'
@@ -0,0 +1,28 @@
1
+ import getFnByType from '@common-fp/shared-internals/get-fn-by-type'
2
+ import getType from '@common-fp/shared-internals/get-type'
3
+ import containsTypeToFn from './internal/contains-type-to-fn.mjs'
4
+
5
+ const contains = value => {
6
+ const valueType = getType(value)
7
+
8
+ return collection => {
9
+ const collectionType = getType(collection)
10
+ const fn = getFnByType(
11
+ containsTypeToFn,
12
+ collectionType,
13
+ 'collection',
14
+ 'contains'
15
+ )
16
+
17
+ if (collectionType === 'string' && valueType !== 'string') {
18
+ throw new Error(
19
+ 'When calling contains with a collection of type string, value must also be a string' +
20
+ `\n value type: ${valueType}`
21
+ )
22
+ }
23
+
24
+ return fn(collection, value)
25
+ }
26
+ }
27
+
28
+ export default contains
@@ -0,0 +1,31 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+ const validateIsBetweenInput = require('@common-fp/shared-internals/validate-is-between-input')
3
+
4
+ const dateIsBetween = (date1, date2, opts = {}) => {
5
+ let { exclusiveMin, exclusiveMax } = opts
6
+
7
+ validateIsBetweenInput(
8
+ date1,
9
+ 'date1',
10
+ date2,
11
+ 'date2',
12
+ 'date',
13
+ 'dateIsBetween',
14
+ opts
15
+ )
16
+
17
+ const [min, max] = date1 <= date2 ? [date1, date2] : [date2, date1]
18
+ if (exclusiveMin === undefined) exclusiveMin = false
19
+ if (exclusiveMax === undefined) exclusiveMax = false
20
+
21
+ return aDate => {
22
+ assertArgIsType(aDate, 'aDate', 'date', 'dateIsBetween')
23
+
24
+ const minCheck = exclusiveMin ? aDate > min : aDate >= min
25
+ if (!minCheck) return false
26
+
27
+ return exclusiveMax ? aDate < max : aDate <= max
28
+ }
29
+ }
30
+
31
+ module.exports = dateIsBetween
@@ -0,0 +1,2 @@
1
+ import { default as dateIsBetween } from '@common-fp/common-fp-types/date-is-between'
2
+ export = dateIsBetween
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/date-is-between'
@@ -0,0 +1,31 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+ import validateIsBetweenInput from '@common-fp/shared-internals/validate-is-between-input'
3
+
4
+ const dateIsBetween = (date1, date2, opts = {}) => {
5
+ let { exclusiveMin, exclusiveMax } = opts
6
+
7
+ validateIsBetweenInput(
8
+ date1,
9
+ 'date1',
10
+ date2,
11
+ 'date2',
12
+ 'date',
13
+ 'dateIsBetween',
14
+ opts
15
+ )
16
+
17
+ const [min, max] = date1 <= date2 ? [date1, date2] : [date2, date1]
18
+ if (exclusiveMin === undefined) exclusiveMin = false
19
+ if (exclusiveMax === undefined) exclusiveMax = false
20
+
21
+ return aDate => {
22
+ assertArgIsType(aDate, 'aDate', 'date', 'dateIsBetween')
23
+
24
+ const minCheck = exclusiveMin ? aDate > min : aDate >= min
25
+ if (!minCheck) return false
26
+
27
+ return exclusiveMax ? aDate < max : aDate <= max
28
+ }
29
+ }
30
+
31
+ export default dateIsBetween
@@ -0,0 +1,3 @@
1
+ const defaultFalseyValTo = defaultVal => val => val || defaultVal
2
+
3
+ module.exports = defaultFalseyValTo
@@ -0,0 +1,2 @@
1
+ import { default as defaultFalseyValTo } from '@common-fp/common-fp-types/default-falsey-val-to'
2
+ export = defaultFalseyValTo
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/default-falsey-val-to'
@@ -0,0 +1,3 @@
1
+ const defaultFalseyValTo = defaultVal => val => val || defaultVal
2
+
3
+ export default defaultFalseyValTo
@@ -0,0 +1,3 @@
1
+ const defaultNullishValTo = defaultVal => someVal => someVal ?? defaultVal
2
+
3
+ module.exports = defaultNullishValTo
@@ -0,0 +1,2 @@
1
+ import { default as defaultNullishValTo } from '@common-fp/common-fp-types/default-nullish-val-to'
2
+ export = defaultNullishValTo
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/default-nullish-val-to'
@@ -0,0 +1,3 @@
1
+ const defaultNullishValTo = defaultVal => someVal => someVal ?? defaultVal
2
+
3
+ export default defaultNullishValTo
@@ -0,0 +1,18 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+
3
+ const discardFirstWhile = predicate => {
4
+ assertArgIsType(predicate, 'predicate', 'function', 'discardFirstWhile')
5
+
6
+ return anArray => {
7
+ assertArgIsType(anArray, 'anArray', 'array', 'discardFirstWhile')
8
+ let i = 0
9
+
10
+ for (; i < anArray.length; i += 1) {
11
+ if (!predicate(anArray[i], i, anArray)) break
12
+ }
13
+
14
+ return anArray.slice(i)
15
+ }
16
+ }
17
+
18
+ module.exports = discardFirstWhile
@@ -0,0 +1,2 @@
1
+ import { default as discardFirstWhile } from '@common-fp/common-fp-types/discard-first-while'
2
+ export = discardFirstWhile
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/discard-first-while'
@@ -0,0 +1,18 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+
3
+ const discardFirstWhile = predicate => {
4
+ assertArgIsType(predicate, 'predicate', 'function', 'discardFirstWhile')
5
+
6
+ return anArray => {
7
+ assertArgIsType(anArray, 'anArray', 'array', 'discardFirstWhile')
8
+ let i = 0
9
+
10
+ for (; i < anArray.length; i += 1) {
11
+ if (!predicate(anArray[i], i, anArray)) break
12
+ }
13
+
14
+ return anArray.slice(i)
15
+ }
16
+ }
17
+
18
+ export default discardFirstWhile
@@ -0,0 +1,16 @@
1
+ const assertArgIsInt = require('@common-fp/shared-internals/assert-arg-is-int')
2
+ const assertArgIsOneOfType = require('@common-fp/shared-internals/assert-arg-is-one-of-type')
3
+ const ct = require('@common-fp/shared-internals/common-types')
4
+
5
+ const discardFirst = num => {
6
+ assertArgIsInt(num, 'num', 'discardFirst', {
7
+ nonNegative: true,
8
+ })
9
+
10
+ return sequence => {
11
+ assertArgIsOneOfType(sequence, 'sequence', ct.sequence, 'discardFirst')
12
+ return sequence.slice(num)
13
+ }
14
+ }
15
+
16
+ module.exports = discardFirst
@@ -0,0 +1,2 @@
1
+ import { default as discardFirst } from '@common-fp/common-fp-types/discard-first'
2
+ export = discardFirst
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/discard-first'
@@ -0,0 +1,16 @@
1
+ import assertArgIsInt from '@common-fp/shared-internals/assert-arg-is-int'
2
+ import assertArgIsOneOfType from '@common-fp/shared-internals/assert-arg-is-one-of-type'
3
+ import * as ct from '@common-fp/shared-internals/common-types'
4
+
5
+ const discardFirst = num => {
6
+ assertArgIsInt(num, 'num', 'discardFirst', {
7
+ nonNegative: true,
8
+ })
9
+
10
+ return sequence => {
11
+ assertArgIsOneOfType(sequence, 'sequence', ct.sequence, 'discardFirst')
12
+ return sequence.slice(num)
13
+ }
14
+ }
15
+
16
+ export default discardFirst
@@ -0,0 +1,17 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+
3
+ const discardLastWhile = predicate => {
4
+ assertArgIsType(predicate, 'predicate', 'function', 'discardLastWhile')
5
+
6
+ return anArray => {
7
+ assertArgIsType(anArray, 'anArray', 'array', 'discardLastWhile')
8
+ let i = anArray.length - 1
9
+ for (; i >= 0; i -= 1) {
10
+ if (!predicate(anArray[i], i, anArray)) break
11
+ }
12
+
13
+ return anArray.slice(0, i + 1)
14
+ }
15
+ }
16
+
17
+ module.exports = discardLastWhile
@@ -0,0 +1,2 @@
1
+ import { default as discardLastWhile } from '@common-fp/common-fp-types/discard-last-while'
2
+ export = discardLastWhile
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/discard-last-while'
@@ -0,0 +1,17 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+
3
+ const discardLastWhile = predicate => {
4
+ assertArgIsType(predicate, 'predicate', 'function', 'discardLastWhile')
5
+
6
+ return anArray => {
7
+ assertArgIsType(anArray, 'anArray', 'array', 'discardLastWhile')
8
+ let i = anArray.length - 1
9
+ for (; i >= 0; i -= 1) {
10
+ if (!predicate(anArray[i], i, anArray)) break
11
+ }
12
+
13
+ return anArray.slice(0, i + 1)
14
+ }
15
+ }
16
+
17
+ export default discardLastWhile
@@ -0,0 +1,16 @@
1
+ const assertArgIsInt = require('@common-fp/shared-internals/assert-arg-is-int')
2
+ const assertArgIsOneOfType = require('@common-fp/shared-internals/assert-arg-is-one-of-type')
3
+ const ct = require('@common-fp/shared-internals/common-types')
4
+
5
+ const discardLast = num => {
6
+ assertArgIsInt(num, 'num', 'discardLast', {
7
+ nonNegative: true,
8
+ })
9
+
10
+ return sequence => {
11
+ assertArgIsOneOfType(sequence, 'sequence', ct.sequence, 'discardLast')
12
+ return sequence.slice(0, Math.max(0, sequence.length - num))
13
+ }
14
+ }
15
+
16
+ module.exports = discardLast
@@ -0,0 +1,2 @@
1
+ import { default as discardLast } from '@common-fp/common-fp-types/discard-last'
2
+ export = discardLast
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/discard-last'
@@ -0,0 +1,16 @@
1
+ import assertArgIsInt from '@common-fp/shared-internals/assert-arg-is-int'
2
+ import assertArgIsOneOfType from '@common-fp/shared-internals/assert-arg-is-one-of-type'
3
+ import * as ct from '@common-fp/shared-internals/common-types'
4
+
5
+ const discardLast = num => {
6
+ assertArgIsInt(num, 'num', 'discardLast', {
7
+ nonNegative: true,
8
+ })
9
+
10
+ return sequence => {
11
+ assertArgIsOneOfType(sequence, 'sequence', ct.sequence, 'discardLast')
12
+ return sequence.slice(0, Math.max(0, sequence.length - num))
13
+ }
14
+ }
15
+
16
+ export default discardLast
@@ -0,0 +1,31 @@
1
+ const getFn = require('@common-fp/shared-internals/get-fn')
2
+ const validateRange = require('@common-fp/shared-internals/validate-range')
3
+
4
+ const discardRange = ({ startIdx, endIdx } = {}) => {
5
+ validateRange(startIdx, endIdx, 'discardRange')
6
+
7
+ return sequence => {
8
+ const fn = getFn(typeToFn, sequence, 'sequence', 'discardRange')
9
+ return fn(sequence, startIdx, endIdx)
10
+ }
11
+ }
12
+
13
+ const typeToFn = {
14
+ array: discardRange_array,
15
+ string: discardRange_string,
16
+ }
17
+
18
+ function discardRange_array(sequence, startIdx, endIdx) {
19
+ const result = [...sequence]
20
+ const numToDiscard = endIdx + 1 - startIdx
21
+ result.splice(startIdx, numToDiscard)
22
+ return result
23
+ }
24
+
25
+ function discardRange_string(sequence, startIdx, endIdx) {
26
+ const start = sequence.slice(0, startIdx)
27
+ const end = sequence.slice(endIdx + 1)
28
+ return start + end
29
+ }
30
+
31
+ module.exports = discardRange
@@ -0,0 +1,2 @@
1
+ import { default as discardRange } from '@common-fp/common-fp-types/discard-range'
2
+ export = discardRange
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/discard-range'
@@ -0,0 +1,31 @@
1
+ import getFn from '@common-fp/shared-internals/get-fn'
2
+ import validateRange from '@common-fp/shared-internals/validate-range'
3
+
4
+ const discardRange = ({ startIdx, endIdx } = {}) => {
5
+ validateRange(startIdx, endIdx, 'discardRange')
6
+
7
+ return sequence => {
8
+ const fn = getFn(typeToFn, sequence, 'sequence', 'discardRange')
9
+ return fn(sequence, startIdx, endIdx)
10
+ }
11
+ }
12
+
13
+ const typeToFn = {
14
+ array: discardRange_array,
15
+ string: discardRange_string,
16
+ }
17
+
18
+ function discardRange_array(sequence, startIdx, endIdx) {
19
+ const result = [...sequence]
20
+ const numToDiscard = endIdx + 1 - startIdx
21
+ result.splice(startIdx, numToDiscard)
22
+ return result
23
+ }
24
+
25
+ function discardRange_string(sequence, startIdx, endIdx) {
26
+ const start = sequence.slice(0, startIdx)
27
+ const end = sequence.slice(endIdx + 1)
28
+ return start + end
29
+ }
30
+
31
+ export default discardRange
@@ -0,0 +1,55 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+ const getFn = require('@common-fp/shared-internals/get-fn')
3
+ const negate = require('@common-fp/shared-internals/negate')
4
+
5
+ const discardWhen = predicate => {
6
+ assertArgIsType(predicate, 'predicate', 'function', 'discardWhen')
7
+
8
+ return collection => {
9
+ const fn = getFn(typeToFn, collection, 'collection', 'discardWhen')
10
+ return fn(collection, predicate)
11
+ }
12
+ }
13
+
14
+ const typeToFn = {
15
+ array: discardWhen_array,
16
+ map: discardWhen_map,
17
+ object: discardWhen_object,
18
+ set: discardWhen_set,
19
+ }
20
+
21
+ function discardWhen_array(arr, predicate) {
22
+ return arr.filter(negate(predicate))
23
+ }
24
+
25
+ function discardWhen_map(aMap, predicate) {
26
+ const result = new Map()
27
+
28
+ for (const [key, val] of aMap) {
29
+ if (!predicate(val, key, aMap)) result.set(key, val)
30
+ }
31
+
32
+ return result
33
+ }
34
+
35
+ function discardWhen_object(obj, predicate) {
36
+ const result = {}
37
+
38
+ for (const key of Object.keys(obj)) {
39
+ if (!predicate(obj[key], key, obj)) result[key] = obj[key]
40
+ }
41
+
42
+ return result
43
+ }
44
+
45
+ function discardWhen_set(aSet, predicate) {
46
+ const result = new Set()
47
+
48
+ for (const val of aSet) {
49
+ if (!predicate(val, val, aSet)) result.add(val)
50
+ }
51
+
52
+ return result
53
+ }
54
+
55
+ module.exports = discardWhen
@@ -0,0 +1,2 @@
1
+ import { default as discardWhen } from '@common-fp/common-fp-types/discard-when'
2
+ export = discardWhen
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/discard-when'
@@ -0,0 +1,55 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+ import getFn from '@common-fp/shared-internals/get-fn'
3
+ import negate from '@common-fp/shared-internals/negate'
4
+
5
+ const discardWhen = predicate => {
6
+ assertArgIsType(predicate, 'predicate', 'function', 'discardWhen')
7
+
8
+ return collection => {
9
+ const fn = getFn(typeToFn, collection, 'collection', 'discardWhen')
10
+ return fn(collection, predicate)
11
+ }
12
+ }
13
+
14
+ const typeToFn = {
15
+ array: discardWhen_array,
16
+ map: discardWhen_map,
17
+ object: discardWhen_object,
18
+ set: discardWhen_set,
19
+ }
20
+
21
+ function discardWhen_array(arr, predicate) {
22
+ return arr.filter(negate(predicate))
23
+ }
24
+
25
+ function discardWhen_map(aMap, predicate) {
26
+ const result = new Map()
27
+
28
+ for (const [key, val] of aMap) {
29
+ if (!predicate(val, key, aMap)) result.set(key, val)
30
+ }
31
+
32
+ return result
33
+ }
34
+
35
+ function discardWhen_object(obj, predicate) {
36
+ const result = {}
37
+
38
+ for (const key of Object.keys(obj)) {
39
+ if (!predicate(obj[key], key, obj)) result[key] = obj[key]
40
+ }
41
+
42
+ return result
43
+ }
44
+
45
+ function discardWhen_set(aSet, predicate) {
46
+ const result = new Set()
47
+
48
+ for (const val of aSet) {
49
+ if (!predicate(val, val, aSet)) result.add(val)
50
+ }
51
+
52
+ return result
53
+ }
54
+
55
+ export default discardWhen
@@ -0,0 +1,57 @@
1
+ const assertArgIsOneOfType = require('@common-fp/shared-internals/assert-arg-is-one-of-type')
2
+ const ct = require('@common-fp/shared-internals/common-types')
3
+ const ensureSet = require('@common-fp/shared-internals/ensure-set')
4
+ const getFn = require('@common-fp/shared-internals/get-fn')
5
+
6
+ const discard = values => {
7
+ assertArgIsOneOfType(values, 'values', ct.valueCollection, 'discard')
8
+ const setOfVals = ensureSet(values)
9
+
10
+ return collection => {
11
+ const fn = getFn(typeToFn, collection, 'collection', 'discard')
12
+ return fn(collection, setOfVals)
13
+ }
14
+ }
15
+
16
+ const typeToFn = {
17
+ array: discard_array,
18
+ map: discard_map,
19
+ object: discard_object,
20
+ set: discard_set,
21
+ }
22
+
23
+ function discard_array(arr, vals) {
24
+ return arr.filter(v => !vals.has(v))
25
+ }
26
+
27
+ function discard_map(aMap, vals) {
28
+ const result = new Map()
29
+
30
+ for (const [k, v] of aMap) {
31
+ if (!vals.has(v)) result.set(k, v)
32
+ }
33
+
34
+ return result
35
+ }
36
+
37
+ function discard_object(obj, vals) {
38
+ const result = {}
39
+
40
+ for (const [k, v] of Object.entries(obj)) {
41
+ if (!vals.has(v)) result[k] = v
42
+ }
43
+
44
+ return result
45
+ }
46
+
47
+ function discard_set(aSet, vals) {
48
+ const result = new Set()
49
+
50
+ for (const v of aSet) {
51
+ if (!vals.has(v)) result.add(v)
52
+ }
53
+
54
+ return result
55
+ }
56
+
57
+ module.exports = discard
@@ -0,0 +1,2 @@
1
+ import { default as discard } from '@common-fp/common-fp-types/discard'
2
+ export = discard