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,58 @@
1
+ const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
2
+ const assertArgIsInt = require('@common-fp/shared-internals/assert-arg-is-int')
3
+ const eol = require('@common-fp/shared-internals/eol')
4
+
5
+ const truncateToNLines = numLines => {
6
+ assertArgIsInt(numLines, 'numLines', 'truncateToNLines', {
7
+ nonNegative: true,
8
+ })
9
+
10
+ return aString => {
11
+ assertArgIsType(aString, 'aString', 'string', 'truncateToNLines')
12
+
13
+ const { lines, moreLinesExist } = getFirstNLines(numLines, aString)
14
+ if (moreLinesExist) {
15
+ if (numLines === 1) lines[0] += '...'
16
+ else lines.push('...')
17
+ }
18
+
19
+ return lines.join(eol)
20
+ }
21
+ }
22
+
23
+ // helper functions
24
+
25
+ function getFirstNLines(numberOfLinesToGet, aString) {
26
+ const lines = numberOfLinesToGet > 0 ? [''] : []
27
+
28
+ let i = 0
29
+ let numLinesReached = false
30
+
31
+ while (!numLinesReached && i < aString.length) {
32
+ const currentCharacter = aString[i]
33
+ const nextCharacter = aString[i + 1]
34
+
35
+ if (isNewline(currentCharacter, nextCharacter)) {
36
+ if (currentCharacter === '\r') i += 1
37
+
38
+ numLinesReached = lines.length === numberOfLinesToGet
39
+ if (!numLinesReached) lines.push('')
40
+ } else lines[lines.length - 1] += aString[i]
41
+
42
+ i += 1
43
+ }
44
+
45
+ return {
46
+ lines,
47
+ moreLinesExist: numLinesReached && aString.length !== i,
48
+ }
49
+ }
50
+
51
+ function isNewline(currentCharacter, nextCharacter) {
52
+ return (
53
+ currentCharacter === '\n' ||
54
+ (currentCharacter === '\r' && nextCharacter === '\n')
55
+ )
56
+ }
57
+
58
+ module.exports = truncateToNLines
@@ -0,0 +1,2 @@
1
+ import { default as truncateToNLines } from '@common-fp/common-fp-types/truncate-to-n-lines'
2
+ export = truncateToNLines
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/truncate-to-n-lines'
@@ -0,0 +1,58 @@
1
+ import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
2
+ import assertArgIsInt from '@common-fp/shared-internals/assert-arg-is-int'
3
+ import eol from '@common-fp/shared-internals/eol'
4
+
5
+ const truncateToNLines = numLines => {
6
+ assertArgIsInt(numLines, 'numLines', 'truncateToNLines', {
7
+ nonNegative: true,
8
+ })
9
+
10
+ return aString => {
11
+ assertArgIsType(aString, 'aString', 'string', 'truncateToNLines')
12
+
13
+ const { lines, moreLinesExist } = getFirstNLines(numLines, aString)
14
+ if (moreLinesExist) {
15
+ if (numLines === 1) lines[0] += '...'
16
+ else lines.push('...')
17
+ }
18
+
19
+ return lines.join(eol)
20
+ }
21
+ }
22
+
23
+ // helper functions
24
+
25
+ function getFirstNLines(numberOfLinesToGet, aString) {
26
+ const lines = numberOfLinesToGet > 0 ? [''] : []
27
+
28
+ let i = 0
29
+ let numLinesReached = false
30
+
31
+ while (!numLinesReached && i < aString.length) {
32
+ const currentCharacter = aString[i]
33
+ const nextCharacter = aString[i + 1]
34
+
35
+ if (isNewline(currentCharacter, nextCharacter)) {
36
+ if (currentCharacter === '\r') i += 1
37
+
38
+ numLinesReached = lines.length === numberOfLinesToGet
39
+ if (!numLinesReached) lines.push('')
40
+ } else lines[lines.length - 1] += aString[i]
41
+
42
+ i += 1
43
+ }
44
+
45
+ return {
46
+ lines,
47
+ moreLinesExist: numLinesReached && aString.length !== i,
48
+ }
49
+ }
50
+
51
+ function isNewline(currentCharacter, nextCharacter) {
52
+ return (
53
+ currentCharacter === '\n' ||
54
+ (currentCharacter === '\r' && nextCharacter === '\n')
55
+ )
56
+ }
57
+
58
+ export default truncateToNLines
@@ -0,0 +1,74 @@
1
+ const aOrAn = require('@common-fp/shared-internals/a-or-an')
2
+ const assertArgHasValuesOfType = require('@common-fp/shared-internals/assert-arg-has-values-of-type')
3
+ const assertArgTypeIsOneOf = require('@common-fp/shared-internals/assert-arg-type-is-one-of')
4
+ const ct = require('@common-fp/shared-internals/common-types')
5
+ const getIterator = require('@common-fp/shared-internals/get-iterator')
6
+ const getType = require('@common-fp/shared-internals/get-type')
7
+
8
+ const update = mapperFns => {
9
+ const mapperType = getType(mapperFns)
10
+ assertArgTypeIsOneOf(mapperType, 'mapperFns', ct.entryCollection, 'update')
11
+ assertArgHasValuesOfType(mapperFns, 'mapperFns', 'function', 'update')
12
+
13
+ return collection => {
14
+ const collType = getType(collection)
15
+ assertArgTypeIsOneOf(collType, 'collection', ct.entryCollection, 'update')
16
+ validateCollectionType(collType, mapperType)
17
+ const fn = typeToFn[collType]
18
+ const mapperFnsIterator = getIterator('entries', mapperFns, mapperType)
19
+ return fn(collection, mapperFnsIterator)
20
+ }
21
+ }
22
+
23
+ const typeToFn = {
24
+ array: update_array,
25
+ map: update_map,
26
+ object: update_object,
27
+ }
28
+
29
+ function update_array(arr, mapperFnsIterator) {
30
+ const result = [...arr]
31
+
32
+ for (const [key, fn] of mapperFnsIterator) {
33
+ if (Object.hasOwn(arr, key)) result[key] = fn(arr[key], key, arr)
34
+ }
35
+
36
+ return result
37
+ }
38
+
39
+ function update_map(aMap, mapperFnsIterator) {
40
+ const result = new Map(aMap)
41
+
42
+ for (const [key, fn] of mapperFnsIterator) {
43
+ if (aMap.has(key)) result.set(key, fn(aMap.get(key), key, aMap))
44
+ }
45
+
46
+ return result
47
+ }
48
+
49
+ function update_object(obj, mapperFnsIterator) {
50
+ const result = { ...obj }
51
+
52
+ for (const [key, fn] of mapperFnsIterator) {
53
+ if (Object.hasOwn(obj, key)) result[key] = fn(obj[key], key, obj)
54
+ }
55
+
56
+ return result
57
+ }
58
+
59
+ /**
60
+ * If mapperFns is an array or map, then collection must match. This convention
61
+ * will prevent odd combinations like declaring an array of mappers intended for
62
+ * objects which happen to have number keys.
63
+ *
64
+ * Objects, on the other hand, will be the most common way to declare mappers
65
+ * - and should apply to array and map collections.
66
+ */
67
+ function validateCollectionType(collType, mapperType) {
68
+ if (['array', 'map'].includes(mapperType) && collType !== mapperType) {
69
+ const msg = `update requires argument 'collection' to be ${aOrAn(mapperType)} since you passed ${aOrAn(mapperType)} for 'mapperFns'`
70
+ throw new Error(msg)
71
+ }
72
+ }
73
+
74
+ module.exports = update
@@ -0,0 +1,2 @@
1
+ import { default as update } from '@common-fp/common-fp-types/update'
2
+ export = update
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/update'
@@ -0,0 +1,74 @@
1
+ import aOrAn from '@common-fp/shared-internals/a-or-an'
2
+ import assertArgHasValuesOfType from '@common-fp/shared-internals/assert-arg-has-values-of-type'
3
+ import assertArgTypeIsOneOf from '@common-fp/shared-internals/assert-arg-type-is-one-of'
4
+ import * as ct from '@common-fp/shared-internals/common-types'
5
+ import getIterator from '@common-fp/shared-internals/get-iterator'
6
+ import getType from '@common-fp/shared-internals/get-type'
7
+
8
+ const update = mapperFns => {
9
+ const mapperType = getType(mapperFns)
10
+ assertArgTypeIsOneOf(mapperType, 'mapperFns', ct.entryCollection, 'update')
11
+ assertArgHasValuesOfType(mapperFns, 'mapperFns', 'function', 'update')
12
+
13
+ return collection => {
14
+ const collType = getType(collection)
15
+ assertArgTypeIsOneOf(collType, 'collection', ct.entryCollection, 'update')
16
+ validateCollectionType(collType, mapperType)
17
+ const fn = typeToFn[collType]
18
+ const mapperFnsIterator = getIterator('entries', mapperFns, mapperType)
19
+ return fn(collection, mapperFnsIterator)
20
+ }
21
+ }
22
+
23
+ const typeToFn = {
24
+ array: update_array,
25
+ map: update_map,
26
+ object: update_object,
27
+ }
28
+
29
+ function update_array(arr, mapperFnsIterator) {
30
+ const result = [...arr]
31
+
32
+ for (const [key, fn] of mapperFnsIterator) {
33
+ if (Object.hasOwn(arr, key)) result[key] = fn(arr[key], key, arr)
34
+ }
35
+
36
+ return result
37
+ }
38
+
39
+ function update_map(aMap, mapperFnsIterator) {
40
+ const result = new Map(aMap)
41
+
42
+ for (const [key, fn] of mapperFnsIterator) {
43
+ if (aMap.has(key)) result.set(key, fn(aMap.get(key), key, aMap))
44
+ }
45
+
46
+ return result
47
+ }
48
+
49
+ function update_object(obj, mapperFnsIterator) {
50
+ const result = { ...obj }
51
+
52
+ for (const [key, fn] of mapperFnsIterator) {
53
+ if (Object.hasOwn(obj, key)) result[key] = fn(obj[key], key, obj)
54
+ }
55
+
56
+ return result
57
+ }
58
+
59
+ /**
60
+ * If mapperFns is an array or map, then collection must match. This convention
61
+ * will prevent odd combinations like declaring an array of mappers intended for
62
+ * objects which happen to have number keys.
63
+ *
64
+ * Objects, on the other hand, will be the most common way to declare mappers
65
+ * - and should apply to array and map collections.
66
+ */
67
+ function validateCollectionType(collType, mapperType) {
68
+ if (['array', 'map'].includes(mapperType) && collType !== mapperType) {
69
+ const msg = `update requires argument 'collection' to be ${aOrAn(mapperType)} since you passed ${aOrAn(mapperType)} for 'mapperFns'`
70
+ throw new Error(msg)
71
+ }
72
+ }
73
+
74
+ export default update
@@ -0,0 +1,3 @@
1
+ const withDatesAscending = (left, right) => left.getTime() - right.getTime()
2
+
3
+ module.exports = withDatesAscending
@@ -0,0 +1,2 @@
1
+ import { default as withDatesAscending } from '@common-fp/common-fp-types/with-dates-ascending'
2
+ export = withDatesAscending
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/with-dates-ascending'
@@ -0,0 +1,3 @@
1
+ const withDatesAscending = (left, right) => left.getTime() - right.getTime()
2
+
3
+ export default withDatesAscending
@@ -0,0 +1,3 @@
1
+ const withDatesDescending = (left, right) => right.getTime() - left.getTime()
2
+
3
+ module.exports = withDatesDescending
@@ -0,0 +1,2 @@
1
+ import { default as withDatesDescending } from '@common-fp/common-fp-types/with-dates-descending'
2
+ export = withDatesDescending
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/with-dates-descending'
@@ -0,0 +1,3 @@
1
+ const withDatesDescending = (left, right) => right.getTime() - left.getTime()
2
+
3
+ export default withDatesDescending
@@ -0,0 +1,3 @@
1
+ const withNumbersAscending = (left, right) => left - right
2
+
3
+ module.exports = withNumbersAscending
@@ -0,0 +1,2 @@
1
+ import { default as withNumbersAscending } from '@common-fp/common-fp-types/with-numbers-ascending'
2
+ export = withNumbersAscending
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/with-numbers-ascending'
@@ -0,0 +1,3 @@
1
+ const withNumbersAscending = (left, right) => left - right
2
+
3
+ export default withNumbersAscending
@@ -0,0 +1,3 @@
1
+ const withNumbersDescending = (left, right) => right - left
2
+
3
+ module.exports = withNumbersDescending
@@ -0,0 +1,2 @@
1
+ import { default as withNumbersDescending } from '@common-fp/common-fp-types/with-numbers-descending'
2
+ export = withNumbersDescending
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/with-numbers-descending'
@@ -0,0 +1,3 @@
1
+ const withNumbersDescending = (left, right) => right - left
2
+
3
+ export default withNumbersDescending
@@ -0,0 +1,4 @@
1
+ const withStringsAscending = (left, right) =>
2
+ left.localeCompare(right, undefined, { sensitivity: 'case' })
3
+
4
+ module.exports = withStringsAscending
@@ -0,0 +1,2 @@
1
+ import { default as withStringsAscending } from '@common-fp/common-fp-types/with-strings-ascending'
2
+ export = withStringsAscending
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/with-strings-ascending'
@@ -0,0 +1,4 @@
1
+ const withStringsAscending = (left, right) =>
2
+ left.localeCompare(right, undefined, { sensitivity: 'case' })
3
+
4
+ export default withStringsAscending
@@ -0,0 +1,4 @@
1
+ const withStringsDescending = (left, right) =>
2
+ right.localeCompare(left, undefined, { sensitivity: 'case' })
3
+
4
+ module.exports = withStringsDescending
@@ -0,0 +1,2 @@
1
+ import { default as withStringsDescending } from '@common-fp/common-fp-types/with-strings-descending'
2
+ export = withStringsDescending
@@ -0,0 +1 @@
1
+ export { default } from '@common-fp/common-fp-types/with-strings-descending'
@@ -0,0 +1,4 @@
1
+ const withStringsDescending = (left, right) =>
2
+ right.localeCompare(left, undefined, { sensitivity: 'case' })
3
+
4
+ export default withStringsDescending
package/license.txt ADDED
@@ -0,0 +1,41 @@
1
+ You can choose between either of the two licenses listed below
2
+
3
+ WTFNMF
4
+ Zero-Clause BSD
5
+
6
+ This choice is offered since WTFNMF is not OSI approved.
7
+
8
+ --------------------
9
+
10
+ DO WHAT THE FUCK YOU WANT TO BUT IT'S NOT MY FAULT PUBLIC LICENSE
11
+ Version 1, October 2013
12
+
13
+ Copyright Phil Olson <philip.olson@pm.me>
14
+
15
+ Everyone is permitted to copy and distribute verbatim or modified
16
+ copies of this license document, and changing it is allowed as long
17
+ as the name is changed.
18
+
19
+ DO WHAT THE FUCK YOU WANT TO BUT IT'S NOT MY FAULT PUBLIC LICENSE
20
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
21
+
22
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
23
+
24
+ 1. Do not hold the author(s), creator(s), developer(s) or
25
+ distributor(s) liable for anything that happens or goes wrong
26
+ with your use of the work.
27
+
28
+ --------------------
29
+
30
+ Copyright Phil Olson <philip.olson@pm.me>
31
+
32
+ Permission to use, copy, modify, and/or distribute this software for any purpose
33
+ with or without fee is hereby granted.
34
+
35
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
36
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
37
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
38
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
39
+ OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
40
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
41
+ THIS SOFTWARE.
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "common-fp",
3
+ "description": "FP utilities for the commoner",
4
+ "private": false,
5
+ "version": "0.1.0",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "main": "./dist/index.cjs",
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.mjs",
14
+ "require": "./dist/index.cjs",
15
+ "types": "./dist/index.d.ts"
16
+ },
17
+ "./*": {
18
+ "import": "./dist/*.mjs",
19
+ "require": "./dist/*.cjs",
20
+ "types": "./dist/*.d.ts"
21
+ },
22
+ "./internal/*": null,
23
+ "./package.json": "./package.json"
24
+ },
25
+ "keywords": [
26
+ "fp",
27
+ "functional",
28
+ "functional programming",
29
+ "utilities",
30
+ "utils",
31
+ "common-fp"
32
+ ],
33
+ "author": "Phil Olson",
34
+ "license": "SEE LICENSE IN license.txt",
35
+ "peerDependenciesMeta": {
36
+ "common-fp-types": {
37
+ "optional": true
38
+ }
39
+ },
40
+ "dependencies": {
41
+ "@common-fp/shared-internals": "^0.1.0"
42
+ },
43
+ "peerDependencies": {
44
+ "common-fp-types": "^0.1.0"
45
+ }
46
+ }
package/readme.md ADDED
@@ -0,0 +1,108 @@
1
+ # Welcome to Common FP
2
+
3
+ Before you start, I suggest visiting [common-fp.org](https://common-fp.org)
4
+ instead. It has all the below information and looks better :)
5
+
6
+ ## Contents
7
+
8
+ - [Install](#install)
9
+ - [Use](#and-use)
10
+ - [Why Choose Common FP?](#why-choose-common-fp)
11
+ - [Why Not Choose Common FP?](#why-not-choose-common-fp)
12
+ - [Related Links](#related-links)
13
+
14
+ <br>
15
+
16
+ ## Install
17
+
18
+ ```sh
19
+ $ npm i common-fp
20
+
21
+ # using typescript?
22
+ $ npm i common-fp-types
23
+ ```
24
+
25
+ <br>
26
+
27
+ ## Use
28
+
29
+ ```js
30
+ import { mapValues } from 'common-fp'
31
+
32
+ const giveEveryoneAnApple = mapValues(numApples => numApples + 1)
33
+
34
+ const applesPerPersonObj = {
35
+ jason: 2,
36
+ amy: 3,
37
+ }
38
+
39
+ const resultObj = giveEveryoneAnApple(applesPerPersonObj)
40
+ console.log(resultObj)
41
+ // a new object {
42
+ // jason: 3,
43
+ // amy: 4,
44
+ // }
45
+
46
+ // works on a Map as well (and arrays, and Sets)
47
+ const applesPerPersonMap = new Map([
48
+ ['jason', 2],
49
+ ['amy', 3],
50
+ ])
51
+
52
+ const resultMap = giveEveryoneAnApple(applesPerPersonMap)
53
+ console.log(resultMap)
54
+ // a new Map [
55
+ // ['jason', 3],
56
+ // ['amy', 4],
57
+ // ]
58
+ ```
59
+
60
+ <br>
61
+
62
+ ## Why Choose Common FP?
63
+
64
+ You may find Common FP helpful if you...
65
+
66
+ - are looking for a utility library that works on data types generically.
67
+ - For example, `mapValues` can map over the values of an array, object, Map or
68
+ Set, returning you a new instance of the type you passed in.
69
+ - have run into limitations with chaining.
70
+ - Chaining feels natural until you want to call a function outside the
71
+ prototype. Then you either need to modify the prototype and account for
72
+ collisions or use a different approach, such as function composition.
73
+ - are looking for a functional library but without the jargon.
74
+ - In my experience, some functional concepts are a little too foreign for the
75
+ broader community and pose a barrier to entry. Common FP attempts to lower
76
+ that barrier by doing things such as naming the utilities in plain English,
77
+ not currying, and keeping the source intended for the common devs' eyes.
78
+
79
+ <br>
80
+
81
+ ## Why Not Choose Common FP?
82
+
83
+ Common FP is not for everyone. You may prefer other libraries if you...
84
+
85
+ - are content with your current utilities.
86
+ - Common FP may feel odd and unnecessary to you. That's fine! Keep writing
87
+ code in a way that's comfortable for you and your team.
88
+ - are already familiar with functional programming.
89
+ - If [Ramda](https://ramdajs.com/) or [Sanctuary](https://sanctuary.js.org/)
90
+ makes sense to you, then Common FP may feel watered down and missing what
91
+ you like about functional programming.
92
+ - prefer less opinionated code.
93
+ - Common FP is opinionated and will throw errors when you use it in an
94
+ unintended way. For example, [mapValues](https://common-fp.org/docs/mapValues)
95
+ requires you to pass a function, whereas Lodash provides a default. Calling
96
+ mapValues without a function doesn't make sense to me; thus, I enforce that
97
+ convention. This is one opinion of many that won't be shared by everyone -
98
+ which is okay :)
99
+
100
+ <br>
101
+
102
+ ## Related Links
103
+
104
+ - Learn more at [common-fp.org](https://common-fp.org)
105
+ - [Reference documentation](https://common-fp.org/docs)
106
+ - [Try it out in-browser](https://common-fp.org/try-it)
107
+ - [View the source](../../pkg/common-fp-types) for `common-fp-types`
108
+ - [Join our Discord](https://discord.gg/N8e7mtfwNM) or [raise a Github issue](https://github.com/common-fp/common-fp/issues/new) if you have questions, suggestions, or anything else.