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.
- package/dist/add.cjs +13 -0
- package/dist/add.d.cts +2 -0
- package/dist/add.d.ts +1 -0
- package/dist/add.mjs +13 -0
- package/dist/all.cjs +23 -0
- package/dist/all.d.cts +2 -0
- package/dist/all.d.ts +1 -0
- package/dist/all.mjs +23 -0
- package/dist/alter.cjs +24 -0
- package/dist/alter.d.cts +2 -0
- package/dist/alter.d.ts +1 -0
- package/dist/alter.mjs +24 -0
- package/dist/any.cjs +22 -0
- package/dist/any.d.cts +2 -0
- package/dist/any.d.ts +1 -0
- package/dist/any.mjs +22 -0
- package/dist/append-all.cjs +13 -0
- package/dist/append-all.d.cts +2 -0
- package/dist/append-all.d.ts +1 -0
- package/dist/append-all.mjs +13 -0
- package/dist/append-one.cjs +9 -0
- package/dist/append-one.d.cts +2 -0
- package/dist/append-one.d.ts +1 -0
- package/dist/append-one.mjs +9 -0
- package/dist/append.cjs +13 -0
- package/dist/append.d.cts +2 -0
- package/dist/append.d.ts +1 -0
- package/dist/append.mjs +13 -0
- package/dist/assign-defaults.cjs +43 -0
- package/dist/assign-defaults.d.cts +2 -0
- package/dist/assign-defaults.d.ts +1 -0
- package/dist/assign-defaults.mjs +43 -0
- package/dist/assign-overrides.cjs +43 -0
- package/dist/assign-overrides.d.cts +2 -0
- package/dist/assign-overrides.d.ts +1 -0
- package/dist/assign-overrides.mjs +43 -0
- package/dist/compare-by-path.cjs +24 -0
- package/dist/compare-by-path.d.cts +2 -0
- package/dist/compare-by-path.d.ts +1 -0
- package/dist/compare-by-path.mjs +24 -0
- package/dist/compare-by-prop.cjs +23 -0
- package/dist/compare-by-prop.d.cts +2 -0
- package/dist/compare-by-prop.d.ts +1 -0
- package/dist/compare-by-prop.mjs +23 -0
- package/dist/compose.cjs +15 -0
- package/dist/compose.d.cts +2 -0
- package/dist/compose.d.ts +1 -0
- package/dist/compose.mjs +15 -0
- package/dist/contained-in.cjs +26 -0
- package/dist/contained-in.d.cts +2 -0
- package/dist/contained-in.d.ts +1 -0
- package/dist/contained-in.mjs +26 -0
- package/dist/contains.cjs +28 -0
- package/dist/contains.d.cts +2 -0
- package/dist/contains.d.ts +1 -0
- package/dist/contains.mjs +28 -0
- package/dist/date-is-between.cjs +31 -0
- package/dist/date-is-between.d.cts +2 -0
- package/dist/date-is-between.d.ts +1 -0
- package/dist/date-is-between.mjs +31 -0
- package/dist/default-falsey-val-to.cjs +3 -0
- package/dist/default-falsey-val-to.d.cts +2 -0
- package/dist/default-falsey-val-to.d.ts +1 -0
- package/dist/default-falsey-val-to.mjs +3 -0
- package/dist/default-nullish-val-to.cjs +3 -0
- package/dist/default-nullish-val-to.d.cts +2 -0
- package/dist/default-nullish-val-to.d.ts +1 -0
- package/dist/default-nullish-val-to.mjs +3 -0
- package/dist/discard-first-while.cjs +18 -0
- package/dist/discard-first-while.d.cts +2 -0
- package/dist/discard-first-while.d.ts +1 -0
- package/dist/discard-first-while.mjs +18 -0
- package/dist/discard-first.cjs +16 -0
- package/dist/discard-first.d.cts +2 -0
- package/dist/discard-first.d.ts +1 -0
- package/dist/discard-first.mjs +16 -0
- package/dist/discard-last-while.cjs +17 -0
- package/dist/discard-last-while.d.cts +2 -0
- package/dist/discard-last-while.d.ts +1 -0
- package/dist/discard-last-while.mjs +17 -0
- package/dist/discard-last.cjs +16 -0
- package/dist/discard-last.d.cts +2 -0
- package/dist/discard-last.d.ts +1 -0
- package/dist/discard-last.mjs +16 -0
- package/dist/discard-range.cjs +31 -0
- package/dist/discard-range.d.cts +2 -0
- package/dist/discard-range.d.ts +1 -0
- package/dist/discard-range.mjs +31 -0
- package/dist/discard-when.cjs +55 -0
- package/dist/discard-when.d.cts +2 -0
- package/dist/discard-when.d.ts +1 -0
- package/dist/discard-when.mjs +55 -0
- package/dist/discard.cjs +57 -0
- package/dist/discard.d.cts +2 -0
- package/dist/discard.d.ts +1 -0
- package/dist/discard.mjs +57 -0
- package/dist/divide-by.cjs +13 -0
- package/dist/divide-by.d.cts +2 -0
- package/dist/divide-by.d.ts +1 -0
- package/dist/divide-by.mjs +13 -0
- package/dist/ends-with.cjs +13 -0
- package/dist/ends-with.d.cts +2 -0
- package/dist/ends-with.d.ts +1 -0
- package/dist/ends-with.mjs +13 -0
- package/dist/expand-end.cjs +16 -0
- package/dist/expand-end.d.cts +2 -0
- package/dist/expand-end.d.ts +1 -0
- package/dist/expand-end.mjs +16 -0
- package/dist/expand-start.cjs +16 -0
- package/dist/expand-start.d.cts +2 -0
- package/dist/expand-start.d.ts +1 -0
- package/dist/expand-start.mjs +16 -0
- package/dist/expand.cjs +22 -0
- package/dist/expand.d.cts +2 -0
- package/dist/expand.d.ts +1 -0
- package/dist/expand.mjs +22 -0
- package/dist/fill-range-with.cjs +18 -0
- package/dist/fill-range-with.d.cts +2 -0
- package/dist/fill-range-with.d.ts +1 -0
- package/dist/fill-range-with.mjs +18 -0
- package/dist/fill-with.cjs +34 -0
- package/dist/fill-with.d.cts +2 -0
- package/dist/fill-with.d.ts +1 -0
- package/dist/fill-with.mjs +34 -0
- package/dist/find-key-with-val.cjs +46 -0
- package/dist/find-key-with-val.d.cts +2 -0
- package/dist/find-key-with-val.d.ts +1 -0
- package/dist/find-key-with-val.mjs +46 -0
- package/dist/find-key.cjs +21 -0
- package/dist/find-key.d.cts +2 -0
- package/dist/find-key.d.ts +1 -0
- package/dist/find-key.mjs +21 -0
- package/dist/find-last-key-with-val.cjs +23 -0
- package/dist/find-last-key-with-val.d.cts +2 -0
- package/dist/find-last-key-with-val.d.ts +1 -0
- package/dist/find-last-key-with-val.mjs +23 -0
- package/dist/find-last-key.cjs +16 -0
- package/dist/find-last-key.d.cts +2 -0
- package/dist/find-last-key.d.ts +1 -0
- package/dist/find-last-key.mjs +16 -0
- package/dist/find-last.cjs +16 -0
- package/dist/find-last.d.cts +2 -0
- package/dist/find-last.d.ts +1 -0
- package/dist/find-last.mjs +16 -0
- package/dist/find.cjs +21 -0
- package/dist/find.d.cts +2 -0
- package/dist/find.d.ts +1 -0
- package/dist/find.mjs +21 -0
- package/dist/first.cjs +10 -0
- package/dist/first.d.cts +2 -0
- package/dist/first.d.ts +1 -0
- package/dist/first.mjs +10 -0
- package/dist/flatten-fully.cjs +9 -0
- package/dist/flatten-fully.d.cts +2 -0
- package/dist/flatten-fully.d.ts +1 -0
- package/dist/flatten-fully.mjs +9 -0
- package/dist/flatten-once.cjs +9 -0
- package/dist/flatten-once.d.cts +2 -0
- package/dist/flatten-once.d.ts +1 -0
- package/dist/flatten-once.mjs +9 -0
- package/dist/flatten-to-depth.cjs +15 -0
- package/dist/flatten-to-depth.d.cts +2 -0
- package/dist/flatten-to-depth.d.ts +1 -0
- package/dist/flatten-to-depth.mjs +15 -0
- package/dist/for-each.cjs +22 -0
- package/dist/for-each.d.cts +2 -0
- package/dist/for-each.d.ts +1 -0
- package/dist/for-each.mjs +22 -0
- package/dist/get-at-path.cjs +11 -0
- package/dist/get-at-path.d.cts +2 -0
- package/dist/get-at-path.d.ts +1 -0
- package/dist/get-at-path.mjs +11 -0
- package/dist/get-average-value.cjs +19 -0
- package/dist/get-average-value.d.cts +2 -0
- package/dist/get-average-value.d.ts +1 -0
- package/dist/get-average-value.mjs +19 -0
- package/dist/get-common-values.cjs +31 -0
- package/dist/get-common-values.d.cts +2 -0
- package/dist/get-common-values.d.ts +1 -0
- package/dist/get-common-values.mjs +31 -0
- package/dist/get-exclusive-values.cjs +41 -0
- package/dist/get-exclusive-values.d.cts +2 -0
- package/dist/get-exclusive-values.d.ts +1 -0
- package/dist/get-exclusive-values.mjs +41 -0
- package/dist/get-keys.cjs +23 -0
- package/dist/get-keys.d.cts +2 -0
- package/dist/get-keys.d.ts +1 -0
- package/dist/get-keys.mjs +23 -0
- package/dist/get-max-value.cjs +16 -0
- package/dist/get-max-value.d.cts +2 -0
- package/dist/get-max-value.d.ts +1 -0
- package/dist/get-max-value.mjs +16 -0
- package/dist/get-min-value.cjs +16 -0
- package/dist/get-min-value.d.cts +2 -0
- package/dist/get-min-value.d.ts +1 -0
- package/dist/get-min-value.mjs +16 -0
- package/dist/get-random-value.cjs +18 -0
- package/dist/get-random-value.d.cts +2 -0
- package/dist/get-random-value.d.ts +1 -0
- package/dist/get-random-value.mjs +18 -0
- package/dist/get-size.cjs +28 -0
- package/dist/get-size.d.cts +2 -0
- package/dist/get-size.d.ts +1 -0
- package/dist/get-size.mjs +28 -0
- package/dist/get-value-at-map-key.cjs +8 -0
- package/dist/get-value-at-map-key.d.cts +2 -0
- package/dist/get-value-at-map-key.d.ts +1 -0
- package/dist/get-value-at-map-key.mjs +8 -0
- package/dist/get-values.cjs +22 -0
- package/dist/get-values.d.cts +2 -0
- package/dist/get-values.d.ts +1 -0
- package/dist/get-values.mjs +22 -0
- package/dist/get.cjs +10 -0
- package/dist/get.d.cts +2 -0
- package/dist/get.d.ts +1 -0
- package/dist/get.mjs +10 -0
- package/dist/greater-than-or-equal-to.cjs +13 -0
- package/dist/greater-than-or-equal-to.d.cts +2 -0
- package/dist/greater-than-or-equal-to.d.ts +1 -0
- package/dist/greater-than-or-equal-to.mjs +13 -0
- package/dist/greater-than.cjs +13 -0
- package/dist/greater-than.d.cts +2 -0
- package/dist/greater-than.d.ts +1 -0
- package/dist/greater-than.mjs +13 -0
- package/dist/group-by.cjs +28 -0
- package/dist/group-by.d.cts +2 -0
- package/dist/group-by.d.ts +1 -0
- package/dist/group-by.mjs +28 -0
- package/dist/index.cjs +160 -0
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +158 -0
- package/dist/internal/contains-type-to-fn.cjs +33 -0
- package/dist/internal/contains-type-to-fn.mjs +33 -0
- package/dist/internal/get-at-path.cjs +12 -0
- package/dist/internal/get-at-path.mjs +12 -0
- package/dist/internal/validate-prune-arg.cjs +43 -0
- package/dist/internal/validate-prune-arg.mjs +43 -0
- package/dist/invert.cjs +29 -0
- package/dist/invert.d.cts +2 -0
- package/dist/invert.d.ts +1 -0
- package/dist/invert.mjs +29 -0
- package/dist/invoke-with.cjs +11 -0
- package/dist/invoke-with.d.cts +2 -0
- package/dist/invoke-with.d.ts +1 -0
- package/dist/invoke-with.mjs +11 -0
- package/dist/is-after.cjs +13 -0
- package/dist/is-after.d.cts +2 -0
- package/dist/is-after.d.ts +1 -0
- package/dist/is-after.mjs +13 -0
- package/dist/is-at-or-after.cjs +13 -0
- package/dist/is-at-or-after.d.cts +2 -0
- package/dist/is-at-or-after.d.ts +1 -0
- package/dist/is-at-or-after.mjs +13 -0
- package/dist/is-at-or-before.cjs +13 -0
- package/dist/is-at-or-before.d.cts +2 -0
- package/dist/is-at-or-before.d.ts +1 -0
- package/dist/is-at-or-before.mjs +13 -0
- package/dist/is-before.cjs +13 -0
- package/dist/is-before.d.cts +2 -0
- package/dist/is-before.d.ts +1 -0
- package/dist/is-before.mjs +13 -0
- package/dist/is-empty.cjs +28 -0
- package/dist/is-empty.d.cts +2 -0
- package/dist/is-empty.d.ts +1 -0
- package/dist/is-empty.mjs +28 -0
- package/dist/is-falsey.cjs +3 -0
- package/dist/is-falsey.d.cts +2 -0
- package/dist/is-falsey.d.ts +1 -0
- package/dist/is-falsey.mjs +3 -0
- package/dist/is-laden.cjs +28 -0
- package/dist/is-laden.d.cts +2 -0
- package/dist/is-laden.d.ts +1 -0
- package/dist/is-laden.mjs +28 -0
- package/dist/is-truthy.cjs +3 -0
- package/dist/is-truthy.d.cts +2 -0
- package/dist/is-truthy.d.ts +1 -0
- package/dist/is-truthy.mjs +3 -0
- package/dist/join-values.cjs +18 -0
- package/dist/join-values.d.cts +2 -0
- package/dist/join-values.d.ts +1 -0
- package/dist/join-values.mjs +18 -0
- package/dist/keep-first-while.cjs +18 -0
- package/dist/keep-first-while.d.cts +2 -0
- package/dist/keep-first-while.d.ts +1 -0
- package/dist/keep-first-while.mjs +18 -0
- package/dist/keep-first.cjs +14 -0
- package/dist/keep-first.d.cts +2 -0
- package/dist/keep-first.d.ts +1 -0
- package/dist/keep-first.mjs +14 -0
- package/dist/keep-last-while.cjs +18 -0
- package/dist/keep-last-while.d.cts +2 -0
- package/dist/keep-last-while.d.ts +1 -0
- package/dist/keep-last-while.mjs +18 -0
- package/dist/keep-last.cjs +14 -0
- package/dist/keep-last.d.cts +2 -0
- package/dist/keep-last.d.ts +1 -0
- package/dist/keep-last.mjs +14 -0
- package/dist/keep-range.cjs +14 -0
- package/dist/keep-range.d.cts +2 -0
- package/dist/keep-range.d.ts +1 -0
- package/dist/keep-range.mjs +14 -0
- package/dist/keep-when.cjs +54 -0
- package/dist/keep-when.d.cts +2 -0
- package/dist/keep-when.d.ts +1 -0
- package/dist/keep-when.mjs +54 -0
- package/dist/keep.cjs +63 -0
- package/dist/keep.d.cts +2 -0
- package/dist/keep.d.ts +1 -0
- package/dist/keep.mjs +63 -0
- package/dist/last.cjs +10 -0
- package/dist/last.d.cts +2 -0
- package/dist/last.d.ts +1 -0
- package/dist/last.mjs +10 -0
- package/dist/less-than-or-equal-to.cjs +13 -0
- package/dist/less-than-or-equal-to.d.cts +2 -0
- package/dist/less-than-or-equal-to.d.ts +1 -0
- package/dist/less-than-or-equal-to.mjs +13 -0
- package/dist/less-than.cjs +13 -0
- package/dist/less-than.d.cts +2 -0
- package/dist/less-than.d.ts +1 -0
- package/dist/less-than.mjs +13 -0
- package/dist/m-append-all.cjs +14 -0
- package/dist/m-append-all.d.cts +2 -0
- package/dist/m-append-all.d.ts +1 -0
- package/dist/m-append-all.mjs +14 -0
- package/dist/m-append-one.cjs +10 -0
- package/dist/m-append-one.d.cts +2 -0
- package/dist/m-append-one.d.ts +1 -0
- package/dist/m-append-one.mjs +10 -0
- package/dist/m-assign-defaults.cjs +51 -0
- package/dist/m-assign-defaults.d.cts +2 -0
- package/dist/m-assign-defaults.d.ts +1 -0
- package/dist/m-assign-defaults.mjs +51 -0
- package/dist/m-assign-overrides.cjs +47 -0
- package/dist/m-assign-overrides.d.cts +2 -0
- package/dist/m-assign-overrides.d.ts +1 -0
- package/dist/m-assign-overrides.mjs +47 -0
- package/dist/m-discard-first-while.cjs +19 -0
- package/dist/m-discard-first-while.d.cts +2 -0
- package/dist/m-discard-first-while.d.ts +1 -0
- package/dist/m-discard-first-while.mjs +19 -0
- package/dist/m-discard-first.cjs +16 -0
- package/dist/m-discard-first.d.cts +2 -0
- package/dist/m-discard-first.d.ts +1 -0
- package/dist/m-discard-first.mjs +16 -0
- package/dist/m-discard-last-while.cjs +20 -0
- package/dist/m-discard-last-while.d.cts +2 -0
- package/dist/m-discard-last-while.d.ts +1 -0
- package/dist/m-discard-last-while.mjs +20 -0
- package/dist/m-discard-last.cjs +16 -0
- package/dist/m-discard-last.d.cts +2 -0
- package/dist/m-discard-last.d.ts +1 -0
- package/dist/m-discard-last.mjs +16 -0
- package/dist/m-discard-range.cjs +17 -0
- package/dist/m-discard-range.d.cts +2 -0
- package/dist/m-discard-range.d.ts +1 -0
- package/dist/m-discard-range.mjs +17 -0
- package/dist/m-fill-range-with.cjs +17 -0
- package/dist/m-fill-range-with.d.cts +2 -0
- package/dist/m-fill-range-with.d.ts +1 -0
- package/dist/m-fill-range-with.mjs +17 -0
- package/dist/m-fill-with.cjs +32 -0
- package/dist/m-fill-with.d.cts +2 -0
- package/dist/m-fill-with.d.ts +1 -0
- package/dist/m-fill-with.mjs +32 -0
- package/dist/m-keep-first-while.cjs +19 -0
- package/dist/m-keep-first-while.d.cts +2 -0
- package/dist/m-keep-first-while.d.ts +1 -0
- package/dist/m-keep-first-while.mjs +19 -0
- package/dist/m-keep-first.cjs +14 -0
- package/dist/m-keep-first.d.cts +2 -0
- package/dist/m-keep-first.d.ts +1 -0
- package/dist/m-keep-first.mjs +14 -0
- package/dist/m-keep-last-while.cjs +19 -0
- package/dist/m-keep-last-while.d.cts +2 -0
- package/dist/m-keep-last-while.d.ts +1 -0
- package/dist/m-keep-last-while.mjs +19 -0
- package/dist/m-keep-last.cjs +14 -0
- package/dist/m-keep-last.d.cts +2 -0
- package/dist/m-keep-last.d.ts +1 -0
- package/dist/m-keep-last.mjs +14 -0
- package/dist/m-keep-range.cjs +18 -0
- package/dist/m-keep-range.d.cts +2 -0
- package/dist/m-keep-range.d.ts +1 -0
- package/dist/m-keep-range.mjs +18 -0
- package/dist/m-map-values.cjs +47 -0
- package/dist/m-map-values.d.cts +2 -0
- package/dist/m-map-values.d.ts +1 -0
- package/dist/m-map-values.mjs +47 -0
- package/dist/m-omit.cjs +62 -0
- package/dist/m-omit.d.cts +2 -0
- package/dist/m-omit.d.ts +1 -0
- package/dist/m-omit.mjs +62 -0
- package/dist/m-order.cjs +13 -0
- package/dist/m-order.d.cts +2 -0
- package/dist/m-order.d.ts +1 -0
- package/dist/m-order.mjs +13 -0
- package/dist/m-pick.cjs +67 -0
- package/dist/m-pick.d.cts +2 -0
- package/dist/m-pick.d.ts +1 -0
- package/dist/m-pick.mjs +67 -0
- package/dist/m-prepend-all.cjs +14 -0
- package/dist/m-prepend-all.d.cts +2 -0
- package/dist/m-prepend-all.d.ts +1 -0
- package/dist/m-prepend-all.mjs +14 -0
- package/dist/m-prepend-one.cjs +10 -0
- package/dist/m-prepend-one.d.cts +2 -0
- package/dist/m-prepend-one.d.ts +1 -0
- package/dist/m-prepend-one.mjs +10 -0
- package/dist/m-reverse.cjs +8 -0
- package/dist/m-reverse.d.cts +2 -0
- package/dist/m-reverse.d.ts +1 -0
- package/dist/m-reverse.mjs +8 -0
- package/dist/m-set-at-path.cjs +40 -0
- package/dist/m-set-at-path.d.cts +2 -0
- package/dist/m-set-at-path.d.ts +1 -0
- package/dist/m-set-at-path.mjs +40 -0
- package/dist/m-set.cjs +21 -0
- package/dist/m-set.d.cts +2 -0
- package/dist/m-set.d.ts +1 -0
- package/dist/m-set.mjs +21 -0
- package/dist/m-shuffle.cjs +20 -0
- package/dist/m-shuffle.d.cts +2 -0
- package/dist/m-shuffle.d.ts +1 -0
- package/dist/m-shuffle.mjs +20 -0
- package/dist/m-update.cjs +68 -0
- package/dist/m-update.d.cts +2 -0
- package/dist/m-update.d.ts +1 -0
- package/dist/m-update.mjs +68 -0
- package/dist/map-keys.cjs +36 -0
- package/dist/map-keys.d.cts +2 -0
- package/dist/map-keys.d.ts +1 -0
- package/dist/map-keys.mjs +36 -0
- package/dist/map-values.cjs +50 -0
- package/dist/map-values.d.cts +2 -0
- package/dist/map-values.d.ts +1 -0
- package/dist/map-values.mjs +50 -0
- package/dist/multiply-by.cjs +13 -0
- package/dist/multiply-by.d.cts +2 -0
- package/dist/multiply-by.d.ts +1 -0
- package/dist/multiply-by.mjs +13 -0
- package/dist/negate.cjs +9 -0
- package/dist/negate.d.cts +2 -0
- package/dist/negate.d.ts +1 -0
- package/dist/negate.mjs +9 -0
- package/dist/number-is-between.cjs +33 -0
- package/dist/number-is-between.d.cts +2 -0
- package/dist/number-is-between.d.ts +1 -0
- package/dist/number-is-between.mjs +33 -0
- package/dist/omit.cjs +52 -0
- package/dist/omit.d.cts +2 -0
- package/dist/omit.d.ts +1 -0
- package/dist/omit.mjs +52 -0
- package/dist/order.cjs +13 -0
- package/dist/order.d.cts +2 -0
- package/dist/order.d.ts +1 -0
- package/dist/order.mjs +13 -0
- package/dist/p-all.cjs +23 -0
- package/dist/p-all.d.cts +2 -0
- package/dist/p-all.d.ts +1 -0
- package/dist/p-all.mjs +23 -0
- package/dist/p-any.cjs +23 -0
- package/dist/p-any.d.cts +2 -0
- package/dist/p-any.d.ts +1 -0
- package/dist/p-any.mjs +23 -0
- package/dist/p-compose.cjs +18 -0
- package/dist/p-compose.d.cts +2 -0
- package/dist/p-compose.d.ts +1 -0
- package/dist/p-compose.mjs +18 -0
- package/dist/p-discard-when.cjs +64 -0
- package/dist/p-discard-when.d.cts +2 -0
- package/dist/p-discard-when.d.ts +1 -0
- package/dist/p-discard-when.mjs +64 -0
- package/dist/p-find.cjs +21 -0
- package/dist/p-find.d.cts +2 -0
- package/dist/p-find.d.ts +1 -0
- package/dist/p-find.mjs +21 -0
- package/dist/p-for-each.cjs +21 -0
- package/dist/p-for-each.d.cts +2 -0
- package/dist/p-for-each.d.ts +1 -0
- package/dist/p-for-each.mjs +21 -0
- package/dist/p-keep-when.cjs +64 -0
- package/dist/p-keep-when.d.cts +2 -0
- package/dist/p-keep-when.d.ts +1 -0
- package/dist/p-keep-when.mjs +64 -0
- package/dist/p-map-values.cjs +57 -0
- package/dist/p-map-values.d.cts +2 -0
- package/dist/p-map-values.d.ts +1 -0
- package/dist/p-map-values.mjs +57 -0
- package/dist/p-pass-through.cjs +12 -0
- package/dist/p-pass-through.d.cts +2 -0
- package/dist/p-pass-through.d.ts +1 -0
- package/dist/p-pass-through.mjs +12 -0
- package/dist/p-resolve-values.cjs +43 -0
- package/dist/p-resolve-values.d.cts +2 -0
- package/dist/p-resolve-values.d.ts +1 -0
- package/dist/p-resolve-values.mjs +43 -0
- package/dist/p-wait-ms.cjs +8 -0
- package/dist/p-wait-ms.d.cts +2 -0
- package/dist/p-wait-ms.d.ts +1 -0
- package/dist/p-wait-ms.mjs +8 -0
- package/dist/pass-through.cjs +9 -0
- package/dist/pass-through.d.cts +2 -0
- package/dist/pass-through.d.ts +1 -0
- package/dist/pass-through.mjs +9 -0
- package/dist/peek.cjs +13 -0
- package/dist/peek.d.cts +2 -0
- package/dist/peek.d.ts +1 -0
- package/dist/peek.mjs +13 -0
- package/dist/pick.cjs +50 -0
- package/dist/pick.d.cts +2 -0
- package/dist/pick.d.ts +1 -0
- package/dist/pick.mjs +50 -0
- package/dist/prepend-all.cjs +13 -0
- package/dist/prepend-all.d.cts +2 -0
- package/dist/prepend-all.d.ts +1 -0
- package/dist/prepend-all.mjs +13 -0
- package/dist/prepend-one.cjs +9 -0
- package/dist/prepend-one.d.cts +2 -0
- package/dist/prepend-one.d.ts +1 -0
- package/dist/prepend-one.mjs +9 -0
- package/dist/prepend.cjs +13 -0
- package/dist/prepend.d.cts +2 -0
- package/dist/prepend.d.ts +1 -0
- package/dist/prepend.mjs +13 -0
- package/dist/prune-end.cjs +18 -0
- package/dist/prune-end.d.cts +2 -0
- package/dist/prune-end.d.ts +1 -0
- package/dist/prune-end.mjs +18 -0
- package/dist/prune-start.cjs +18 -0
- package/dist/prune-start.d.cts +2 -0
- package/dist/prune-start.d.ts +1 -0
- package/dist/prune-start.mjs +18 -0
- package/dist/prune.cjs +21 -0
- package/dist/prune.d.cts +2 -0
- package/dist/prune.d.ts +1 -0
- package/dist/prune.mjs +21 -0
- package/dist/randomly-keep.cjs +83 -0
- package/dist/randomly-keep.d.cts +2 -0
- package/dist/randomly-keep.d.ts +1 -0
- package/dist/randomly-keep.mjs +83 -0
- package/dist/replace-all-matches.cjs +33 -0
- package/dist/replace-all-matches.d.cts +2 -0
- package/dist/replace-all-matches.d.ts +1 -0
- package/dist/replace-all-matches.mjs +33 -0
- package/dist/replace-first-match.cjs +38 -0
- package/dist/replace-first-match.d.cts +2 -0
- package/dist/replace-first-match.d.ts +1 -0
- package/dist/replace-first-match.mjs +38 -0
- package/dist/return-first-arg.cjs +4 -0
- package/dist/return-first-arg.d.cts +2 -0
- package/dist/return-first-arg.d.ts +1 -0
- package/dist/return-first-arg.mjs +4 -0
- package/dist/return-undefined.cjs +4 -0
- package/dist/return-undefined.d.cts +2 -0
- package/dist/return-undefined.d.ts +1 -0
- package/dist/return-undefined.mjs +4 -0
- package/dist/reverse.cjs +8 -0
- package/dist/reverse.d.cts +2 -0
- package/dist/reverse.d.ts +1 -0
- package/dist/reverse.mjs +8 -0
- package/dist/round-to-nearest.cjs +51 -0
- package/dist/round-to-nearest.d.cts +2 -0
- package/dist/round-to-nearest.d.ts +1 -0
- package/dist/round-to-nearest.mjs +51 -0
- package/dist/set.cjs +51 -0
- package/dist/set.d.cts +2 -0
- package/dist/set.d.ts +1 -0
- package/dist/set.mjs +51 -0
- package/dist/shuffle.cjs +21 -0
- package/dist/shuffle.d.cts +2 -0
- package/dist/shuffle.d.ts +1 -0
- package/dist/shuffle.mjs +21 -0
- package/dist/split-every.cjs +31 -0
- package/dist/split-every.d.cts +2 -0
- package/dist/split-every.d.ts +1 -0
- package/dist/split-every.mjs +31 -0
- package/dist/split.cjs +14 -0
- package/dist/split.d.cts +2 -0
- package/dist/split.d.ts +1 -0
- package/dist/split.mjs +14 -0
- package/dist/starts-with.cjs +13 -0
- package/dist/starts-with.d.cts +2 -0
- package/dist/starts-with.d.ts +1 -0
- package/dist/starts-with.mjs +13 -0
- package/dist/strict-equals.cjs +3 -0
- package/dist/strict-equals.d.cts +2 -0
- package/dist/strict-equals.d.ts +1 -0
- package/dist/strict-equals.mjs +3 -0
- package/dist/subtract.cjs +13 -0
- package/dist/subtract.d.cts +2 -0
- package/dist/subtract.d.ts +1 -0
- package/dist/subtract.mjs +13 -0
- package/dist/sum-values.cjs +20 -0
- package/dist/sum-values.d.cts +2 -0
- package/dist/sum-values.d.ts +1 -0
- package/dist/sum-values.mjs +20 -0
- package/dist/swap-first-two-args.cjs +15 -0
- package/dist/swap-first-two-args.d.cts +2 -0
- package/dist/swap-first-two-args.d.ts +1 -0
- package/dist/swap-first-two-args.mjs +15 -0
- package/dist/transpose.cjs +46 -0
- package/dist/transpose.d.cts +2 -0
- package/dist/transpose.d.ts +1 -0
- package/dist/transpose.mjs +46 -0
- package/dist/truncate-to-n-chars.cjs +17 -0
- package/dist/truncate-to-n-chars.d.cts +2 -0
- package/dist/truncate-to-n-chars.d.ts +1 -0
- package/dist/truncate-to-n-chars.mjs +17 -0
- package/dist/truncate-to-n-lines.cjs +58 -0
- package/dist/truncate-to-n-lines.d.cts +2 -0
- package/dist/truncate-to-n-lines.d.ts +1 -0
- package/dist/truncate-to-n-lines.mjs +58 -0
- package/dist/update.cjs +74 -0
- package/dist/update.d.cts +2 -0
- package/dist/update.d.ts +1 -0
- package/dist/update.mjs +74 -0
- package/dist/with-dates-ascending.cjs +3 -0
- package/dist/with-dates-ascending.d.cts +2 -0
- package/dist/with-dates-ascending.d.ts +1 -0
- package/dist/with-dates-ascending.mjs +3 -0
- package/dist/with-dates-descending.cjs +3 -0
- package/dist/with-dates-descending.d.cts +2 -0
- package/dist/with-dates-descending.d.ts +1 -0
- package/dist/with-dates-descending.mjs +3 -0
- package/dist/with-numbers-ascending.cjs +3 -0
- package/dist/with-numbers-ascending.d.cts +2 -0
- package/dist/with-numbers-ascending.d.ts +1 -0
- package/dist/with-numbers-ascending.mjs +3 -0
- package/dist/with-numbers-descending.cjs +3 -0
- package/dist/with-numbers-descending.d.cts +2 -0
- package/dist/with-numbers-descending.d.ts +1 -0
- package/dist/with-numbers-descending.mjs +3 -0
- package/dist/with-strings-ascending.cjs +4 -0
- package/dist/with-strings-ascending.d.cts +2 -0
- package/dist/with-strings-ascending.d.ts +1 -0
- package/dist/with-strings-ascending.mjs +4 -0
- package/dist/with-strings-descending.cjs +4 -0
- package/dist/with-strings-descending.d.cts +2 -0
- package/dist/with-strings-descending.d.ts +1 -0
- package/dist/with-strings-descending.mjs +4 -0
- package/license.txt +41 -0
- package/package.json +46 -0
- package/readme.md +108 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
|
|
2
|
+
|
|
3
|
+
const mPrependAll = prependedValues => {
|
|
4
|
+
assertArgIsType(prependedValues, 'prependedValues', 'array', 'mPrependAll')
|
|
5
|
+
|
|
6
|
+
return anArray => {
|
|
7
|
+
assertArgIsType(anArray, 'anArray', 'array', 'mPrependAll')
|
|
8
|
+
|
|
9
|
+
anArray.unshift(...prependedValues)
|
|
10
|
+
return anArray
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
module.exports = mPrependAll
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/m-prepend-all'
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
|
|
2
|
+
|
|
3
|
+
const mPrependAll = prependedValues => {
|
|
4
|
+
assertArgIsType(prependedValues, 'prependedValues', 'array', 'mPrependAll')
|
|
5
|
+
|
|
6
|
+
return anArray => {
|
|
7
|
+
assertArgIsType(anArray, 'anArray', 'array', 'mPrependAll')
|
|
8
|
+
|
|
9
|
+
anArray.unshift(...prependedValues)
|
|
10
|
+
return anArray
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default mPrependAll
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
|
|
2
|
+
|
|
3
|
+
const mPrependOne = el => anArray => {
|
|
4
|
+
assertArgIsType(anArray, 'anArray', 'array', 'mPrependOne')
|
|
5
|
+
|
|
6
|
+
anArray.unshift(el)
|
|
7
|
+
return anArray
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
module.exports = mPrependOne
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/m-prepend-one'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/m-reverse'
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const assertArgIsArrayOfAcceptedTypes = require('@common-fp/shared-internals/assert-arg-is-array-of-accepted-types')
|
|
2
|
+
const ct = require('@common-fp/shared-internals/common-types')
|
|
3
|
+
|
|
4
|
+
const mSetAtPath = (path, value) => {
|
|
5
|
+
assertArgIsArrayOfAcceptedTypes(path, 'path', ct.propertyKey, 'mSetAtPath')
|
|
6
|
+
if (!path.length) {
|
|
7
|
+
throw new Error("mSetAtPath requries 'path' to be a non-empty array")
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
return anything => {
|
|
11
|
+
const initialPath = path.slice(0, -1)
|
|
12
|
+
let obj = anything
|
|
13
|
+
|
|
14
|
+
for (const key of initialPath) {
|
|
15
|
+
obj = obj?.[key]
|
|
16
|
+
if (obj === undefined) {
|
|
17
|
+
const err = new Error(
|
|
18
|
+
"mSetAtPath requires path to exist on 'anything'. Arguments are assigned to this error to aid in debugging."
|
|
19
|
+
)
|
|
20
|
+
Object.assign(err, { arguments: { path, value, anything } })
|
|
21
|
+
throw err
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const lastKey = path[path.length - 1]
|
|
26
|
+
try {
|
|
27
|
+
obj[lastKey] = value
|
|
28
|
+
} catch (innerError) {
|
|
29
|
+
const err = new Error(
|
|
30
|
+
'mSetAtPath requires the property at path to be assignable. See error properties for more info.'
|
|
31
|
+
)
|
|
32
|
+
Object.assign(err, { innerError, arguments: { path, value, anything } })
|
|
33
|
+
throw err
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return anything
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = mSetAtPath
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/m-set-at-path'
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import assertArgIsArrayOfAcceptedTypes from '@common-fp/shared-internals/assert-arg-is-array-of-accepted-types'
|
|
2
|
+
import * as ct from '@common-fp/shared-internals/common-types'
|
|
3
|
+
|
|
4
|
+
const mSetAtPath = (path, value) => {
|
|
5
|
+
assertArgIsArrayOfAcceptedTypes(path, 'path', ct.propertyKey, 'mSetAtPath')
|
|
6
|
+
if (!path.length) {
|
|
7
|
+
throw new Error("mSetAtPath requries 'path' to be a non-empty array")
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
return anything => {
|
|
11
|
+
const initialPath = path.slice(0, -1)
|
|
12
|
+
let obj = anything
|
|
13
|
+
|
|
14
|
+
for (const key of initialPath) {
|
|
15
|
+
obj = obj?.[key]
|
|
16
|
+
if (obj === undefined) {
|
|
17
|
+
const err = new Error(
|
|
18
|
+
"mSetAtPath requires path to exist on 'anything'. Arguments are assigned to this error to aid in debugging."
|
|
19
|
+
)
|
|
20
|
+
Object.assign(err, { arguments: { path, value, anything } })
|
|
21
|
+
throw err
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const lastKey = path[path.length - 1]
|
|
26
|
+
try {
|
|
27
|
+
obj[lastKey] = value
|
|
28
|
+
} catch (innerError) {
|
|
29
|
+
const err = new Error(
|
|
30
|
+
'mSetAtPath requires the property at path to be assignable. See error properties for more info.'
|
|
31
|
+
)
|
|
32
|
+
Object.assign(err, { innerError, arguments: { path, value, anything } })
|
|
33
|
+
throw err
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return anything
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export default mSetAtPath
|
package/dist/m-set.cjs
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const assertArgIsOneOfType = require('@common-fp/shared-internals/assert-arg-is-one-of-type')
|
|
2
|
+
const ct = require('@common-fp/shared-internals/common-types')
|
|
3
|
+
|
|
4
|
+
const mSet = (key, value) => {
|
|
5
|
+
assertArgIsOneOfType(key, 'key', ct.propertyKey, 'mSet')
|
|
6
|
+
|
|
7
|
+
return anything => {
|
|
8
|
+
try {
|
|
9
|
+
anything[key] = value
|
|
10
|
+
} catch (innerError) {
|
|
11
|
+
const err = new Error(
|
|
12
|
+
'mSet requires key to be assignable. See error properties for more info.'
|
|
13
|
+
)
|
|
14
|
+
Object.assign(err, { innerError, arguments: { key, value, anything } })
|
|
15
|
+
throw err
|
|
16
|
+
}
|
|
17
|
+
return anything
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
module.exports = mSet
|
package/dist/m-set.d.cts
ADDED
package/dist/m-set.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/m-set'
|
package/dist/m-set.mjs
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import assertArgIsOneOfType from '@common-fp/shared-internals/assert-arg-is-one-of-type'
|
|
2
|
+
import * as ct from '@common-fp/shared-internals/common-types'
|
|
3
|
+
|
|
4
|
+
const mSet = (key, value) => {
|
|
5
|
+
assertArgIsOneOfType(key, 'key', ct.propertyKey, 'mSet')
|
|
6
|
+
|
|
7
|
+
return anything => {
|
|
8
|
+
try {
|
|
9
|
+
anything[key] = value
|
|
10
|
+
} catch (innerError) {
|
|
11
|
+
const err = new Error(
|
|
12
|
+
'mSet requires key to be assignable. See error properties for more info.'
|
|
13
|
+
)
|
|
14
|
+
Object.assign(err, { innerError, arguments: { key, value, anything } })
|
|
15
|
+
throw err
|
|
16
|
+
}
|
|
17
|
+
return anything
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default mSet
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
|
|
2
|
+
const getRandomInt = require('@common-fp/shared-internals/get-random-int')
|
|
3
|
+
|
|
4
|
+
const mShuffle = anArray => {
|
|
5
|
+
assertArgIsType(anArray, 'anArray', 'array', 'mShuffle')
|
|
6
|
+
|
|
7
|
+
const len = anArray.length
|
|
8
|
+
for (let i = 0; i < len - 1; i += 1) {
|
|
9
|
+
const randomI = getRandomInt(i, len - 1)
|
|
10
|
+
if (randomI === i) continue
|
|
11
|
+
|
|
12
|
+
const tmp = anArray[i]
|
|
13
|
+
anArray[i] = anArray[randomI]
|
|
14
|
+
anArray[randomI] = tmp
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return anArray
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
module.exports = mShuffle
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/m-shuffle'
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
|
|
2
|
+
import getRandomInt from '@common-fp/shared-internals/get-random-int'
|
|
3
|
+
|
|
4
|
+
const mShuffle = anArray => {
|
|
5
|
+
assertArgIsType(anArray, 'anArray', 'array', 'mShuffle')
|
|
6
|
+
|
|
7
|
+
const len = anArray.length
|
|
8
|
+
for (let i = 0; i < len - 1; i += 1) {
|
|
9
|
+
const randomI = getRandomInt(i, len - 1)
|
|
10
|
+
if (randomI === i) continue
|
|
11
|
+
|
|
12
|
+
const tmp = anArray[i]
|
|
13
|
+
anArray[i] = anArray[randomI]
|
|
14
|
+
anArray[randomI] = tmp
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return anArray
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export default mShuffle
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
const aOrAn = require('@common-fp/shared-internals/a-or-an')
|
|
2
|
+
const assertArgHasValuesOfType = require('@common-fp/shared-internals/assert-arg-has-values-of-type')
|
|
3
|
+
const assertArgTypeIsOneOf = require('@common-fp/shared-internals/assert-arg-type-is-one-of')
|
|
4
|
+
const ct = require('@common-fp/shared-internals/common-types')
|
|
5
|
+
const getIterator = require('@common-fp/shared-internals/get-iterator')
|
|
6
|
+
const getType = require('@common-fp/shared-internals/get-type')
|
|
7
|
+
|
|
8
|
+
const mUpdate = mapperFns => {
|
|
9
|
+
const mapperType = getType(mapperFns)
|
|
10
|
+
assertArgTypeIsOneOf(mapperType, 'mapperFns', ct.entryCollection, 'mUpdate')
|
|
11
|
+
assertArgHasValuesOfType(mapperFns, 'mapperFns', 'function', 'mUpdate')
|
|
12
|
+
|
|
13
|
+
return collection => {
|
|
14
|
+
const collType = getType(collection)
|
|
15
|
+
assertArgTypeIsOneOf(collType, 'collection', ct.entryCollection, 'mUpdate')
|
|
16
|
+
validateCollectionType(collType, mapperType)
|
|
17
|
+
const fn = typeToFn[collType]
|
|
18
|
+
const mapperFnsIterator = getIterator('entries', mapperFns)
|
|
19
|
+
return fn(collection, mapperFnsIterator)
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const typeToFn = {
|
|
24
|
+
array: mUpdate_array,
|
|
25
|
+
map: mUpdate_map,
|
|
26
|
+
object: mUpdate_object,
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function mUpdate_array(arr, mapperFnsIterator) {
|
|
30
|
+
for (const [key, fn] of mapperFnsIterator) {
|
|
31
|
+
if (Object.hasOwn(arr, key)) arr[key] = fn(arr[key], key, arr)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return arr
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function mUpdate_map(aMap, mapperFnsIterator) {
|
|
38
|
+
for (const [key, fn] of mapperFnsIterator) {
|
|
39
|
+
if (aMap.has(key)) aMap.set(key, fn(aMap.get(key), key, aMap))
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return aMap
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function mUpdate_object(obj, mapperFnsIterator) {
|
|
46
|
+
for (const [key, fn] of mapperFnsIterator) {
|
|
47
|
+
if (Object.hasOwn(obj, key)) obj[key] = fn(obj[key], key, obj)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return obj
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* If mapperFns is an array or map, then collection must match. This convention
|
|
55
|
+
* will prevent odd combinations like declaring an array of mappers intended for
|
|
56
|
+
* objects which happen to have number keys.
|
|
57
|
+
*
|
|
58
|
+
* Objects, on the other hand, will be the most common way to declare mappers
|
|
59
|
+
* - and should apply to array and map collections.
|
|
60
|
+
*/
|
|
61
|
+
function validateCollectionType(collType, mapperType) {
|
|
62
|
+
if (['array', 'map'].includes(mapperType) && collType !== mapperType) {
|
|
63
|
+
const msg = `mUpdate requires argument 'collection' to be ${aOrAn(mapperType)} since you passed ${aOrAn(mapperType)} for 'mapperFns'`
|
|
64
|
+
throw new Error(msg)
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
module.exports = mUpdate
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/m-update'
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import aOrAn from '@common-fp/shared-internals/a-or-an'
|
|
2
|
+
import assertArgHasValuesOfType from '@common-fp/shared-internals/assert-arg-has-values-of-type'
|
|
3
|
+
import assertArgTypeIsOneOf from '@common-fp/shared-internals/assert-arg-type-is-one-of'
|
|
4
|
+
import * as ct from '@common-fp/shared-internals/common-types'
|
|
5
|
+
import getIterator from '@common-fp/shared-internals/get-iterator'
|
|
6
|
+
import getType from '@common-fp/shared-internals/get-type'
|
|
7
|
+
|
|
8
|
+
const mUpdate = mapperFns => {
|
|
9
|
+
const mapperType = getType(mapperFns)
|
|
10
|
+
assertArgTypeIsOneOf(mapperType, 'mapperFns', ct.entryCollection, 'mUpdate')
|
|
11
|
+
assertArgHasValuesOfType(mapperFns, 'mapperFns', 'function', 'mUpdate')
|
|
12
|
+
|
|
13
|
+
return collection => {
|
|
14
|
+
const collType = getType(collection)
|
|
15
|
+
assertArgTypeIsOneOf(collType, 'collection', ct.entryCollection, 'mUpdate')
|
|
16
|
+
validateCollectionType(collType, mapperType)
|
|
17
|
+
const fn = typeToFn[collType]
|
|
18
|
+
const mapperFnsIterator = getIterator('entries', mapperFns)
|
|
19
|
+
return fn(collection, mapperFnsIterator)
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const typeToFn = {
|
|
24
|
+
array: mUpdate_array,
|
|
25
|
+
map: mUpdate_map,
|
|
26
|
+
object: mUpdate_object,
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function mUpdate_array(arr, mapperFnsIterator) {
|
|
30
|
+
for (const [key, fn] of mapperFnsIterator) {
|
|
31
|
+
if (Object.hasOwn(arr, key)) arr[key] = fn(arr[key], key, arr)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return arr
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function mUpdate_map(aMap, mapperFnsIterator) {
|
|
38
|
+
for (const [key, fn] of mapperFnsIterator) {
|
|
39
|
+
if (aMap.has(key)) aMap.set(key, fn(aMap.get(key), key, aMap))
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return aMap
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function mUpdate_object(obj, mapperFnsIterator) {
|
|
46
|
+
for (const [key, fn] of mapperFnsIterator) {
|
|
47
|
+
if (Object.hasOwn(obj, key)) obj[key] = fn(obj[key], key, obj)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return obj
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* If mapperFns is an array or map, then collection must match. This convention
|
|
55
|
+
* will prevent odd combinations like declaring an array of mappers intended for
|
|
56
|
+
* objects which happen to have number keys.
|
|
57
|
+
*
|
|
58
|
+
* Objects, on the other hand, will be the most common way to declare mappers
|
|
59
|
+
* - and should apply to array and map collections.
|
|
60
|
+
*/
|
|
61
|
+
function validateCollectionType(collType, mapperType) {
|
|
62
|
+
if (['array', 'map'].includes(mapperType) && collType !== mapperType) {
|
|
63
|
+
const msg = `mUpdate requires argument 'collection' to be ${aOrAn(mapperType)} since you passed ${aOrAn(mapperType)} for 'mapperFns'`
|
|
64
|
+
throw new Error(msg)
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export default mUpdate
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
|
|
2
|
+
const getFn = require('@common-fp/shared-internals/get-fn')
|
|
3
|
+
|
|
4
|
+
const mapKeys = mapperFn => {
|
|
5
|
+
assertArgIsType(mapperFn, 'mapperFn', 'function', 'mapKeys')
|
|
6
|
+
|
|
7
|
+
return collection => {
|
|
8
|
+
const fn = getFn(typeToFn, collection, 'collection', 'mapKeys')
|
|
9
|
+
return fn(collection, mapperFn)
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const typeToFn = {
|
|
14
|
+
map: mapKeys_map,
|
|
15
|
+
object: mapKeys_object,
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function mapKeys_map(aMap, mapperFn) {
|
|
19
|
+
const result = new Map()
|
|
20
|
+
|
|
21
|
+
for (const [key, val] of aMap) result.set(mapperFn(val, key, aMap), val)
|
|
22
|
+
|
|
23
|
+
return result
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function mapKeys_object(obj, mapperFn) {
|
|
27
|
+
const result = {}
|
|
28
|
+
|
|
29
|
+
for (const [key, val] of Object.entries(obj)) {
|
|
30
|
+
result[mapperFn(val, key, obj)] = val
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return result
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
module.exports = mapKeys
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/map-keys'
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
|
|
2
|
+
import getFn from '@common-fp/shared-internals/get-fn'
|
|
3
|
+
|
|
4
|
+
const mapKeys = mapperFn => {
|
|
5
|
+
assertArgIsType(mapperFn, 'mapperFn', 'function', 'mapKeys')
|
|
6
|
+
|
|
7
|
+
return collection => {
|
|
8
|
+
const fn = getFn(typeToFn, collection, 'collection', 'mapKeys')
|
|
9
|
+
return fn(collection, mapperFn)
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const typeToFn = {
|
|
14
|
+
map: mapKeys_map,
|
|
15
|
+
object: mapKeys_object,
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function mapKeys_map(aMap, mapperFn) {
|
|
19
|
+
const result = new Map()
|
|
20
|
+
|
|
21
|
+
for (const [key, val] of aMap) result.set(mapperFn(val, key, aMap), val)
|
|
22
|
+
|
|
23
|
+
return result
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function mapKeys_object(obj, mapperFn) {
|
|
27
|
+
const result = {}
|
|
28
|
+
|
|
29
|
+
for (const [key, val] of Object.entries(obj)) {
|
|
30
|
+
result[mapperFn(val, key, obj)] = val
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return result
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export default mapKeys
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
|
|
2
|
+
const getFn = require('@common-fp/shared-internals/get-fn')
|
|
3
|
+
|
|
4
|
+
const mapValues = mapperFn => {
|
|
5
|
+
assertArgIsType(mapperFn, 'mapperFn', 'function', 'mapValues')
|
|
6
|
+
|
|
7
|
+
return collection => {
|
|
8
|
+
const fn = getFn(typeToFn, collection, 'collection', 'mapValues')
|
|
9
|
+
return fn(collection, mapperFn)
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const typeToFn = {
|
|
14
|
+
array: mapValues_array,
|
|
15
|
+
map: mapValues_map,
|
|
16
|
+
object: mapValues_object,
|
|
17
|
+
set: mapValues_set,
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function mapValues_array(arr, mapperFn) {
|
|
21
|
+
return arr.map(mapperFn)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function mapValues_map(aMap, mapperFn) {
|
|
25
|
+
const result = new Map()
|
|
26
|
+
|
|
27
|
+
for (const [key, val] of aMap) result.set(key, mapperFn(val, key, aMap))
|
|
28
|
+
|
|
29
|
+
return result
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function mapValues_object(obj, mapperFn) {
|
|
33
|
+
const result = {}
|
|
34
|
+
|
|
35
|
+
for (const [key, val] of Object.entries(obj)) {
|
|
36
|
+
result[key] = mapperFn(val, key, obj)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return result
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function mapValues_set(aSet, mapperFn) {
|
|
43
|
+
const result = new Set()
|
|
44
|
+
|
|
45
|
+
for (const el of aSet) result.add(mapperFn(el, el, aSet))
|
|
46
|
+
|
|
47
|
+
return result
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
module.exports = mapValues
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/map-values'
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
|
|
2
|
+
import getFn from '@common-fp/shared-internals/get-fn'
|
|
3
|
+
|
|
4
|
+
const mapValues = mapperFn => {
|
|
5
|
+
assertArgIsType(mapperFn, 'mapperFn', 'function', 'mapValues')
|
|
6
|
+
|
|
7
|
+
return collection => {
|
|
8
|
+
const fn = getFn(typeToFn, collection, 'collection', 'mapValues')
|
|
9
|
+
return fn(collection, mapperFn)
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const typeToFn = {
|
|
14
|
+
array: mapValues_array,
|
|
15
|
+
map: mapValues_map,
|
|
16
|
+
object: mapValues_object,
|
|
17
|
+
set: mapValues_set,
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function mapValues_array(arr, mapperFn) {
|
|
21
|
+
return arr.map(mapperFn)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function mapValues_map(aMap, mapperFn) {
|
|
25
|
+
const result = new Map()
|
|
26
|
+
|
|
27
|
+
for (const [key, val] of aMap) result.set(key, mapperFn(val, key, aMap))
|
|
28
|
+
|
|
29
|
+
return result
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function mapValues_object(obj, mapperFn) {
|
|
33
|
+
const result = {}
|
|
34
|
+
|
|
35
|
+
for (const [key, val] of Object.entries(obj)) {
|
|
36
|
+
result[key] = mapperFn(val, key, obj)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return result
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function mapValues_set(aSet, mapperFn) {
|
|
43
|
+
const result = new Set()
|
|
44
|
+
|
|
45
|
+
for (const el of aSet) result.add(mapperFn(el, el, aSet))
|
|
46
|
+
|
|
47
|
+
return result
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export default mapValues
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const assertArgIsType = require('@common-fp/shared-internals/assert-arg-is-type')
|
|
2
|
+
|
|
3
|
+
const multiplyBy = n1 => {
|
|
4
|
+
assertArgIsType(n1, 'n1', 'number', 'multiplyBy')
|
|
5
|
+
|
|
6
|
+
return n2 => {
|
|
7
|
+
assertArgIsType(n2, 'n2', 'number', 'multiplyBy')
|
|
8
|
+
|
|
9
|
+
return n2 * n1
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
module.exports = multiplyBy
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/multiply-by'
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import assertArgIsType from '@common-fp/shared-internals/assert-arg-is-type'
|
|
2
|
+
|
|
3
|
+
const multiplyBy = n1 => {
|
|
4
|
+
assertArgIsType(n1, 'n1', 'number', 'multiplyBy')
|
|
5
|
+
|
|
6
|
+
return n2 => {
|
|
7
|
+
assertArgIsType(n2, 'n2', 'number', 'multiplyBy')
|
|
8
|
+
|
|
9
|
+
return n2 * n1
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export default multiplyBy
|