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,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 @@
|
|
|
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
|
package/dist/update.cjs
ADDED
|
@@ -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
|
package/dist/update.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/update'
|
package/dist/update.mjs
ADDED
|
@@ -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 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/with-dates-ascending'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/with-dates-descending'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/with-numbers-ascending'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/with-numbers-descending'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/with-strings-ascending'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@common-fp/common-fp-types/with-strings-descending'
|
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.
|