From d58924a333061e4be4623da980872d79c1e32b5f Mon Sep 17 00:00:00 2001 From: Yanick Champoux Date: Fri, 31 Jan 2025 12:50:51 -0500 Subject: [PATCH] add dist directory --- .gitignore | 1 - esm/constant.d.ts | 34 +++++++ esm/constant.d.ts.map | 1 + esm/constant.js | 38 ++++++++ esm/constant.js.map | 1 + esm/constant.test.d.ts | 2 + esm/constant.test.d.ts.map | 1 + esm/constant.test.js | 13 +++ esm/constant.test.js.map | 1 + esm/filter.d.ts | 4 + esm/filter.d.ts.map | 1 + esm/filter.js | 10 +++ esm/filter.js.map | 1 + esm/filter.test.d.ts | 2 + esm/filter.test.d.ts.map | 1 + esm/filter.test.js | 18 ++++ esm/filter.test.js.map | 1 + esm/freeze.d.ts | 19 ++++ esm/freeze.d.ts.map | 1 + esm/freeze.js | 55 ++++++++++++ esm/freeze.js.map | 1 + esm/freeze.test.d.ts | 2 + esm/freeze.test.d.ts.map | 1 + esm/freeze.test.js | 56 ++++++++++++ esm/freeze.test.js.map | 1 + esm/if.d.ts | 7 ++ esm/if.d.ts.map | 1 + esm/if.js | 8 ++ esm/if.js.map | 1 + esm/if.test.d.ts | 2 + esm/if.test.d.ts.map | 1 + esm/if.test.js | 27 ++++++ esm/if.test.js.map | 1 + esm/ifElse.d.ts | 8 ++ esm/ifElse.d.ts.map | 1 + esm/ifElse.js | 10 +++ esm/ifElse.js.map | 1 + esm/ifElse.test.d.ts | 2 + esm/ifElse.test.d.ts.map | 1 + esm/ifElse.test.js | 38 ++++++++ esm/ifElse.test.js.map | 1 + esm/index.d.ts | 43 +++++++++ esm/index.d.ts.map | 1 + esm/index.js | 41 +++++++++ esm/index.js.map | 1 + esm/is.d.ts | 7 ++ esm/is.d.ts.map | 1 + esm/is.js | 16 ++++ esm/is.js.map | 1 + esm/is.test.d.ts | 2 + esm/is.test.d.ts.map | 1 + esm/is.test.js | 47 ++++++++++ esm/is.test.js.map | 1 + esm/map.d.ts | 7 ++ esm/map.d.ts.map | 1 + esm/map.js | 19 ++++ esm/map.js.map | 1 + esm/map.test.d.ts | 2 + esm/map.test.d.ts.map | 1 + esm/map.test.js | 44 ++++++++++ esm/map.test.js.map | 1 + esm/mapIf.d.ts | 13 +++ esm/mapIf.d.ts.map | 1 + esm/mapIf.js | 14 +++ esm/mapIf.js.map | 1 + esm/mapIf.test.d.ts | 2 + esm/mapIf.test.d.ts.map | 1 + esm/mapIf.test.js | 20 +++++ esm/mapIf.test.js.map | 1 + esm/matches.d.ts | 7 ++ esm/matches.d.ts.map | 1 + esm/matches.js | 11 +++ esm/matches.js.map | 1 + esm/matches.test.d.ts | 2 + esm/matches.test.d.ts.map | 1 + esm/matches.test.js | 10 +++ esm/matches.test.js.map | 1 + esm/omit.d.ts | 7 ++ esm/omit.d.ts.map | 1 + esm/omit.js | 9 ++ esm/omit.js.map | 1 + esm/omit.test.d.ts | 2 + esm/omit.test.d.ts.map | 1 + esm/omit.test.js | 16 ++++ esm/omit.test.js.map | 1 + esm/omitBy.d.ts | 4 + esm/omitBy.d.ts.map | 1 + esm/omitBy.js | 10 +++ esm/omitBy.js.map | 1 + esm/omitBy.test.d.ts | 2 + esm/omitBy.test.d.ts.map | 1 + esm/omitBy.test.js | 17 ++++ esm/omitBy.test.js.map | 1 + esm/pick.d.ts | 7 ++ esm/pick.d.ts.map | 1 + esm/pick.js | 9 ++ esm/pick.js.map | 1 + esm/pick.test.d.ts | 2 + esm/pick.test.d.ts.map | 1 + esm/pick.test.js | 19 ++++ esm/pick.test.js.map | 1 + esm/pickBy.d.ts | 4 + esm/pickBy.d.ts.map | 1 + esm/pickBy.js | 10 +++ esm/pickBy.js.map | 1 + esm/pickBy.test.d.ts | 2 + esm/pickBy.test.d.ts.map | 1 + esm/pickBy.test.js | 18 ++++ esm/pickBy.test.js.map | 1 + esm/predicate.d.ts | 3 + esm/predicate.d.ts.map | 1 + esm/predicate.js | 9 ++ esm/predicate.js.map | 1 + esm/reject.d.ts | 4 + esm/reject.d.ts.map | 1 + esm/reject.js | 11 +++ esm/reject.js.map | 1 + esm/reject.test.d.ts | 2 + esm/reject.test.d.ts.map | 1 + esm/reject.test.js | 20 +++++ esm/reject.test.js.map | 1 + esm/same-if-unchanged.test.d.ts | 2 + esm/same-if-unchanged.test.d.ts.map | 1 + esm/same-if-unchanged.test.js | 25 ++++++ esm/same-if-unchanged.test.js.map | 1 + esm/update.d.ts | 10 +++ esm/update.d.ts.map | 1 + esm/update.js | 81 +++++++++++++++++ esm/update.js.map | 1 + esm/updateIn.d.ts | 7 ++ esm/updateIn.d.ts.map | 1 + esm/updateIn.js | 21 +++++ esm/updateIn.js.map | 1 + esm/updateIn.test.d.ts | 2 + esm/updateIn.test.d.ts.map | 1 + esm/updateIn.test.js | 52 +++++++++++ esm/updateIn.test.js.map | 1 + esm/updeep.bench.d.ts | 2 + esm/updeep.bench.d.ts.map | 1 + esm/updeep.bench.js | 10 +++ esm/updeep.bench.js.map | 1 + esm/updeep.test.d.ts | 2 + esm/updeep.test.d.ts.map | 1 + esm/updeep.test.js | 132 ++++++++++++++++++++++++++++ esm/updeep.test.js.map | 1 + esm/util/splitPath.d.ts | 2 + esm/util/splitPath.d.ts.map | 1 + esm/util/splitPath.js | 8 ++ esm/util/splitPath.js.map | 1 + esm/util/splitPath.test.d.ts | 2 + esm/util/splitPath.test.d.ts.map | 1 + esm/util/splitPath.test.js | 18 ++++ esm/util/splitPath.test.js.map | 1 + esm/wrap.d.ts | 3 + esm/wrap.d.ts.map | 1 + esm/wrap.js | 13 +++ esm/wrap.js.map | 1 + 157 files changed, 1319 insertions(+), 1 deletion(-) create mode 100644 esm/constant.d.ts create mode 100644 esm/constant.d.ts.map create mode 100644 esm/constant.js create mode 100644 esm/constant.js.map create mode 100644 esm/constant.test.d.ts create mode 100644 esm/constant.test.d.ts.map create mode 100644 esm/constant.test.js create mode 100644 esm/constant.test.js.map create mode 100644 esm/filter.d.ts create mode 100644 esm/filter.d.ts.map create mode 100644 esm/filter.js create mode 100644 esm/filter.js.map create mode 100644 esm/filter.test.d.ts create mode 100644 esm/filter.test.d.ts.map create mode 100644 esm/filter.test.js create mode 100644 esm/filter.test.js.map create mode 100644 esm/freeze.d.ts create mode 100644 esm/freeze.d.ts.map create mode 100644 esm/freeze.js create mode 100644 esm/freeze.js.map create mode 100644 esm/freeze.test.d.ts create mode 100644 esm/freeze.test.d.ts.map create mode 100644 esm/freeze.test.js create mode 100644 esm/freeze.test.js.map create mode 100644 esm/if.d.ts create mode 100644 esm/if.d.ts.map create mode 100644 esm/if.js create mode 100644 esm/if.js.map create mode 100644 esm/if.test.d.ts create mode 100644 esm/if.test.d.ts.map create mode 100644 esm/if.test.js create mode 100644 esm/if.test.js.map create mode 100644 esm/ifElse.d.ts create mode 100644 esm/ifElse.d.ts.map create mode 100644 esm/ifElse.js create mode 100644 esm/ifElse.js.map create mode 100644 esm/ifElse.test.d.ts create mode 100644 esm/ifElse.test.d.ts.map create mode 100644 esm/ifElse.test.js create mode 100644 esm/ifElse.test.js.map create mode 100644 esm/index.d.ts create mode 100644 esm/index.d.ts.map create mode 100644 esm/index.js create mode 100644 esm/index.js.map create mode 100644 esm/is.d.ts create mode 100644 esm/is.d.ts.map create mode 100644 esm/is.js create mode 100644 esm/is.js.map create mode 100644 esm/is.test.d.ts create mode 100644 esm/is.test.d.ts.map create mode 100644 esm/is.test.js create mode 100644 esm/is.test.js.map create mode 100644 esm/map.d.ts create mode 100644 esm/map.d.ts.map create mode 100644 esm/map.js create mode 100644 esm/map.js.map create mode 100644 esm/map.test.d.ts create mode 100644 esm/map.test.d.ts.map create mode 100644 esm/map.test.js create mode 100644 esm/map.test.js.map create mode 100644 esm/mapIf.d.ts create mode 100644 esm/mapIf.d.ts.map create mode 100644 esm/mapIf.js create mode 100644 esm/mapIf.js.map create mode 100644 esm/mapIf.test.d.ts create mode 100644 esm/mapIf.test.d.ts.map create mode 100644 esm/mapIf.test.js create mode 100644 esm/mapIf.test.js.map create mode 100644 esm/matches.d.ts create mode 100644 esm/matches.d.ts.map create mode 100644 esm/matches.js create mode 100644 esm/matches.js.map create mode 100644 esm/matches.test.d.ts create mode 100644 esm/matches.test.d.ts.map create mode 100644 esm/matches.test.js create mode 100644 esm/matches.test.js.map create mode 100644 esm/omit.d.ts create mode 100644 esm/omit.d.ts.map create mode 100644 esm/omit.js create mode 100644 esm/omit.js.map create mode 100644 esm/omit.test.d.ts create mode 100644 esm/omit.test.d.ts.map create mode 100644 esm/omit.test.js create mode 100644 esm/omit.test.js.map create mode 100644 esm/omitBy.d.ts create mode 100644 esm/omitBy.d.ts.map create mode 100644 esm/omitBy.js create mode 100644 esm/omitBy.js.map create mode 100644 esm/omitBy.test.d.ts create mode 100644 esm/omitBy.test.d.ts.map create mode 100644 esm/omitBy.test.js create mode 100644 esm/omitBy.test.js.map create mode 100644 esm/pick.d.ts create mode 100644 esm/pick.d.ts.map create mode 100644 esm/pick.js create mode 100644 esm/pick.js.map create mode 100644 esm/pick.test.d.ts create mode 100644 esm/pick.test.d.ts.map create mode 100644 esm/pick.test.js create mode 100644 esm/pick.test.js.map create mode 100644 esm/pickBy.d.ts create mode 100644 esm/pickBy.d.ts.map create mode 100644 esm/pickBy.js create mode 100644 esm/pickBy.js.map create mode 100644 esm/pickBy.test.d.ts create mode 100644 esm/pickBy.test.d.ts.map create mode 100644 esm/pickBy.test.js create mode 100644 esm/pickBy.test.js.map create mode 100644 esm/predicate.d.ts create mode 100644 esm/predicate.d.ts.map create mode 100644 esm/predicate.js create mode 100644 esm/predicate.js.map create mode 100644 esm/reject.d.ts create mode 100644 esm/reject.d.ts.map create mode 100644 esm/reject.js create mode 100644 esm/reject.js.map create mode 100644 esm/reject.test.d.ts create mode 100644 esm/reject.test.d.ts.map create mode 100644 esm/reject.test.js create mode 100644 esm/reject.test.js.map create mode 100644 esm/same-if-unchanged.test.d.ts create mode 100644 esm/same-if-unchanged.test.d.ts.map create mode 100644 esm/same-if-unchanged.test.js create mode 100644 esm/same-if-unchanged.test.js.map create mode 100644 esm/update.d.ts create mode 100644 esm/update.d.ts.map create mode 100644 esm/update.js create mode 100644 esm/update.js.map create mode 100644 esm/updateIn.d.ts create mode 100644 esm/updateIn.d.ts.map create mode 100644 esm/updateIn.js create mode 100644 esm/updateIn.js.map create mode 100644 esm/updateIn.test.d.ts create mode 100644 esm/updateIn.test.d.ts.map create mode 100644 esm/updateIn.test.js create mode 100644 esm/updateIn.test.js.map create mode 100644 esm/updeep.bench.d.ts create mode 100644 esm/updeep.bench.d.ts.map create mode 100644 esm/updeep.bench.js create mode 100644 esm/updeep.bench.js.map create mode 100644 esm/updeep.test.d.ts create mode 100644 esm/updeep.test.d.ts.map create mode 100644 esm/updeep.test.js create mode 100644 esm/updeep.test.js.map create mode 100644 esm/util/splitPath.d.ts create mode 100644 esm/util/splitPath.d.ts.map create mode 100644 esm/util/splitPath.js create mode 100644 esm/util/splitPath.js.map create mode 100644 esm/util/splitPath.test.d.ts create mode 100644 esm/util/splitPath.test.d.ts.map create mode 100644 esm/util/splitPath.test.js create mode 100644 esm/util/splitPath.test.js.map create mode 100644 esm/wrap.d.ts create mode 100644 esm/wrap.d.ts.map create mode 100644 esm/wrap.js create mode 100644 esm/wrap.js.map diff --git a/.gitignore b/.gitignore index 46aad91..b23d39e 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,5 @@ pnpm-lock.yaml tsconfig*.tsbuildinfo lib types -esm .perl-version .task diff --git a/esm/constant.d.ts b/esm/constant.d.ts new file mode 100644 index 0000000..0e17823 --- /dev/null +++ b/esm/constant.d.ts @@ -0,0 +1,34 @@ +/** + * Returns a function that always returns the supplied value. + * + * Useful for replacing an object outright rather than merging it. + * + * @function + * @sig a -> (* -> a) + * @memberOf u + * @param {*} value what to return from returned function. + * @return {function} a new function that will always return value. + * + * @example + * var alwaysFour = u.constant(4); + * expect(alwaysFour(32)).toEqual(4); + * + * @example + * var user = { + * name: 'Mitch', + * favorites: { + * band: 'Nirvana', + * movie: 'The Matrix' + * } + * }; + * + * var newFavorites = { + * band: 'Coldplay' + * }; + * + * var result = u({ favorites: u.constant(newFavorites) }, user); + * + * expect(result).toEqual({ name: 'Mitch', favorites: { band: 'Coldplay' } }); + */ +export default function constant(value: T): () => Readonly; +//# sourceMappingURL=constant.d.ts.map \ No newline at end of file diff --git a/esm/constant.d.ts.map b/esm/constant.d.ts.map new file mode 100644 index 0000000..5a1fb8b --- /dev/null +++ b/esm/constant.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../src/constant.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,qBAG3C"} \ No newline at end of file diff --git a/esm/constant.js b/esm/constant.js new file mode 100644 index 0000000..45fb1d3 --- /dev/null +++ b/esm/constant.js @@ -0,0 +1,38 @@ +import freeze from "./freeze.js"; +/** + * Returns a function that always returns the supplied value. + * + * Useful for replacing an object outright rather than merging it. + * + * @function + * @sig a -> (* -> a) + * @memberOf u + * @param {*} value what to return from returned function. + * @return {function} a new function that will always return value. + * + * @example + * var alwaysFour = u.constant(4); + * expect(alwaysFour(32)).toEqual(4); + * + * @example + * var user = { + * name: 'Mitch', + * favorites: { + * band: 'Nirvana', + * movie: 'The Matrix' + * } + * }; + * + * var newFavorites = { + * band: 'Coldplay' + * }; + * + * var result = u({ favorites: u.constant(newFavorites) }, user); + * + * expect(result).toEqual({ name: 'Mitch', favorites: { band: 'Coldplay' } }); + */ +export default function constant(value) { + const frozen = freeze(value); + return () => frozen; +} +//# sourceMappingURL=constant.js.map \ No newline at end of file diff --git a/esm/constant.js.map b/esm/constant.js.map new file mode 100644 index 0000000..0fe2057 --- /dev/null +++ b/esm/constant.js.map @@ -0,0 +1 @@ +{"version":3,"file":"constant.js","sourceRoot":"","sources":["../src/constant.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAI,KAAQ;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;AACtB,CAAC"} \ No newline at end of file diff --git a/esm/constant.test.d.ts b/esm/constant.test.d.ts new file mode 100644 index 0000000..7a91645 --- /dev/null +++ b/esm/constant.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=constant.test.d.ts.map \ No newline at end of file diff --git a/esm/constant.test.d.ts.map b/esm/constant.test.d.ts.map new file mode 100644 index 0000000..9efc588 --- /dev/null +++ b/esm/constant.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"constant.test.d.ts","sourceRoot":"","sources":["../src/constant.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/constant.test.js b/esm/constant.test.js new file mode 100644 index 0000000..556615e --- /dev/null +++ b/esm/constant.test.js @@ -0,0 +1,13 @@ +import { expect, test } from "vitest"; +import constant from "./constant.js"; +test("returns what it is given... constantly", () => { + const func = constant(4); + expect(func()).to.equal(4); + expect(func("hi")).to.equal(4); + expect(func("hi", 8)).to.equal(4); + expect(func(4)).to.equal(4); +}); +test("freezes the result", () => { + expect(Object.isFrozen(constant({})())).toBeTruthy(); +}); +//# sourceMappingURL=constant.test.js.map \ No newline at end of file diff --git a/esm/constant.test.js.map b/esm/constant.test.js.map new file mode 100644 index 0000000..d44a2e9 --- /dev/null +++ b/esm/constant.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"constant.test.js","sourceRoot":"","sources":["../src/constant.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;IAClD,MAAM,IAAI,GAAQ,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE9B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC9B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;AACvD,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/esm/filter.d.ts b/esm/filter.d.ts new file mode 100644 index 0000000..dd80eb1 --- /dev/null +++ b/esm/filter.d.ts @@ -0,0 +1,4 @@ +import { filter as _filter } from "remeda"; +declare const _default: typeof _filter; +export default _default; +//# sourceMappingURL=filter.d.ts.map \ No newline at end of file diff --git a/esm/filter.d.ts.map b/esm/filter.d.ts.map new file mode 100644 index 0000000..2aa1f2e --- /dev/null +++ b/esm/filter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC;wBAYZ,OAAO,OAAO;AAA7C,wBAA8C"} \ No newline at end of file diff --git a/esm/filter.js b/esm/filter.js new file mode 100644 index 0000000..dbddc19 --- /dev/null +++ b/esm/filter.js @@ -0,0 +1,10 @@ +import { filter as _filter } from "remeda"; +import { buildPredicate } from "./predicate.js"; +import wrap from "./wrap.js"; +const sizeOf = (obj) => obj.length; +function filter(dataIn, predicate) { + const result = _filter(dataIn, buildPredicate(predicate)); + return sizeOf(result) === sizeOf(dataIn) ? dataIn : result; +} +export default wrap(filter); +//# sourceMappingURL=filter.js.map \ No newline at end of file diff --git a/esm/filter.js.map b/esm/filter.js.map new file mode 100644 index 0000000..15ff68c --- /dev/null +++ b/esm/filter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;AAEnC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC;AAED,eAAe,IAAI,CAAC,MAAM,CAAmB,CAAC"} \ No newline at end of file diff --git a/esm/filter.test.d.ts b/esm/filter.test.d.ts new file mode 100644 index 0000000..3f96f67 --- /dev/null +++ b/esm/filter.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=filter.test.d.ts.map \ No newline at end of file diff --git a/esm/filter.test.d.ts.map b/esm/filter.test.d.ts.map new file mode 100644 index 0000000..6965420 --- /dev/null +++ b/esm/filter.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"filter.test.d.ts","sourceRoot":"","sources":["../src/filter.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/filter.test.js b/esm/filter.test.js new file mode 100644 index 0000000..c720412 --- /dev/null +++ b/esm/filter.test.js @@ -0,0 +1,18 @@ +import { expect, it } from "vitest"; +import filter from "./filter.js"; +import u from "./index.js"; +it("can filter", () => { + const result = u({ foo: filter((v, k) => k === 1) })({ + foo: ["a", "b"], + }); + expect(result).to.eql({ foo: ["b"] }); +}); +it("freezes the result", () => { + expect(Object.isFrozen(filter([1], () => true))).to.be.true; +}); +it("doesn't change the obj if nothing is modified", () => { + const orig = [1, 2, 3]; + const result = filter(() => true)(orig); + expect(result).to.be.equal(orig); +}); +//# sourceMappingURL=filter.test.js.map \ No newline at end of file diff --git a/esm/filter.test.js.map b/esm/filter.test.js.map new file mode 100644 index 0000000..6b21b28 --- /dev/null +++ b/esm/filter.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filter.test.js","sourceRoot":"","sources":["../src/filter.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,CAAC,MAAM,YAAY,CAAC;AAE3B,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;IACpB,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;KAChB,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC5B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;IACvD,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACvB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/esm/freeze.d.ts b/esm/freeze.d.ts new file mode 100644 index 0000000..7ae399c --- /dev/null +++ b/esm/freeze.d.ts @@ -0,0 +1,19 @@ +/** + * Deeply freeze a plain javascript object. + * + * If `process.env.NODE_ENV === 'production'`, this returns the original object + * without freezing. + * + * Or if `process.env.UPDEEP_MODE === 'dangerously_never_freeze'`, this returns the original object + * without freezing. + * + * If in a browser and built without replacing process, never freeze. + * + * @function + * @sig a -> a + * @param object Object to freeze. + * @return Frozen object, unless in production, then the same object. + */ +declare function freeze(object: T): Readonly; +export default freeze; +//# sourceMappingURL=freeze.d.ts.map \ No newline at end of file diff --git a/esm/freeze.d.ts.map b/esm/freeze.d.ts.map new file mode 100644 index 0000000..6057a76 --- /dev/null +++ b/esm/freeze.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"freeze.d.ts","sourceRoot":"","sources":["../src/freeze.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAkBzC;AAED,eAAe,MAAM,CAAC"} \ No newline at end of file diff --git a/esm/freeze.js b/esm/freeze.js new file mode 100644 index 0000000..50a9726 --- /dev/null +++ b/esm/freeze.js @@ -0,0 +1,55 @@ +function isFreezable(object) { + if (object === null) + return false; + if (object instanceof RegExp) + return false; + if (object instanceof ArrayBuffer) + return false; + return Array.isArray(object) || typeof object === "object"; +} +function needsFreezing(object) { + return isFreezable(object) && !Object.isFrozen(object); +} +function recur(object) { + Object.freeze(object); + Object.keys(object).forEach((key) => { + const value = object[key]; + if (needsFreezing(value)) { + recur(value); + } + }); + return object; +} +/** + * Deeply freeze a plain javascript object. + * + * If `process.env.NODE_ENV === 'production'`, this returns the original object + * without freezing. + * + * Or if `process.env.UPDEEP_MODE === 'dangerously_never_freeze'`, this returns the original object + * without freezing. + * + * If in a browser and built without replacing process, never freeze. + * + * @function + * @sig a -> a + * @param object Object to freeze. + * @return Frozen object, unless in production, then the same object. + */ +function freeze(object) { + if (typeof process === "undefined") { + return object; + } + if (process.env.NODE_ENV === "production") { + return object; + } + if (process.env.UPDEEP_MODE === "dangerously_never_freeze") { + return object; + } + if (needsFreezing(object)) { + recur(object); + } + return object; +} +export default freeze; +//# sourceMappingURL=freeze.js.map \ No newline at end of file diff --git a/esm/freeze.js.map b/esm/freeze.js.map new file mode 100644 index 0000000..95f8b94 --- /dev/null +++ b/esm/freeze.js.map @@ -0,0 +1 @@ +{"version":3,"file":"freeze.js","sourceRoot":"","sources":["../src/freeze.ts"],"names":[],"mappings":"AAAA,SAAS,WAAW,CAAC,MAAe;IAClC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,MAAM,YAAY,MAAM;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,MAAM,YAAY,WAAW;QAAE,OAAO,KAAK,CAAC;IAEhD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,MAAe;IACpC,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,KAAK,CAAC,MAAM;IACnB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEtB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,KAAK,CAAC,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,MAAM,CAAI,MAAS;IAC1B,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,0BAA0B,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,eAAe,MAAM,CAAC"} \ No newline at end of file diff --git a/esm/freeze.test.d.ts b/esm/freeze.test.d.ts new file mode 100644 index 0000000..ecc5984 --- /dev/null +++ b/esm/freeze.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=freeze.test.d.ts.map \ No newline at end of file diff --git a/esm/freeze.test.d.ts.map b/esm/freeze.test.d.ts.map new file mode 100644 index 0000000..07a38c1 --- /dev/null +++ b/esm/freeze.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"freeze.test.d.ts","sourceRoot":"","sources":["../src/freeze.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/freeze.test.js b/esm/freeze.test.js new file mode 100644 index 0000000..2ba34fa --- /dev/null +++ b/esm/freeze.test.js @@ -0,0 +1,56 @@ +import { describe, afterEach, test, expect } from "vitest"; +import freeze from "./freeze.js"; +describe("freeze", () => { + afterEach(() => { + delete process.env.NODE_ENV; + }); + test("freezes objects", () => { + const object = {}; + freeze(object); + expect(Object.isFrozen(object)).to.be.true; + }); + test("freezes nested objects", () => { + const object = { foo: { bar: 3 } }; + freeze(object); + expect(Object.isFrozen(object.foo)).to.be.true; + }); + test("freezes nested arrays", () => { + const object = [[0]]; + freeze(object); + expect(Object.isFrozen(object)).to.be.true; + expect(Object.isFrozen(object[0])).to.be.true; + }); + test("ignores functions", () => { + const object = { foo: () => 1 }; + freeze(object); + expect(Object.isFrozen(object.foo)).to.be.false; + }); + test("ignores regexps", () => { + const object = { foo: /\d/ }; + freeze(object); + expect(Object.isFrozen(object.foo)).to.be.false; + }); + test("does not freeze children if the parent is already frozen", () => { + const object = { foo: {} }; + Object.freeze(object); + freeze(object); + expect(Object.isFrozen(object.foo)).to.be.false; + }); + test("does not freeze in production", () => { + process.env.NODE_ENV = "production"; + const object = {}; + freeze(object); + expect(Object.isFrozen(object)).to.be.false; + }); + test("handles null objects", () => { + const object = { foo: null }; + freeze(object); + expect(Object.isFrozen(object)).to.be.true; + }); + test("returns the same object", () => { + const object = {}; + const result = freeze(object); + expect(result).to.equal(object); + }); +}); +//# sourceMappingURL=freeze.test.js.map \ No newline at end of file diff --git a/esm/freeze.test.js.map b/esm/freeze.test.js.map new file mode 100644 index 0000000..77a0d3e --- /dev/null +++ b/esm/freeze.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"freeze.test.js","sourceRoot":"","sources":["../src/freeze.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/esm/if.d.ts b/esm/if.d.ts new file mode 100644 index 0000000..0886c22 --- /dev/null +++ b/esm/if.d.ts @@ -0,0 +1,7 @@ +export interface If { + (object: any, predicate: any, trueUpdates: any): unknown; + (predicate: any, trueUpdates: any): (unknown: any) => unknown; +} +declare const _default: If; +export default _default; +//# sourceMappingURL=if.d.ts.map \ No newline at end of file diff --git a/esm/if.d.ts.map b/esm/if.d.ts.map new file mode 100644 index 0000000..d7a4f70 --- /dev/null +++ b/esm/if.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"if.d.ts","sourceRoot":"","sources":["../src/if.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,EAAE;IACjB,CAAC,MAAM,KAAA,EAAE,SAAS,KAAA,EAAE,WAAW,KAAA,GAAG,OAAO,CAAC;IAC1C,CAAC,SAAS,KAAA,EAAE,WAAW,KAAA,GAAG,CAAC,OAAO,KAAA,KAAK,OAAO,CAAC;CAChD;wBAM2B,EAAE;AAA9B,wBAA+B"} \ No newline at end of file diff --git a/esm/if.js b/esm/if.js new file mode 100644 index 0000000..e7fd355 --- /dev/null +++ b/esm/if.js @@ -0,0 +1,8 @@ +import ifElse from "./ifElse.js"; +import wrap from "./wrap.js"; +const identity = (x) => x; +function _if(object, predicate, trueUpdates) { + return ifElse(object, predicate, trueUpdates, identity); +} +export default wrap(_if); +//# sourceMappingURL=if.js.map \ No newline at end of file diff --git a/esm/if.js.map b/esm/if.js.map new file mode 100644 index 0000000..e4d7f82 --- /dev/null +++ b/esm/if.js.map @@ -0,0 +1 @@ +{"version":3,"file":"if.js","sourceRoot":"","sources":["../src/if.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC;AAOnC,SAAS,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW;IACzC,OAAO,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC1D,CAAC;AAED,eAAe,IAAI,CAAC,GAAG,CAAO,CAAC"} \ No newline at end of file diff --git a/esm/if.test.d.ts b/esm/if.test.d.ts new file mode 100644 index 0000000..d034164 --- /dev/null +++ b/esm/if.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=if.test.d.ts.map \ No newline at end of file diff --git a/esm/if.test.d.ts.map b/esm/if.test.d.ts.map new file mode 100644 index 0000000..1d2dd89 --- /dev/null +++ b/esm/if.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"if.test.d.ts","sourceRoot":"","sources":["../src/if.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/if.test.js b/esm/if.test.js new file mode 100644 index 0000000..18290bc --- /dev/null +++ b/esm/if.test.js @@ -0,0 +1,27 @@ +import { describe, test, expect } from "vitest"; +import _if from "./if.js"; +describe("if", () => { + test("does not update if the predicate is false", () => { + const object = { a: 0 }; + let result = _if(object, false, { b: 1 }); + expect(result).to.eql(object); + result = _if(0, false, 1); + expect(result).to.eql(0); + }); + test("does update if the predicate is true", () => { + const object = { a: 0 }; + const result = _if(true, { b: 1 })(object); + expect(result).to.eql({ a: 0, b: 1 }); + }); + test("will use the result of a function passed as a predicate", () => { + const object = { a: 0 }; + const aIsThree = (x) => x.a === 3; + const result = _if(aIsThree, { b: 1 })(object); + expect(result).to.eql({ a: 0 }); + }); + test("freezes the result", () => { + expect(Object.isFrozen(_if(true, {})({}))).to.be.true; + expect(Object.isFrozen(_if(false, {})({}))).to.be.true; + }); +}); +//# sourceMappingURL=if.test.js.map \ No newline at end of file diff --git a/esm/if.test.js.map b/esm/if.test.js.map new file mode 100644 index 0000000..732983e --- /dev/null +++ b/esm/if.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"if.test.js","sourceRoot":"","sources":["../src/if.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,GAAG,MAAM,SAAS,CAAC;AAE1B,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;IAClB,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACxB,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE9B,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAChD,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACnE,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAE/C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/esm/ifElse.d.ts b/esm/ifElse.d.ts new file mode 100644 index 0000000..fd0b07f --- /dev/null +++ b/esm/ifElse.d.ts @@ -0,0 +1,8 @@ +import { Predicate } from "./predicate.js"; +export interface IfElse { + (object: any, predicate: Predicate, trueUpdates: any, falseUpdates: any): unknown; + (predicate: Predicate, trueUpdates: any, falseUpdates: any): (unknown: any) => unknown; +} +declare const _default: IfElse; +export default _default; +//# sourceMappingURL=ifElse.d.ts.map \ No newline at end of file diff --git a/esm/ifElse.d.ts.map b/esm/ifElse.d.ts.map new file mode 100644 index 0000000..453dab3 --- /dev/null +++ b/esm/ifElse.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ifElse.d.ts","sourceRoot":"","sources":["../src/ifElse.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAkB,MAAM,gBAAgB,CAAC;AAU3D,MAAM,WAAW,MAAM;IACrB,CAAC,MAAM,KAAA,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,KAAA,EAAE,YAAY,KAAA,GAAG,OAAO,CAAC;IACnE,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,KAAA,EAAE,YAAY,KAAA,GAAG,CAAC,OAAO,KAAA,KAAK,OAAO,CAAC;CACzE;wBAEoC,MAAM;AAA3C,wBAA4C"} \ No newline at end of file diff --git a/esm/ifElse.js b/esm/ifElse.js new file mode 100644 index 0000000..39ce4d8 --- /dev/null +++ b/esm/ifElse.js @@ -0,0 +1,10 @@ +import update from "./update.js"; +import wrap from "./wrap.js"; +import { buildPredicate } from "./predicate.js"; +function updateIfElse(object, predicate, trueUpdates, falseUpdates) { + const test = buildPredicate(predicate)(object); + const updates = test ? trueUpdates : falseUpdates; + return update(object, updates); +} +export default wrap(updateIfElse); +//# sourceMappingURL=ifElse.js.map \ No newline at end of file diff --git a/esm/ifElse.js.map b/esm/ifElse.js.map new file mode 100644 index 0000000..3a68cd6 --- /dev/null +++ b/esm/ifElse.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ifElse.js","sourceRoot":"","sources":["../src/ifElse.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAa,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3D,SAAS,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY;IAChE,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IAElD,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAOD,eAAe,IAAI,CAAC,YAAY,CAAW,CAAC"} \ No newline at end of file diff --git a/esm/ifElse.test.d.ts b/esm/ifElse.test.d.ts new file mode 100644 index 0000000..d8022ab --- /dev/null +++ b/esm/ifElse.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=ifElse.test.d.ts.map \ No newline at end of file diff --git a/esm/ifElse.test.d.ts.map b/esm/ifElse.test.d.ts.map new file mode 100644 index 0000000..6ed44d0 --- /dev/null +++ b/esm/ifElse.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ifElse.test.d.ts","sourceRoot":"","sources":["../src/ifElse.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/ifElse.test.js b/esm/ifElse.test.js new file mode 100644 index 0000000..4902f57 --- /dev/null +++ b/esm/ifElse.test.js @@ -0,0 +1,38 @@ +import { expect, test, describe } from "vitest"; +import ifElse from "./ifElse.js"; +import _if from "./if.js"; +describe("ifElse", () => { + test("does updates with the else if the predicate is false", () => { + const object = { a: 0 }; + const result = ifElse(false, { b: 1 }, { b: 2 })(object); + expect(result).to.eql({ a: 0, b: 2 }); + }); + test("updates with the true update if the predicate is true", () => { + const object = { a: 0 }; + const result = ifElse(true, { b: 1 }, { b: 4 })(object); + expect(result).to.eql({ a: 0, b: 1 }); + }); + test("will use the result of a function passed as a predicate", () => { + const object = { a: 0 }; + const aIsThree = (x) => x.a === 3; + const result = ifElse(aIsThree, { b: 1 }, { b: 4 })(object); + expect(result).to.eql({ a: 0, b: 4 }); + }); + test("freezes the result", () => { + expect(Object.isFrozen(ifElse(true, {}, {})({}))).to.be.true; + expect(Object.isFrozen(ifElse(false, {}, {})({}))).to.be.true; + }); +}); +describe("if", () => { + test("does updates with the else if the predicate is false", () => { + const object = { a: 0 }; + const result = _if(false, { b: 1 })(object); + expect(result).not.toHaveProperty("b"); + }); + test("updates with the true update if the predicate is true", () => { + const object = { a: 0 }; + const result = _if(true, { b: 1 })(object); + expect(result).to.eql({ a: 0, b: 1 }); + }); +}); +//# sourceMappingURL=ifElse.test.js.map \ No newline at end of file diff --git a/esm/ifElse.test.js.map b/esm/ifElse.test.js.map new file mode 100644 index 0000000..de91212 --- /dev/null +++ b/esm/ifElse.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ifElse.test.js","sourceRoot":"","sources":["../src/ifElse.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/esm/index.d.ts b/esm/index.d.ts new file mode 100644 index 0000000..a70ed58 --- /dev/null +++ b/esm/index.d.ts @@ -0,0 +1,43 @@ +import freeze from "./freeze.js"; +import is from "./is.js"; +import _if from "./if.js"; +import ifElse from "./ifElse.js"; +import update, { skip } from "./update.js"; +import updateIn from "./updateIn.js"; +import constant from "./constant.js"; +import omit from "./omit.js"; +import omitBy from "./omitBy.js"; +import pick from "./pick.js"; +import pickBy from "./pickBy.js"; +import filter from "./filter.js"; +import reject from "./reject.js"; +import matches from "./matches.js"; +import myMap from "./map.js"; +import mapIf, { mapIfElse } from "./mapIf.js"; +declare const functions: { + constant: typeof constant; + filter: typeof import("remeda").filter; + freeze: typeof freeze; + ifElse: import("./ifElse.js").IfElse; + if: import("./if.js").If; + is: import("./is.js").Is; + map: import("./map.js").Map; + matches: import("./matches.js").Matches; + omit: import("./omit.js").Omit; + omitBy: typeof import("remeda").omitBy; + pick: import("./pick.js").UPick; + pickBy: typeof import("remeda").pickBy; + reject: typeof import("remeda").filter; + skip: () => Readonly<{ + __skip: boolean; + }>; + update: import("./update.js").Update; + updateIn: import("./updateIn.js").UpdateIn; + mapIf: import("./mapIf.js").MapIf; + mapIfElse: import("./mapIf.js").MapIfElse; +}; +export { filter, reject, pickBy, pick, omit, omitBy, constant, _if as if, ifElse, is, freeze, update, updateIn, skip, matches, myMap as map, mapIf, mapIfElse, }; +declare const merged: import("./update.js").Update; +declare const _default: typeof merged & typeof functions; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/esm/index.d.ts.map b/esm/index.d.ts.map new file mode 100644 index 0000000..c755856 --- /dev/null +++ b/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,GAAG,MAAM,SAAS,CAAC;AAC1B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,KAAK,MAAM,UAAU,CAAC;AAC7B,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9C,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;CAmBd,CAAC;AAEF,OAAO,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,GAAG,IAAI,EAAE,EACT,MAAM,EACN,EAAE,EACF,MAAM,EACN,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,KAAK,IAAI,GAAG,EACZ,KAAK,EACL,SAAS,GACV,CAAC;AAEF,QAAA,MAAM,MAAM,8BAAS,CAAC;wBAIG,OAAO,MAAM,GAAG,OAAO,SAAS;AAAzD,wBAA0D"} \ No newline at end of file diff --git a/esm/index.js b/esm/index.js new file mode 100644 index 0000000..7902914 --- /dev/null +++ b/esm/index.js @@ -0,0 +1,41 @@ +import freeze from "./freeze.js"; +import is from "./is.js"; +import _if from "./if.js"; +import ifElse from "./ifElse.js"; +import update, { skip } from "./update.js"; +import updateIn from "./updateIn.js"; +import constant from "./constant.js"; +import omit from "./omit.js"; +import omitBy from "./omitBy.js"; +import pick from "./pick.js"; +import pickBy from "./pickBy.js"; +import filter from "./filter.js"; +import reject from "./reject.js"; +import matches from "./matches.js"; +import myMap from "./map.js"; +import mapIf, { mapIfElse } from "./mapIf.js"; +const functions = { + constant, + filter, + freeze, + ifElse, + if: _if, + is, + map: myMap, + matches, + omit, + omitBy, + pick, + pickBy, + reject, + skip, + update, + updateIn, + mapIf, + mapIfElse, +}; +export { filter, reject, pickBy, pick, omit, omitBy, constant, _if as if, ifElse, is, freeze, update, updateIn, skip, matches, myMap as map, mapIf, mapIfElse, }; +const merged = update; +Object.entries(functions).forEach(([k, v]) => (merged[k] = v)); +export default merged; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/esm/index.js.map b/esm/index.js.map new file mode 100644 index 0000000..09be4f0 --- /dev/null +++ b/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,GAAG,MAAM,SAAS,CAAC;AAC1B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,KAAK,MAAM,UAAU,CAAC;AAC7B,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,SAAS,GAAG;IAChB,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,EAAE,EAAE,GAAG;IACP,EAAE;IACF,GAAG,EAAE,KAAK;IACV,OAAO;IACP,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,IAAI;IACJ,MAAM;IACN,QAAQ;IACR,KAAK;IACL,SAAS;CACV,CAAC;AAEF,OAAO,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,GAAG,IAAI,EAAE,EACT,MAAM,EACN,EAAE,EACF,MAAM,EACN,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,KAAK,IAAI,GAAG,EACZ,KAAK,EACL,SAAS,GACV,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC;AAEtB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAE/D,eAAe,MAA0C,CAAC"} \ No newline at end of file diff --git a/esm/is.d.ts b/esm/is.d.ts new file mode 100644 index 0000000..ea295f2 --- /dev/null +++ b/esm/is.d.ts @@ -0,0 +1,7 @@ +export interface Is { + (object: any, path: string | number | (number | string)[], predicate: any): boolean; + (path: string | number | (number | string)[], predicate: any): (object: any) => boolean; +} +declare const _default: Is; +export default _default; +//# sourceMappingURL=is.d.ts.map \ No newline at end of file diff --git a/esm/is.d.ts.map b/esm/is.d.ts.map new file mode 100644 index 0000000..04a7f27 --- /dev/null +++ b/esm/is.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"is.d.ts","sourceRoot":"","sources":["../src/is.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,EAAE;IACjB,CAAC,MAAM,KAAA,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,SAAS,KAAA,GAAG,OAAO,CAAC;IAC1E,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,SAAS,KAAA,GAAG,CAAC,MAAM,KAAA,KAAK,OAAO,CAAC;CAC/E;wBAE2B,EAAE;AAA9B,wBAA+B"} \ No newline at end of file diff --git a/esm/is.js b/esm/is.js new file mode 100644 index 0000000..ea27999 --- /dev/null +++ b/esm/is.js @@ -0,0 +1,16 @@ +import splitPath from "./util/splitPath.js"; +import wrap from "./wrap.js"; +function _is(object, path, predicate) { + const parts = splitPath(path); + for (const part of parts) { + if (typeof object === "undefined") + return false; + object = object[part]; + } + if (typeof predicate === "function") { + return predicate(object); + } + return predicate === object; +} +export default wrap(_is); +//# sourceMappingURL=is.js.map \ No newline at end of file diff --git a/esm/is.js.map b/esm/is.js.map new file mode 100644 index 0000000..66b8106 --- /dev/null +++ b/esm/is.js.map @@ -0,0 +1 @@ +{"version":3,"file":"is.js","sourceRoot":"","sources":["../src/is.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,SAAS,GAAG,CACV,MAAM,EACN,IAA2C,EAC3C,SAAS;IAET,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QAChD,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,KAAK,MAAM,CAAC;AAC9B,CAAC;AAOD,eAAe,IAAI,CAAC,GAAG,CAAO,CAAC"} \ No newline at end of file diff --git a/esm/is.test.d.ts b/esm/is.test.d.ts new file mode 100644 index 0000000..ed225e5 --- /dev/null +++ b/esm/is.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=is.test.d.ts.map \ No newline at end of file diff --git a/esm/is.test.d.ts.map b/esm/is.test.d.ts.map new file mode 100644 index 0000000..1e7cd13 --- /dev/null +++ b/esm/is.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"is.test.d.ts","sourceRoot":"","sources":["../src/is.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/is.test.js b/esm/is.test.js new file mode 100644 index 0000000..e3ea792 --- /dev/null +++ b/esm/is.test.js @@ -0,0 +1,47 @@ +import { expect, test } from "vitest"; +import is from "./is.js"; +test("returns true if path matches a value predicate", () => { + const result = is({ a: { b: 4 } }, "a.b", 4); + expect(result).to.be.true; +}); +test("returns true if path matches a function predicate", () => { + const isEven = (x) => x % 2 === 0; + const result = is("a.b", isEven)({ a: { b: 6 } }); + expect(result).to.be.true; +}); +test("returns false if path matches a value predicate", () => { + const result = is("a.b", 4)({ a: { b: 5 } }); + expect(result).to.be.false; +}); +test("returns false if path matches a function predicate", () => { + const isEven = (x) => x % 2 === 0; + const result = is("a.b", isEven)({ a: { b: 7 } }); + expect(result).to.be.false; +}); +test("returns false if the path does not exist", () => { + const result = is("a.b.c.d", 4)({ a: { b: {} } }); + expect(result).to.be.false; +}); +test("can test for undefined", () => { + const result = is("a.b.c", undefined)({ a: { b: {} } }); + expect(result).to.be.true; +}); +test("tests the actual object if a blank path is given", () => { + const result = is(4, "", 4); + expect(result).toBeTruthy(); +}); +test("can use arrays as paths", () => { + const result = is(["a", "b"], 4)({ a: { b: 4 } }); + expect(result).to.be.true; +}); +test("can include array indexes in paths", () => { + let result = is("a.1.b", 4)({ a: [{}, { b: 4 }] }); + expect(result).to.be.true; + result = is(["a", 1, "b"], 4)({ a: [{}, { b: 4 }] }); + expect(result).to.be.true; +}); +test("can be partially applied", () => { + const result = is("a.b", 4)({ a: { b: 4 } }); + expect(result).to.be.true; +}); +//# sourceMappingURL=is.test.js.map \ No newline at end of file diff --git a/esm/is.test.js.map b/esm/is.test.js.map new file mode 100644 index 0000000..98722c0 --- /dev/null +++ b/esm/is.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"is.test.js","sourceRoot":"","sources":["../src/is.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/esm/map.d.ts b/esm/map.d.ts new file mode 100644 index 0000000..0e2b887 --- /dev/null +++ b/esm/map.d.ts @@ -0,0 +1,7 @@ +export interface Map { + (object: any, iteratee: any): any; + (iteratee: any): (object: any) => any; +} +declare const _default: Map; +export default _default; +//# sourceMappingURL=map.d.ts.map \ No newline at end of file diff --git a/esm/map.d.ts.map b/esm/map.d.ts.map new file mode 100644 index 0000000..5a88cae --- /dev/null +++ b/esm/map.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../src/map.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,GAAG;IAClB,CAAC,MAAM,KAAA,EAAE,QAAQ,KAAA,GAAG,GAAG,CAAC;IACxB,CAAC,QAAQ,KAAA,GAAG,CAAC,MAAM,KAAA,KAAK,GAAG,CAAC;CAC7B;wBAE2B,GAAG;AAA/B,wBAAgC"} \ No newline at end of file diff --git a/esm/map.js b/esm/map.js new file mode 100644 index 0000000..b61b344 --- /dev/null +++ b/esm/map.js @@ -0,0 +1,19 @@ +import { mapValues, map as _map } from "remeda"; +import update from "./update.js"; +import wrap from "./wrap.js"; +function shallowEqual(object, otherObject) { + for (const k in otherObject) { + if (otherObject[k] !== object[k]) + return false; + } + return true; +} +function map(object, iteratee) { + const updater = typeof iteratee === "function" ? iteratee : update(iteratee); + const mapper = Array.isArray(object) ? _map : mapValues; + const newObject = mapper(object, updater); + const equal = shallowEqual(object, newObject); + return equal ? object : newObject; +} +export default wrap(map); +//# sourceMappingURL=map.js.map \ No newline at end of file diff --git a/esm/map.js.map b/esm/map.js.map new file mode 100644 index 0000000..73a92a9 --- /dev/null +++ b/esm/map.js.map @@ -0,0 +1 @@ +{"version":3,"file":"map.js","sourceRoot":"","sources":["../src/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,SAAS,YAAY,CAAC,MAAM,EAAE,WAAW;IACvC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,GAAG,CAAC,MAAM,EAAE,QAAQ;IAC3B,MAAM,OAAO,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAQ,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAE9C,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACpC,CAAC;AAOD,eAAe,IAAI,CAAC,GAAG,CAAQ,CAAC"} \ No newline at end of file diff --git a/esm/map.test.d.ts b/esm/map.test.d.ts new file mode 100644 index 0000000..3be85f6 --- /dev/null +++ b/esm/map.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=map.test.d.ts.map \ No newline at end of file diff --git a/esm/map.test.d.ts.map b/esm/map.test.d.ts.map new file mode 100644 index 0000000..ef09e8b --- /dev/null +++ b/esm/map.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"map.test.d.ts","sourceRoot":"","sources":["../src/map.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/map.test.js b/esm/map.test.js new file mode 100644 index 0000000..e06d70b --- /dev/null +++ b/esm/map.test.js @@ -0,0 +1,44 @@ +import { expect, test } from "vitest"; +import map from "./map.js"; +test("applies updates to each item in an array", () => { + const object = [0, 1, 2]; + const inc = (x) => x + 1; + const result = map(object, inc); + expect(result).to.eql([1, 2, 3]); +}); +test("applies updates to each value in an object", () => { + const object = { a: 0, b: 1, c: 2 }; + const inc = (x) => x + 1; + const result = map(inc)(object); + expect(result).to.eql({ a: 1, b: 2, c: 3 }); +}); +test("can update with a regular updates object", () => { + const object = [{ a: 0 }, { a: 0 }]; + const result = map({ a: 1 })(object); + expect(result).to.eql([{ a: 1 }, { a: 1 }]); +}); +test("returns the same object if no updates are made", () => { + const array = [0, 1]; + const ident = (x) => x; + let result = map(ident)(array); + expect(result).to.equal(array); + const object = { a: 0 }; + result = map(ident)(object); + expect(result).to.equal(object); +}); +test("passes the key or index as the second parameter to the iteratee", () => { + const object = { + a: { x: 0 }, + b: [3, 3], + }; + const setToKey = (_, key) => key; + const result = map(object, map(setToKey)); + expect(result).to.eql({ + a: { x: "x" }, + b: [0, 1], + }); +}); +test("freezes the result", () => { + expect(Object.isFrozen(map({}, {}))).to.be.true; +}); +//# sourceMappingURL=map.test.js.map \ No newline at end of file diff --git a/esm/map.test.js.map b/esm/map.test.js.map new file mode 100644 index 0000000..beee566 --- /dev/null +++ b/esm/map.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"map.test.js","sourceRoot":"","sources":["../src/map.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/esm/mapIf.d.ts b/esm/mapIf.d.ts new file mode 100644 index 0000000..6e40785 --- /dev/null +++ b/esm/mapIf.d.ts @@ -0,0 +1,13 @@ +import { Predicate } from "./predicate.js"; +export interface MapIfElse { + (object: any, predicate: Predicate, trueUpdates: any, falseUpdates: any): unknown; + (predicate: Predicate, trueUpdates: any, falseUpdates: any): (unknown: any) => unknown; +} +export interface MapIf { + (object: any, predicate: Predicate, trueUpdates: any): unknown; + (predicate: Predicate, trueUpdates: any): (unknown: any) => unknown; +} +declare const _default: MapIf; +export default _default; +export declare const mapIfElse: MapIfElse; +//# sourceMappingURL=mapIf.d.ts.map \ No newline at end of file diff --git a/esm/mapIf.d.ts.map b/esm/mapIf.d.ts.map new file mode 100644 index 0000000..6e8883b --- /dev/null +++ b/esm/mapIf.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mapIf.d.ts","sourceRoot":"","sources":["../src/mapIf.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAkB,MAAM,gBAAgB,CAAC;AAY3D,MAAM,WAAW,SAAS;IACxB,CAAC,MAAM,KAAA,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,KAAA,EAAE,YAAY,KAAA,GAAG,OAAO,CAAC;IACnE,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,KAAA,EAAE,YAAY,KAAA,GAAG,CAAC,OAAO,KAAA,KAAK,OAAO,CAAC;CACzE;AAED,MAAM,WAAW,KAAK;IACpB,CAAC,MAAM,KAAA,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,KAAA,GAAG,OAAO,CAAC;IACrD,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,KAAA,GAAG,CAAC,OAAO,KAAA,KAAK,OAAO,CAAC;CAC3D;wBAE6B,KAAK;AAAnC,wBAAoC;AACpC,eAAO,MAAM,SAAS,EAAwB,SAAS,CAAC"} \ No newline at end of file diff --git a/esm/mapIf.js b/esm/mapIf.js new file mode 100644 index 0000000..c04d14c --- /dev/null +++ b/esm/mapIf.js @@ -0,0 +1,14 @@ +import wrap from "./wrap.js"; +import map from "./map.js"; +import ifElse from "./ifElse.js"; +import { buildPredicate } from "./predicate.js"; +function _mapIfElse(object, predicate, trueUpdates, falseUpdates) { + const test = buildPredicate(predicate); + return map(object, ifElse(test, trueUpdates, falseUpdates)); +} +function mapIf(object, predicate, trueUpdates) { + return _mapIfElse(object, predicate, trueUpdates, (x) => x); +} +export default wrap(mapIf); +export const mapIfElse = _mapIfElse; +//# sourceMappingURL=mapIf.js.map \ No newline at end of file diff --git a/esm/mapIf.js.map b/esm/mapIf.js.map new file mode 100644 index 0000000..cd66ade --- /dev/null +++ b/esm/mapIf.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mapIf.js","sourceRoot":"","sources":["../src/mapIf.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAa,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3D,SAAS,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY;IAC9D,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAEvC,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW;IAC3C,OAAO,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAYD,eAAe,IAAI,CAAC,KAAK,CAAU,CAAC;AACpC,MAAM,CAAC,MAAM,SAAS,GAAG,UAA8B,CAAC"} \ No newline at end of file diff --git a/esm/mapIf.test.d.ts b/esm/mapIf.test.d.ts new file mode 100644 index 0000000..b39da7b --- /dev/null +++ b/esm/mapIf.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=mapIf.test.d.ts.map \ No newline at end of file diff --git a/esm/mapIf.test.d.ts.map b/esm/mapIf.test.d.ts.map new file mode 100644 index 0000000..3c7eccc --- /dev/null +++ b/esm/mapIf.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mapIf.test.d.ts","sourceRoot":"","sources":["../src/mapIf.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/mapIf.test.js b/esm/mapIf.test.js new file mode 100644 index 0000000..ae26361 --- /dev/null +++ b/esm/mapIf.test.js @@ -0,0 +1,20 @@ +import { expect, test } from "vitest"; +import mapIf, { mapIfElse } from "./mapIf.js"; +test("does updates with the if and else", () => { + const object = [ + { x: 1, y: 0 }, + { x: 2, y: 0 }, + { x: 3, y: 0 }, + ]; + expect(mapIfElse(object, { x: 2 }, { y: 2 }, { y: 3 })).toEqual([ + { x: 1, y: 3 }, + { x: 2, y: 2 }, + { x: 3, y: 3 }, + ]); + expect(mapIf(object, { x: 2 }, { y: 2 })).toEqual([ + { x: 1, y: 0 }, + { x: 2, y: 2 }, + { x: 3, y: 0 }, + ]); +}); +//# sourceMappingURL=mapIf.test.js.map \ No newline at end of file diff --git a/esm/mapIf.test.js.map b/esm/mapIf.test.js.map new file mode 100644 index 0000000..0d0b996 --- /dev/null +++ b/esm/mapIf.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mapIf.test.js","sourceRoot":"","sources":["../src/mapIf.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAY,MAAM,QAAQ,CAAC;AAEhD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9C,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC7C,MAAM,MAAM,GAAG;QACb,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;QACd,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;QACd,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KACf,CAAC;IAEF,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9D,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;QACd,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;QACd,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KACf,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAChD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;QACd,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;QACd,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KACf,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/esm/matches.d.ts b/esm/matches.d.ts new file mode 100644 index 0000000..f6fb913 --- /dev/null +++ b/esm/matches.d.ts @@ -0,0 +1,7 @@ +export interface Matches { + (dataIn: any, matcher: any): boolean; + (matcher: any): (dataIn: any) => boolean; +} +declare const _default: Matches; +export default _default; +//# sourceMappingURL=matches.d.ts.map \ No newline at end of file diff --git a/esm/matches.d.ts.map b/esm/matches.d.ts.map new file mode 100644 index 0000000..8579a51 --- /dev/null +++ b/esm/matches.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"matches.d.ts","sourceRoot":"","sources":["../src/matches.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,OAAO;IACpB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC;IACrC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC;CAC5C;wBAE+B,OAAO;AAAvC,wBAAwC"} \ No newline at end of file diff --git a/esm/matches.js b/esm/matches.js new file mode 100644 index 0000000..32bf3ff --- /dev/null +++ b/esm/matches.js @@ -0,0 +1,11 @@ +import wrap from "./wrap.js"; +function matches(target, condition) { + if (typeof condition === "function") + return condition(target); + if (typeof condition === "object") { + return Object.entries(condition).every(([key, value]) => matches(target[key], value)); + } + return target === condition; +} +export default wrap(matches); +//# sourceMappingURL=matches.js.map \ No newline at end of file diff --git a/esm/matches.js.map b/esm/matches.js.map new file mode 100644 index 0000000..f5fd5c0 --- /dev/null +++ b/esm/matches.js.map @@ -0,0 +1 @@ +{"version":3,"file":"matches.js","sourceRoot":"","sources":["../src/matches.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,SAAS,OAAO,CAAC,MAAM,EAAE,SAAS;IAC9B,IAAI,OAAO,SAAS,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;IAE9D,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACpD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAC9B,CAAC;IACN,CAAC;IAED,OAAO,MAAM,KAAK,SAAS,CAAC;AAChC,CAAC;AAOD,eAAe,IAAI,CAAC,OAAO,CAAY,CAAC"} \ No newline at end of file diff --git a/esm/matches.test.d.ts b/esm/matches.test.d.ts new file mode 100644 index 0000000..1373347 --- /dev/null +++ b/esm/matches.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=matches.test.d.ts.map \ No newline at end of file diff --git a/esm/matches.test.d.ts.map b/esm/matches.test.d.ts.map new file mode 100644 index 0000000..385d4f9 --- /dev/null +++ b/esm/matches.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"matches.test.d.ts","sourceRoot":"","sources":["../src/matches.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/matches.test.js b/esm/matches.test.js new file mode 100644 index 0000000..3f1e945 --- /dev/null +++ b/esm/matches.test.js @@ -0,0 +1,10 @@ +import { test, expect } from "vitest"; +import matches from "./matches.js"; +test("basic", () => { + expect(matches(1, 1)).toBeTruthy(); + expect(matches(1, 2)).not.toBeTruthy(); + expect(matches({ a: 1, b: 2 }, { a: 1 })).toBeTruthy(); + expect(matches({ a: 2, b: 2 }, { a: 1 })).not.toBeTruthy(); + expect(matches({ 2: { a: (x) => x > 2 } })([1, 1, { a: 3 }])).toBeTruthy(); +}); +//# sourceMappingURL=matches.test.js.map \ No newline at end of file diff --git a/esm/matches.test.js.map b/esm/matches.test.js.map new file mode 100644 index 0000000..1f73306 --- /dev/null +++ b/esm/matches.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"matches.test.js","sourceRoot":"","sources":["../src/matches.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;IACjB,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACnC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IACvC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACvD,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAC3D,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;AAC7E,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/esm/omit.d.ts b/esm/omit.d.ts new file mode 100644 index 0000000..b0ec601 --- /dev/null +++ b/esm/omit.d.ts @@ -0,0 +1,7 @@ +export interface Omit { + (dataIn: any, toOmit: (string | number)[]): any; + (toOmit: (string | number)[]): (dataIn: any) => any; +} +declare const _default: Omit; +export default _default; +//# sourceMappingURL=omit.d.ts.map \ No newline at end of file diff --git a/esm/omit.d.ts.map b/esm/omit.d.ts.map new file mode 100644 index 0000000..5050692 --- /dev/null +++ b/esm/omit.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"omit.d.ts","sourceRoot":"","sources":["../src/omit.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,IAAI;IACnB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC;IAChD,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;CACrD;wBAE4B,IAAI;AAAjC,wBAAkC"} \ No newline at end of file diff --git a/esm/omit.js b/esm/omit.js new file mode 100644 index 0000000..d41c153 --- /dev/null +++ b/esm/omit.js @@ -0,0 +1,9 @@ +import { omit as _omit } from "remeda"; +import wrap from "./wrap.js"; +const sizeOf = (obj) => Object.keys(obj).length; +function omit(dataIn, toOmit) { + const result = _omit(dataIn, toOmit); + return sizeOf(result) === sizeOf(dataIn) ? dataIn : result; +} +export default wrap(omit); +//# sourceMappingURL=omit.js.map \ No newline at end of file diff --git a/esm/omit.js.map b/esm/omit.js.map new file mode 100644 index 0000000..fc5c2cb --- /dev/null +++ b/esm/omit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"omit.js","sourceRoot":"","sources":["../src/omit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAEhD,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM;IAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC;AAOD,eAAe,IAAI,CAAC,IAAI,CAAS,CAAC"} \ No newline at end of file diff --git a/esm/omit.test.d.ts b/esm/omit.test.d.ts new file mode 100644 index 0000000..4916be1 --- /dev/null +++ b/esm/omit.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=omit.test.d.ts.map \ No newline at end of file diff --git a/esm/omit.test.d.ts.map b/esm/omit.test.d.ts.map new file mode 100644 index 0000000..0fa85fc --- /dev/null +++ b/esm/omit.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"omit.test.d.ts","sourceRoot":"","sources":["../src/omit.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/omit.test.js b/esm/omit.test.js new file mode 100644 index 0000000..f60e1fe --- /dev/null +++ b/esm/omit.test.js @@ -0,0 +1,16 @@ +import { expect, it } from "vitest"; +import omit from "./omit.js"; +import u from "./index.js"; +it("can omit a key", () => { + const result = u({ foo: omit(["bar"]) })({ foo: { bar: 7 } }); + expect(result).to.eql({ foo: {} }); +}); +it("freezes the result", () => { + expect(Object.isFrozen(omit({}, ["a"]))).to.be.true; +}); +it("doesn't change the obj if nothing is omitted", () => { + const orig = { a: 1 }; + const result = omit(["b"])(orig); + expect(result).to.be.equal(orig); +}); +//# sourceMappingURL=omit.test.js.map \ No newline at end of file diff --git a/esm/omit.test.js.map b/esm/omit.test.js.map new file mode 100644 index 0000000..6a106da --- /dev/null +++ b/esm/omit.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"omit.test.js","sourceRoot":"","sources":["../src/omit.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,CAAC,MAAM,YAAY,CAAC;AAE3B,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;IACxB,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAE9D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC5B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;AACtD,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;IACtD,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/esm/omitBy.d.ts b/esm/omitBy.d.ts new file mode 100644 index 0000000..7143474 --- /dev/null +++ b/esm/omitBy.d.ts @@ -0,0 +1,4 @@ +import { omitBy as _omitBy } from "remeda"; +declare const _default: typeof _omitBy; +export default _default; +//# sourceMappingURL=omitBy.d.ts.map \ No newline at end of file diff --git a/esm/omitBy.d.ts.map b/esm/omitBy.d.ts.map new file mode 100644 index 0000000..cc53a18 --- /dev/null +++ b/esm/omitBy.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"omitBy.d.ts","sourceRoot":"","sources":["../src/omitBy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC;wBAYZ,OAAO,OAAO;AAA7C,wBAA8C"} \ No newline at end of file diff --git a/esm/omitBy.js b/esm/omitBy.js new file mode 100644 index 0000000..eca7174 --- /dev/null +++ b/esm/omitBy.js @@ -0,0 +1,10 @@ +import { omitBy as _omitBy } from "remeda"; +import { buildPredicate } from "./predicate.js"; +import wrap from "./wrap.js"; +const sizeOf = (obj) => Object.keys(obj).length; +function omitBy(dataIn, predicate) { + const result = _omitBy(dataIn, buildPredicate(predicate)); + return sizeOf(result) === sizeOf(dataIn) ? dataIn : result; +} +export default wrap(omitBy); +//# sourceMappingURL=omitBy.js.map \ No newline at end of file diff --git a/esm/omitBy.js.map b/esm/omitBy.js.map new file mode 100644 index 0000000..a0613fa --- /dev/null +++ b/esm/omitBy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"omitBy.js","sourceRoot":"","sources":["../src/omitBy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAEhD,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC;AAED,eAAe,IAAI,CAAC,MAAM,CAAmB,CAAC"} \ No newline at end of file diff --git a/esm/omitBy.test.d.ts b/esm/omitBy.test.d.ts new file mode 100644 index 0000000..659a4ed --- /dev/null +++ b/esm/omitBy.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=omitBy.test.d.ts.map \ No newline at end of file diff --git a/esm/omitBy.test.d.ts.map b/esm/omitBy.test.d.ts.map new file mode 100644 index 0000000..d771a27 --- /dev/null +++ b/esm/omitBy.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"omitBy.test.d.ts","sourceRoot":"","sources":["../src/omitBy.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/omitBy.test.js b/esm/omitBy.test.js new file mode 100644 index 0000000..1d527a9 --- /dev/null +++ b/esm/omitBy.test.js @@ -0,0 +1,17 @@ +import { expect, it } from "vitest"; +import u from "./index.js"; +import omitBy from "./omitBy.js"; +it("can omitBy with a function", () => { + const predicate = (value, key) => value === 7 && key === "bar"; + const result = u({ foo: u.omitBy(predicate) })({ foo: { bar: 7, baz: "a" } }); + expect(result).to.eql({ foo: { baz: "a" } }); +}); +it("freezes the result", () => { + expect(Object.isFrozen(u.omitBy("a")({}))).to.be.true; +}); +it("doesn't change the obj if nothing is omitted", () => { + const orig = { a: 1 }; + const result = omitBy(() => false)(orig); + expect(result).to.be.equal(orig); +}); +//# sourceMappingURL=omitBy.test.js.map \ No newline at end of file diff --git a/esm/omitBy.test.js.map b/esm/omitBy.test.js.map new file mode 100644 index 0000000..0a15630 --- /dev/null +++ b/esm/omitBy.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"omitBy.test.js","sourceRoot":"","sources":["../src/omitBy.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAY,MAAM,QAAQ,CAAC;AAC9C,OAAO,CAAC,MAAM,YAAY,CAAC;AAC3B,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACpC,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,KAAK,CAAC;IAC/D,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAE9E,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC5B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;AAC/D,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;IACtD,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/esm/pick.d.ts b/esm/pick.d.ts new file mode 100644 index 0000000..a1656cc --- /dev/null +++ b/esm/pick.d.ts @@ -0,0 +1,7 @@ +export interface UPick { + (keys: S[]): (dataIn: O) => Pick; + (dataIn: O, keys: S[]): Pick; +} +declare const _default: UPick; +export default _default; +//# sourceMappingURL=pick.d.ts.map \ No newline at end of file diff --git a/esm/pick.d.ts.map b/esm/pick.d.ts.map new file mode 100644 index 0000000..a0e79fa --- /dev/null +++ b/esm/pick.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../src/pick.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,KAAK;IACpB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACjC,IAAI,EAAE,CAAC,EAAE,GACR,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,EACpC,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,CAAC,EAAE,GACR,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;CACzB;wBAO4B,KAAK;AAAlC,wBAAmC"} \ No newline at end of file diff --git a/esm/pick.js b/esm/pick.js new file mode 100644 index 0000000..e12d513 --- /dev/null +++ b/esm/pick.js @@ -0,0 +1,9 @@ +import { pick as _pick } from "remeda"; +import wrap from "./wrap.js"; +const sizeOf = (obj) => Object.keys(obj).length; +function pick(dataIn, keys) { + const result = _pick(dataIn, keys); + return sizeOf(result) === sizeOf(dataIn) ? dataIn : result; +} +export default wrap(pick); +//# sourceMappingURL=pick.js.map \ No newline at end of file diff --git a/esm/pick.js.map b/esm/pick.js.map new file mode 100644 index 0000000..78ad182 --- /dev/null +++ b/esm/pick.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pick.js","sourceRoot":"","sources":["../src/pick.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAYhD,SAAS,IAAI,CAAC,MAAM,EAAE,IAAI;IACxB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC;AAED,eAAe,IAAI,CAAC,IAAI,CAAU,CAAC"} \ No newline at end of file diff --git a/esm/pick.test.d.ts b/esm/pick.test.d.ts new file mode 100644 index 0000000..64b8719 --- /dev/null +++ b/esm/pick.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=pick.test.d.ts.map \ No newline at end of file diff --git a/esm/pick.test.d.ts.map b/esm/pick.test.d.ts.map new file mode 100644 index 0000000..9dadf2b --- /dev/null +++ b/esm/pick.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"pick.test.d.ts","sourceRoot":"","sources":["../src/pick.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/pick.test.js b/esm/pick.test.js new file mode 100644 index 0000000..5f0e12f --- /dev/null +++ b/esm/pick.test.js @@ -0,0 +1,19 @@ +import { expect, it } from "vitest"; +import pick from "./pick.js"; +import u from "./index.js"; +it("can pick a key", () => { + const pickBar = pick(["bar"]); + const result = u({ foo: pickBar })({ + foo: { bar: 7, baz: 8 }, + }); + expect(result).to.eql({ foo: { bar: 7 } }); +}); +it("freezes the result", () => { + expect(Object.isFrozen(pick({ a: 1 }, ["a"]))).to.be.true; +}); +it("doesn't change the obj if nothing is modified", () => { + const orig = { a: 1 }; + const result = pick(["a"])(orig); + expect(result).to.be.equal(orig); +}); +//# sourceMappingURL=pick.test.js.map \ No newline at end of file diff --git a/esm/pick.test.js.map b/esm/pick.test.js.map new file mode 100644 index 0000000..7406cfc --- /dev/null +++ b/esm/pick.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pick.test.js","sourceRoot":"","sources":["../src/pick.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,CAAC,MAAM,YAAY,CAAC;AAE3B,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;IACxB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,KAAK,CAAQ,CAAC,CAAC;IAErC,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QACjC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;KACxB,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC5B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;IACvD,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/esm/pickBy.d.ts b/esm/pickBy.d.ts new file mode 100644 index 0000000..8ac5835 --- /dev/null +++ b/esm/pickBy.d.ts @@ -0,0 +1,4 @@ +import { pickBy as _pick } from "remeda"; +declare const _default: typeof _pick; +export default _default; +//# sourceMappingURL=pickBy.d.ts.map \ No newline at end of file diff --git a/esm/pickBy.d.ts.map b/esm/pickBy.d.ts.map new file mode 100644 index 0000000..3548f18 --- /dev/null +++ b/esm/pickBy.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"pickBy.d.ts","sourceRoot":"","sources":["../src/pickBy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,QAAQ,CAAC;wBAYV,OAAO,KAAK;AAA3C,wBAA4C"} \ No newline at end of file diff --git a/esm/pickBy.js b/esm/pickBy.js new file mode 100644 index 0000000..66872c8 --- /dev/null +++ b/esm/pickBy.js @@ -0,0 +1,10 @@ +import { pickBy as _pick } from "remeda"; +import { buildPredicate } from "./predicate.js"; +import wrap from "./wrap.js"; +const sizeOf = (obj) => Object.keys(obj).length; +function pickBy(dataIn, predicate) { + const result = _pick(dataIn, buildPredicate(predicate)); + return sizeOf(result) === sizeOf(dataIn) ? dataIn : result; +} +export default wrap(pickBy); +//# sourceMappingURL=pickBy.js.map \ No newline at end of file diff --git a/esm/pickBy.js.map b/esm/pickBy.js.map new file mode 100644 index 0000000..9f9fae8 --- /dev/null +++ b/esm/pickBy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pickBy.js","sourceRoot":"","sources":["../src/pickBy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAEhD,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC;AAED,eAAe,IAAI,CAAC,MAAM,CAAiB,CAAC"} \ No newline at end of file diff --git a/esm/pickBy.test.d.ts b/esm/pickBy.test.d.ts new file mode 100644 index 0000000..2d97b74 --- /dev/null +++ b/esm/pickBy.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=pickBy.test.d.ts.map \ No newline at end of file diff --git a/esm/pickBy.test.d.ts.map b/esm/pickBy.test.d.ts.map new file mode 100644 index 0000000..1abe605 --- /dev/null +++ b/esm/pickBy.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"pickBy.test.d.ts","sourceRoot":"","sources":["../src/pickBy.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/pickBy.test.js b/esm/pickBy.test.js new file mode 100644 index 0000000..345156a --- /dev/null +++ b/esm/pickBy.test.js @@ -0,0 +1,18 @@ +import { expect, it } from "vitest"; +import pickBy from "./pickBy.js"; +import u from "./index.js"; +it("can pick a key", () => { + const result = u({ foo: pickBy((v, k) => k === "bar") })({ + foo: { bar: 7, baz: 8 }, + }); + expect(result).to.eql({ foo: { bar: 7 } }); +}); +it("freezes the result", () => { + expect(Object.isFrozen(pickBy({}, () => true))).to.be.true; +}); +it("doesn't change the obj if nothing is modified", () => { + const orig = { a: 1 }; + const result = pickBy(() => true)(orig); + expect(result).to.be.equal(orig); +}); +//# sourceMappingURL=pickBy.test.js.map \ No newline at end of file diff --git a/esm/pickBy.test.js.map b/esm/pickBy.test.js.map new file mode 100644 index 0000000..551b1f6 --- /dev/null +++ b/esm/pickBy.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pickBy.test.js","sourceRoot":"","sources":["../src/pickBy.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,CAAC,MAAM,YAAY,CAAC;AAE3B,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;IACxB,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;QACvD,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;KACxB,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC5B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;IACvD,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/esm/predicate.d.ts b/esm/predicate.d.ts new file mode 100644 index 0000000..009e785 --- /dev/null +++ b/esm/predicate.d.ts @@ -0,0 +1,3 @@ +export type Predicate = ((source: any) => boolean) | boolean | Record; +export declare function buildPredicate(predicate: any): any; +//# sourceMappingURL=predicate.d.ts.map \ No newline at end of file diff --git a/esm/predicate.d.ts.map b/esm/predicate.d.ts.map new file mode 100644 index 0000000..2e80337 --- /dev/null +++ b/esm/predicate.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"predicate.d.ts","sourceRoot":"","sources":["../src/predicate.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GACjB,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,GAC1B,OAAO,GACP,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAExB,wBAAgB,cAAc,CAAC,SAAS,KAAA,OAIvC"} \ No newline at end of file diff --git a/esm/predicate.js b/esm/predicate.js new file mode 100644 index 0000000..4ef14b1 --- /dev/null +++ b/esm/predicate.js @@ -0,0 +1,9 @@ +import matches from "./matches.js"; +export function buildPredicate(predicate) { + if (typeof predicate === "function") + return predicate; + if (typeof predicate === "object") + return matches(predicate); + return () => !!predicate; +} +//# sourceMappingURL=predicate.js.map \ No newline at end of file diff --git a/esm/predicate.js.map b/esm/predicate.js.map new file mode 100644 index 0000000..0dec0b6 --- /dev/null +++ b/esm/predicate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"predicate.js","sourceRoot":"","sources":["../src/predicate.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAOnC,MAAM,UAAU,cAAc,CAAC,SAAS;IACtC,IAAI,OAAO,SAAS,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7D,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3B,CAAC"} \ No newline at end of file diff --git a/esm/reject.d.ts b/esm/reject.d.ts new file mode 100644 index 0000000..1d23fc7 --- /dev/null +++ b/esm/reject.d.ts @@ -0,0 +1,4 @@ +import { filter } from "remeda"; +declare const _default: typeof filter; +export default _default; +//# sourceMappingURL=reject.d.ts.map \ No newline at end of file diff --git a/esm/reject.d.ts.map b/esm/reject.d.ts.map new file mode 100644 index 0000000..b97298e --- /dev/null +++ b/esm/reject.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"reject.d.ts","sourceRoot":"","sources":["../src/reject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;wBAaD,OAAO,MAAM;AAA5C,wBAA6C"} \ No newline at end of file diff --git a/esm/reject.js b/esm/reject.js new file mode 100644 index 0000000..1eea291 --- /dev/null +++ b/esm/reject.js @@ -0,0 +1,11 @@ +import { filter } from "remeda"; +import { buildPredicate } from "./predicate.js"; +import wrap from "./wrap.js"; +const sizeOf = (obj) => obj.length; +function reject(dataIn, predicate) { + const pred = buildPredicate(predicate); + const result = filter(dataIn, (...args) => !pred(...args)); + return sizeOf(result) === sizeOf(dataIn) ? dataIn : result; +} +export default wrap(reject); +//# sourceMappingURL=reject.js.map \ No newline at end of file diff --git a/esm/reject.js.map b/esm/reject.js.map new file mode 100644 index 0000000..f82fa17 --- /dev/null +++ b/esm/reject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"reject.js","sourceRoot":"","sources":["../src/reject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;AAEnC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS;IAC/B,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC;AAED,eAAe,IAAI,CAAC,MAAM,CAAkB,CAAC"} \ No newline at end of file diff --git a/esm/reject.test.d.ts b/esm/reject.test.d.ts new file mode 100644 index 0000000..18dcb97 --- /dev/null +++ b/esm/reject.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=reject.test.d.ts.map \ No newline at end of file diff --git a/esm/reject.test.d.ts.map b/esm/reject.test.d.ts.map new file mode 100644 index 0000000..83d9c9b --- /dev/null +++ b/esm/reject.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"reject.test.d.ts","sourceRoot":"","sources":["../src/reject.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/reject.test.js b/esm/reject.test.js new file mode 100644 index 0000000..4fe2606 --- /dev/null +++ b/esm/reject.test.js @@ -0,0 +1,20 @@ +import { expect, test } from "vitest"; +import reject from "./reject.js"; +import u from "./index.js"; +test("can reject", () => { + const result = u({ + foo: reject((_, k) => k === 1), + })({ + foo: ["a", "b"], + }); + expect(result).to.eql({ foo: ["a"] }); +}); +test("freezes the result", () => { + expect(Object.isFrozen(reject([1], () => true))).to.be.true; +}); +test("doesn't change the obj if nothing is modified", () => { + const orig = [1, 2, 3]; + const result = reject(() => false)(orig); + expect(result).to.be.equal(orig); +}); +//# sourceMappingURL=reject.test.js.map \ No newline at end of file diff --git a/esm/reject.test.js.map b/esm/reject.test.js.map new file mode 100644 index 0000000..1a3c2db --- /dev/null +++ b/esm/reject.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"reject.test.js","sourceRoot":"","sources":["../src/reject.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,CAAC,MAAM,YAAY,CAAC;AAE3B,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;IACtB,MAAM,MAAM,GAAG,CAAC,CAAC;QACf,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;KAC/B,CAAC,CAAC;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;KAChB,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC9B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;IACzD,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACvB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/esm/same-if-unchanged.test.d.ts b/esm/same-if-unchanged.test.d.ts new file mode 100644 index 0000000..3f2b315 --- /dev/null +++ b/esm/same-if-unchanged.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=same-if-unchanged.test.d.ts.map \ No newline at end of file diff --git a/esm/same-if-unchanged.test.d.ts.map b/esm/same-if-unchanged.test.d.ts.map new file mode 100644 index 0000000..ee8764f --- /dev/null +++ b/esm/same-if-unchanged.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"same-if-unchanged.test.d.ts","sourceRoot":"","sources":["../src/same-if-unchanged.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/same-if-unchanged.test.js b/esm/same-if-unchanged.test.js new file mode 100644 index 0000000..3467a41 --- /dev/null +++ b/esm/same-if-unchanged.test.js @@ -0,0 +1,25 @@ +import { test, expect, describe } from "vitest"; +import u from "./index.js"; +describe("update", () => { + test("basic", () => { + const orig = { a: 1 }; + const result = u(orig, { a: 1 }); + expect(result).toBe(orig); + }); + test("array", () => { + const orig = [1, 2, 3]; + const result = u(orig, { 1: 2 }); + expect(result).toBe(orig); + }); + test("with u.skip", () => { + const orig = { a: 1 }; + const result = u(orig, { b: u.skip }); + expect(result).toBe(orig); + }); + test("found in the wild", () => { + const x = { a: { c: 3 }, b: 2 }; + const res = u(x, { a: { c: 3 } }); + expect(res).toBe(x); + }); +}); +//# sourceMappingURL=same-if-unchanged.test.js.map \ No newline at end of file diff --git a/esm/same-if-unchanged.test.js.map b/esm/same-if-unchanged.test.js.map new file mode 100644 index 0000000..7c4cd6e --- /dev/null +++ b/esm/same-if-unchanged.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"same-if-unchanged.test.js","sourceRoot":"","sources":["../src/same-if-unchanged.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,CAAC,MAAM,YAAY,CAAC;AAE3B,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;QACjB,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;QACjB,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;QACvB,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/esm/update.d.ts b/esm/update.d.ts new file mode 100644 index 0000000..18fc699 --- /dev/null +++ b/esm/update.d.ts @@ -0,0 +1,10 @@ +export declare const skip: () => Readonly<{ + __skip: boolean; +}>; +export interface Update { + (object: any, func: any): any; + (func: any): (object: any) => any; +} +declare const _default: Update; +export default _default; +//# sourceMappingURL=update.d.ts.map \ No newline at end of file diff --git a/esm/update.d.ts.map b/esm/update.d.ts.map new file mode 100644 index 0000000..83ac76f --- /dev/null +++ b/esm/update.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,IAAI;;EAAyB,CAAC;AA0G3C,MAAM,WAAW,MAAM;IACrB,CAAC,MAAM,KAAA,EAAE,IAAI,KAAA,GAAG,GAAG,CAAC;IACpB,CAAC,IAAI,KAAA,GAAG,CAAC,MAAM,KAAA,KAAK,GAAG,CAAC;CACzB;wBAE8B,MAAM;AAArC,wBAAsC"} \ No newline at end of file diff --git a/esm/update.js b/esm/update.js new file mode 100644 index 0000000..81f2abc --- /dev/null +++ b/esm/update.js @@ -0,0 +1,81 @@ +import wrap from "./wrap.js"; +import constant from "./constant.js"; +import * as R from "remeda"; +import { omitBy, merge } from "remeda"; +const innerOmitted = { __skip: true }; +export const skip = constant(innerOmitted); +function isEmpty(object) { + return !Object.keys(object).length; +} +function reduce(object, callback, initialValue) { + return Object.keys(object).reduce((acc, key) => callback(acc, object[key], key), initialValue); +} +function resolveUpdates(updates, object) { + return reduce(updates, (acc, value, key) => { + let updatedValue = value; + if (!Array.isArray(value) && + value !== null && + typeof value === "object") { + updatedValue = update(object[key], value); // eslint-disable-line no-use-before-define + } + else if (typeof value === "function") { + updatedValue = value(object[key]); + } + if (object[key] !== updatedValue) { + acc[key] = updatedValue; // eslint-disable-line no-param-reassign + } + return acc; + }, {}); +} +function updateArray(updates, object) { + const newArray = [...object]; + Object.keys(updates).forEach((key) => { + newArray[key] = updates[key]; + }); + return newArray; +} +const isPlainObject = (value) => (value === null || value === void 0 ? void 0 : value.constructor) === Object; +/** + * Recursively update an object or array. + * + * Can update with values: + * update({ foo: 3 }, { foo: 1, bar: 2 }); + * // => { foo: 3, bar: 2 } + * + * Or with a function: + * update({ foo: x => (x + 1) }, { foo: 2 }); + * // => { foo: 3 } + * + * @function + * @name update + * @param {Object|Function} updates + * @param {Object|Array} object to update + * @return {Object|Array} new object with modifications + */ +function update(object, updates) { + if (typeof updates === "function") { + return updates(object); + } + if (Array.isArray(object) && R.isDeepEqual(object, updates)) + return object; + if (!isPlainObject(updates)) { + return updates; + } + const defaultedObject = typeof object === "undefined" || object === null ? {} : object; + const resolvedUpdates = resolveUpdates(updates, defaultedObject); + Object.entries(resolvedUpdates).forEach(([key, value]) => { + if (value === innerOmitted) { + if (!defaultedObject.hasOwnProperty(key)) + delete resolvedUpdates[key]; + } + }); + if (isEmpty(resolvedUpdates)) { + return defaultedObject; + } + if (Array.isArray(defaultedObject)) { + return updateArray(resolvedUpdates, defaultedObject).filter((value) => value !== innerOmitted); + } + return omitBy(merge(defaultedObject, resolvedUpdates), (value) => value === innerOmitted); +} +export default wrap(update); +//# sourceMappingURL=update.js.map \ No newline at end of file diff --git a/esm/update.js.map b/esm/update.js.map new file mode 100644 index 0000000..ab242b8 --- /dev/null +++ b/esm/update.js.map @@ -0,0 +1 @@ +{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/esm/updateIn.d.ts b/esm/updateIn.d.ts new file mode 100644 index 0000000..ff961b3 --- /dev/null +++ b/esm/updateIn.d.ts @@ -0,0 +1,7 @@ +export interface UpdateIn { + (object: any, path: any, value: any): any; + (path: any, value: any): (object: any) => any; +} +declare const _default: UpdateIn; +export default _default; +//# sourceMappingURL=updateIn.d.ts.map \ No newline at end of file diff --git a/esm/updateIn.d.ts.map b/esm/updateIn.d.ts.map new file mode 100644 index 0000000..c003e0b --- /dev/null +++ b/esm/updateIn.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"updateIn.d.ts","sourceRoot":"","sources":["../src/updateIn.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,QAAQ;IACvB,CAAC,MAAM,KAAA,EAAE,IAAI,KAAA,EAAE,KAAK,KAAA,GAAG,GAAG,CAAC;IAC3B,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA,GAAG,CAAC,MAAM,KAAA,KAAK,GAAG,CAAC;CAChC;wBAEgC,QAAQ;AAAzC,wBAA0C"} \ No newline at end of file diff --git a/esm/updateIn.js b/esm/updateIn.js new file mode 100644 index 0000000..4e98868 --- /dev/null +++ b/esm/updateIn.js @@ -0,0 +1,21 @@ +import update from "./update.js"; +import splitPath from "./util/splitPath.js"; +import wrap from "./wrap.js"; +import map from "./map.js"; +const wildcard = "*"; +function reducePath(acc, key) { + if (key === wildcard) { + return (value) => Object.prototype.hasOwnProperty.call(value, wildcard) + ? // If we actually have wildcard as a property, update that + update(value, { [wildcard]: acc }) + : // Otherwise map over all properties + map(value, acc); + } + return { [key]: acc }; +} +function updateIn(object, path, value) { + const updates = splitPath(path).reduceRight(reducePath, value); + return update(object, updates); +} +export default wrap(updateIn); +//# sourceMappingURL=updateIn.js.map \ No newline at end of file diff --git a/esm/updateIn.js.map b/esm/updateIn.js.map new file mode 100644 index 0000000..b29a527 --- /dev/null +++ b/esm/updateIn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"updateIn.js","sourceRoot":"","sources":["../src/updateIn.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,MAAM,QAAQ,GAAG,GAAG,CAAC;AAErB,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG;IAC1B,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;YACnD,CAAC,CAAC,0DAA0D;gBAC1D,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;YACpC,CAAC,CAAC,oCAAoC;gBACpC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK;IACnC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAE/D,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAOD,eAAe,IAAI,CAAC,QAAQ,CAAa,CAAC"} \ No newline at end of file diff --git a/esm/updateIn.test.d.ts b/esm/updateIn.test.d.ts new file mode 100644 index 0000000..6a23d85 --- /dev/null +++ b/esm/updateIn.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=updateIn.test.d.ts.map \ No newline at end of file diff --git a/esm/updateIn.test.d.ts.map b/esm/updateIn.test.d.ts.map new file mode 100644 index 0000000..6be947e --- /dev/null +++ b/esm/updateIn.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"updateIn.test.d.ts","sourceRoot":"","sources":["../src/updateIn.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/updateIn.test.js b/esm/updateIn.test.js new file mode 100644 index 0000000..b376a79 --- /dev/null +++ b/esm/updateIn.test.js @@ -0,0 +1,52 @@ +import { expect, test, describe } from "vitest"; +import updateIn from "./updateIn.js"; +describe("updateIn", () => { + test("can update a single path described with a string", () => { + const object = { a: { b: 0 } }; + const result = updateIn("a.b", 3)(object); + expect(result).to.eql({ a: { b: 3 } }); + }); + test("can update a single path described with a string with a function", () => { + const inc = (x) => x + 1; + const object = { a: { b: 0 } }; + const result = updateIn("a.b", inc)(object); + expect(result).to.eql({ a: { b: 1 } }); + }); + test("can update a single path described with an array", () => { + const object = { a: { b: 0 } }; + const result = updateIn(["a", "b"], 3)(object); + expect(result).to.eql({ a: { b: 3 } }); + }); + test("can update arrays", () => { + const object = { a: [0, 0, 0] }; + const result = updateIn("a.1", 3)(object); + expect(result).to.eql({ a: [0, 3, 0] }); + }); + test("can be partially applied", () => { + const object = { a: { b: 0 } }; + const result = updateIn("a.b", 3)(object); + expect(result).to.eql({ a: { b: 3 } }); + }); + test("replaces the object outright if the path is empty", () => { + const object = {}; + const result = updateIn("", 3)(object); + expect(result).to.equal(3); + }); + test("freezes the result", () => { + expect(Object.isFrozen(updateIn("a", 0)({}))).to.be.true; + }); + test("can multiple elements of an array with *", () => { + let object = { a: [{ b: 0 }, { b: 1 }, { b: 2 }] }; + let result = updateIn("a.*.b", (x) => x + 1)(object); + expect(result).to.eql({ a: [{ b: 1 }, { b: 2 }, { b: 3 }] }); + object = { a: [0, 1, 2] }; + result = updateIn(["a", "*"], (x) => x + 1)(object); + expect(result).to.eql({ a: [1, 2, 3] }); + }); + test("can update properties named *", () => { + const object = { "*": 1, x: 1 }; + const result = updateIn("*", (x) => x + 1)(object); + expect(result).to.eql({ "*": 2, x: 1 }); + }); +}); +//# sourceMappingURL=updateIn.test.js.map \ No newline at end of file diff --git a/esm/updateIn.test.js.map b/esm/updateIn.test.js.map new file mode 100644 index 0000000..e138999 --- /dev/null +++ b/esm/updateIn.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"updateIn.test.js","sourceRoot":"","sources":["../src/updateIn.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/esm/updeep.bench.d.ts b/esm/updeep.bench.d.ts new file mode 100644 index 0000000..87237b2 --- /dev/null +++ b/esm/updeep.bench.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=updeep.bench.d.ts.map \ No newline at end of file diff --git a/esm/updeep.bench.d.ts.map b/esm/updeep.bench.d.ts.map new file mode 100644 index 0000000..393d6cf --- /dev/null +++ b/esm/updeep.bench.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"updeep.bench.d.ts","sourceRoot":"","sources":["../src/updeep.bench.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/updeep.bench.js b/esm/updeep.bench.js new file mode 100644 index 0000000..bcdfd75 --- /dev/null +++ b/esm/updeep.bench.js @@ -0,0 +1,10 @@ +import original from "updeep"; +import contender from "./index.js"; +import { bench } from "vitest"; +bench("original, simple update", () => { + original({ a: 1 })({ a: 2, b: 3 }); +}); +bench("contender, simple update", () => { + contender({ a: 1 })({ a: 2, b: 3 }); +}); +//# sourceMappingURL=updeep.bench.js.map \ No newline at end of file diff --git a/esm/updeep.bench.js.map b/esm/updeep.bench.js.map new file mode 100644 index 0000000..06af885 --- /dev/null +++ b/esm/updeep.bench.js.map @@ -0,0 +1 @@ +{"version":3,"file":"updeep.bench.js","sourceRoot":"","sources":["../src/updeep.bench.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,QAAQ,CAAC;AAC9B,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,KAAK,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACnC,QAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACrC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/esm/updeep.test.d.ts b/esm/updeep.test.d.ts new file mode 100644 index 0000000..c9a3e6b --- /dev/null +++ b/esm/updeep.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=updeep.test.d.ts.map \ No newline at end of file diff --git a/esm/updeep.test.d.ts.map b/esm/updeep.test.d.ts.map new file mode 100644 index 0000000..96f1294 --- /dev/null +++ b/esm/updeep.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"updeep.test.d.ts","sourceRoot":"","sources":["../src/updeep.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/updeep.test.js b/esm/updeep.test.js new file mode 100644 index 0000000..3ffba00 --- /dev/null +++ b/esm/updeep.test.js @@ -0,0 +1,132 @@ +import { expect, test, describe } from "vitest"; +import u from "./index.js"; +test("does not change anything if no updates are specified", () => { + const object = { foo: 3, bar: [7, 5] }; + const result = u(object, {}); + expect(result).to.equal(object); +}); +test("can update with fixed values", () => { + const object = { foo: 3, bar: [7, 5] }; + const result = u(object, { foo: 4 }); + expect(result).to.deep.equal({ foo: 4, bar: [7, 5] }); +}); +test("returns the same instance if an update doesn't make changes", () => { + const object = { foo: 3 }; + const result = u({ foo: 3 })(object); + expect(result).to.equal(object); +}); +test("can update a nested structure", () => { + const object = { foo: { bar: 7, bam: 3 }, baz: 32 }; + const result = u({ foo: { bar: 8 } })(object); + expect(result).to.deep.equal({ foo: { bar: 8, bam: 3 }, baz: 32 }); +}); +test("can update arrays", () => { + const object = [1, 2, 3]; + const result = u({ 1: 7 })(object); + expect(result).to.deep.equal([1, 7, 3]); +}); +test("replaces the object outright if updates are a constant", () => { + expect(u(3)({})).to.equal(3); + expect(u(null)({})).to.be.null; +}); +test("can add an element to an array", () => { + const object = []; + const result = u({ 0: 3 })(object); + expect(result).to.eql([3]); +}); +test("can update nested arrays", () => { + const object = { foo: [1, 2, 3], bar: 9 }; + const result = u({ foo: { 1: 7 } })(object); + expect(result).to.deep.equal({ foo: [1, 7, 3], bar: 9 }); +}); +test("can use functions to update values", () => { + const inc = (i) => i + 1; + const object = { foo: 3, bar: 4, baz: 7 }; + const result = u({ foo: inc, bar: inc })(object); + expect(result).to.deep.equal({ foo: 4, bar: 5, baz: 7 }); +}); +test("can be partially applied", () => { + const inc = (i) => i + 1; + const object = { foo: 3 }; + const incFoo = u({ foo: inc }); + const result = incFoo(object); + expect(result).to.deep.equal({ foo: 4 }); +}); +test("can update if the value is an array", () => { + const object = {}; + const result = u({ foo: [0, 1] })(object); + expect(result).to.deep.equal({ foo: [0, 1] }); +}); +test("can update when original object is undefined", () => { + const result = u({ foo: [0, 1] })(undefined); + expect(result).to.deep.equal({ foo: [0, 1] }); +}); +test("can take a function as the updater", () => { + const result = u((i) => i + 1)(7); + expect(result).to.eql(8); +}); +test("deeply freezes the result", () => { + const result = u({ foo: { bar: 3 } }, { foo: { bar: 0 } }); + expect(Object.isFrozen(result)).to.be.true; + expect(Object.isFrozen(result.foo)).to.be.true; +}); +test("assigns null values", () => { + expect(u({ isNull: null }, {})).to.eql({ isNull: null }); +}); +test("defaults to an empty object when null or undefined", () => { + let result = u({ a: { b: 0 } })({ a: null }); + expect(result).to.eql({ a: { b: 0 } }); + result = u({ a: { b: 0 } })({ a: undefined }); + expect(result).to.eql({ a: { b: 0 } }); + result = u({ a: { b: 0 } })({}); + expect(result).to.eql({ a: { b: 0 } }); +}); +test("preserves empty objects when empty updates are specified", () => { + const result = u({ a: {} })({}); + expect(result).to.eql({ a: {} }); +}); +test("works with date objects", () => { + const date = new Date(); + const result = u({ created: date })({}); + expect(result).toEqual({ created: date }); +}); +const expectU = (update, orig, expected) => expect(update(orig)).to.eql(expected); +describe("u.skip", () => { + test("omit properties via u.skip", () => { + expectU(u({ a: u.skip, b: (i) => i + 1 }), { a: 1, b: 2 }, { b: 3 }); + }); + test("omit array and object properties", () => { + expectU(u({ a: u.skip, b: "stuff", c: u.skip }), { a: [1, 2, 3], b: "orig", c: { z: "bar" } }, { b: "stuff" }); + }); + test("deep omit", () => { + expectU(u({ a: { b: u.skip, c: "stuff" } }), { a: { b: "foo", z: "bar" } }, { a: { z: "bar", c: "stuff" } }); + }); + test("omitting an array item filters it out", () => { + expectU(u({ 1: u.skip }), ["a", "b", "c"], ["a", "c"]); + }); + test("doesn't change the obj if nothing is omitted", () => { + const orig = { a: 1 }; + const result = u(orig, { b: u.skip }); + expect(result).to.be.equal(orig); + }); + test("doesn't change the array if nothing is omitted", () => { + const orig = [1, 2, 3]; + const result = u({ 4: u.skip })(orig); + expect(result).to.be.equal(orig); + }); +}); +test("has map", () => { + expect(u).toHaveProperty("map"); +}); +test("deep equality", () => { + const orig = [1, 2, 3]; + // no change? same structure + expect(u(orig, [1, 2, 3])).toBe(orig); + const deepOrig = [1, 2, [3, 4]]; + expect(u(deepOrig, [1, 2, [3, 4]])).toBe(deepOrig); +}); +test("expect mapIf and mapIfElse to be present", () => { + expect(u.mapIf).toBeTypeOf("function"); + expect(u.mapIfElse).toBeTypeOf("function"); +}); +//# sourceMappingURL=updeep.test.js.map \ No newline at end of file diff --git a/esm/updeep.test.js.map b/esm/updeep.test.js.map new file mode 100644 index 0000000..26eeda7 --- /dev/null +++ b/esm/updeep.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"updeep.test.js","sourceRoot":"","sources":["../src/updeep.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/esm/util/splitPath.d.ts b/esm/util/splitPath.d.ts new file mode 100644 index 0000000..6daeb5e --- /dev/null +++ b/esm/util/splitPath.d.ts @@ -0,0 +1,2 @@ +export default function splitPath(path: string | number | (number | string)[]): (string | number)[]; +//# sourceMappingURL=splitPath.d.ts.map \ No newline at end of file diff --git a/esm/util/splitPath.d.ts.map b/esm/util/splitPath.d.ts.map new file mode 100644 index 0000000..686b455 --- /dev/null +++ b/esm/util/splitPath.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"splitPath.d.ts","sourceRoot":"","sources":["../../src/util/splitPath.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,uBAM5E"} \ No newline at end of file diff --git a/esm/util/splitPath.js b/esm/util/splitPath.js new file mode 100644 index 0000000..b1adbff --- /dev/null +++ b/esm/util/splitPath.js @@ -0,0 +1,8 @@ +export default function splitPath(path) { + if (typeof path === "number") + path = new String(path); + return Array.isArray(path) + ? path + : path.split(".").filter((x) => x !== ""); +} +//# sourceMappingURL=splitPath.js.map \ No newline at end of file diff --git a/esm/util/splitPath.js.map b/esm/util/splitPath.js.map new file mode 100644 index 0000000..65caef2 --- /dev/null +++ b/esm/util/splitPath.js.map @@ -0,0 +1 @@ +{"version":3,"file":"splitPath.js","sourceRoot":"","sources":["../../src/util/splitPath.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,IAA2C;IAC3E,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAQ,CAAC;IAE7D,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACxB,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,IAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1D,CAAC"} \ No newline at end of file diff --git a/esm/util/splitPath.test.d.ts b/esm/util/splitPath.test.d.ts new file mode 100644 index 0000000..daa51d7 --- /dev/null +++ b/esm/util/splitPath.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=splitPath.test.d.ts.map \ No newline at end of file diff --git a/esm/util/splitPath.test.d.ts.map b/esm/util/splitPath.test.d.ts.map new file mode 100644 index 0000000..2866cd6 --- /dev/null +++ b/esm/util/splitPath.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"splitPath.test.d.ts","sourceRoot":"","sources":["../../src/util/splitPath.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/esm/util/splitPath.test.js b/esm/util/splitPath.test.js new file mode 100644 index 0000000..0b53b4e --- /dev/null +++ b/esm/util/splitPath.test.js @@ -0,0 +1,18 @@ +import { expect, it } from "vitest"; +import splitPath from "./splitPath.js"; +it("treats a number as a single step path", () => { + const path = 1; + const result = splitPath(path); + expect(result).to.deep.equal(["1"]); +}); +it("handles arrays", () => { + const path = ["foo", "bar", "x"]; + const result = splitPath(path); + expect(result).to.equal(path); +}); +it("handles strings separated by dots", () => { + const path = "bar.0.y"; + const result = splitPath(path); + expect(result).to.deep.equal(["bar", "0", "y"]); +}); +//# sourceMappingURL=splitPath.test.js.map \ No newline at end of file diff --git a/esm/util/splitPath.test.js.map b/esm/util/splitPath.test.js.map new file mode 100644 index 0000000..f2ae275 --- /dev/null +++ b/esm/util/splitPath.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"splitPath.test.js","sourceRoot":"","sources":["../../src/util/splitPath.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;IAC/C,MAAM,IAAI,GAAG,CAAC,CAAC;IACf,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;IACxB,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC3C,MAAM,IAAI,GAAG,SAAS,CAAC;IACvB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/esm/wrap.d.ts b/esm/wrap.d.ts new file mode 100644 index 0000000..c159fb3 --- /dev/null +++ b/esm/wrap.d.ts @@ -0,0 +1,3 @@ +declare const wrap: (fn: any) => (...args: any[]) => Readonly | ((data: any) => Readonly); +export default wrap; +//# sourceMappingURL=wrap.d.ts.map \ No newline at end of file diff --git a/esm/wrap.d.ts.map b/esm/wrap.d.ts.map new file mode 100644 index 0000000..2812741 --- /dev/null +++ b/esm/wrap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../src/wrap.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,IAAI,iFAWP,CAAC;AAEJ,eAAe,IAAI,CAAC"} \ No newline at end of file diff --git a/esm/wrap.js b/esm/wrap.js new file mode 100644 index 0000000..c106306 --- /dev/null +++ b/esm/wrap.js @@ -0,0 +1,13 @@ +import freeze from "./freeze.js"; +const wrap = (fn) => (...args) => { + const diff = fn.length - args.length; + if (diff === 0) { + return freeze(fn(...args)); + } + if (diff === 1) { + return (data) => freeze(fn(data, ...args)); + } + throw new Error("Wrong number of arguments"); +}; +export default wrap; +//# sourceMappingURL=wrap.js.map \ No newline at end of file diff --git a/esm/wrap.js.map b/esm/wrap.js.map new file mode 100644 index 0000000..b075a60 --- /dev/null +++ b/esm/wrap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"wrap.js","sourceRoot":"","sources":["../src/wrap.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,MAAM,IAAI,GACR,CAAC,EAAE,EAAE,EAAE,CACP,CAAC,GAAG,IAAI,EAAE,EAAE;IACV,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACrC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEJ,eAAe,IAAI,CAAC"} \ No newline at end of file