@voiceflow/common 7.20.2 → 7.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/build/common/types.d.ts +3 -0
  2. package/build/common/utils/array.d.ts +12 -2
  3. package/build/common/utils/array.js +18 -11
  4. package/build/common/utils/array.js.map +1 -1
  5. package/build/common/utils/functional.d.ts +1 -0
  6. package/build/common/utils/functional.js +4 -3
  7. package/build/common/utils/functional.js.map +1 -1
  8. package/build/common/utils/id.js +2 -3
  9. package/build/common/utils/id.js.map +1 -1
  10. package/build/common/utils/object/common.d.ts +26 -0
  11. package/build/common/utils/object/common.js +64 -0
  12. package/build/common/utils/object/common.js.map +1 -0
  13. package/build/common/utils/object/deepMap.d.ts +5 -0
  14. package/build/common/utils/object/deepMap.js +77 -0
  15. package/build/common/utils/object/deepMap.js.map +1 -0
  16. package/build/common/utils/object/diff.d.ts +3 -0
  17. package/build/common/utils/object/diff.js +41 -0
  18. package/build/common/utils/object/diff.js.map +1 -0
  19. package/build/common/utils/object/index.d.ts +4 -0
  20. package/build/common/utils/object/index.js +17 -0
  21. package/build/common/utils/object/index.js.map +1 -0
  22. package/build/common/utils/object/keys.d.ts +4 -0
  23. package/build/common/utils/object/keys.js +62 -0
  24. package/build/common/utils/object/keys.js.map +1 -0
  25. package/build/esm/types.d.ts +3 -0
  26. package/build/esm/utils/array.d.ts +12 -2
  27. package/build/esm/utils/array.js +16 -10
  28. package/build/esm/utils/array.js.map +1 -1
  29. package/build/esm/utils/functional.d.ts +1 -0
  30. package/build/esm/utils/functional.js +2 -2
  31. package/build/esm/utils/functional.js.map +1 -1
  32. package/build/esm/utils/id.js +1 -2
  33. package/build/esm/utils/id.js.map +1 -1
  34. package/build/esm/utils/object/common.d.ts +26 -0
  35. package/build/esm/utils/object/common.js +54 -0
  36. package/build/esm/utils/object/common.js.map +1 -0
  37. package/build/esm/utils/object/deepMap.d.ts +5 -0
  38. package/build/esm/utils/object/deepMap.js +72 -0
  39. package/build/esm/utils/object/deepMap.js.map +1 -0
  40. package/build/esm/utils/object/diff.d.ts +3 -0
  41. package/build/esm/utils/object/diff.js +33 -0
  42. package/build/esm/utils/object/diff.js.map +1 -0
  43. package/build/esm/utils/object/index.d.ts +4 -0
  44. package/build/esm/utils/object/index.js +5 -0
  45. package/build/esm/utils/object/index.js.map +1 -0
  46. package/build/esm/utils/object/keys.d.ts +4 -0
  47. package/build/esm/utils/object/keys.js +53 -0
  48. package/build/esm/utils/object/keys.js.map +1 -0
  49. package/package.json +3 -5
  50. package/build/common/utils/object.d.ts +0 -20
  51. package/build/common/utils/object.js +0 -113
  52. package/build/common/utils/object.js.map +0 -1
  53. package/build/esm/utils/object.d.ts +0 -20
  54. package/build/esm/utils/object.js +0 -97
  55. package/build/esm/utils/object.js.map +0 -1
@@ -34,3 +34,6 @@ export declare type EmptyObject = Record<never, never>;
34
34
  /** Avoids accidentally converting an immutable array type to a mutable one. */
35
35
  export declare type SafeArray<Element, Original> = Original extends Array<Element> ? Element[] : Original extends ReadonlyArray<Element> ? ReadonlyArray<Element> : Original extends ArrayLike<Element> ? ArrayLike<Element> : never;
36
36
  export declare type ArrayUnionToIntersection<T extends ArrayLike<unknown>> = SafeArray<T[number], T>;
37
+ export declare type PrimitiveMap<T extends PropertyKey> = {
38
+ [P in T]: P;
39
+ };
@@ -1,4 +1,4 @@
1
- import { AnyRecord, ArrayUnionToIntersection } from "../types";
1
+ import { AnyRecord, ArrayUnionToIntersection, PrimitiveMap } from "../types";
2
2
  export declare const unique: <T>(items: T[]) => T[];
3
3
  export declare const without: <T>(items: T[], index: number) => T[];
4
4
  export declare const withoutValue: <T>(items: T[], value: T) => T[];
@@ -12,7 +12,16 @@ export declare const head: <T>(items: T[]) => [T, T[]];
12
12
  export declare const tail: <T>(items: T[]) => [T[], T];
13
13
  export declare const reorder: <T>(items: T[], fromIndex: number, toIndex: number) => T[];
14
14
  export declare const separate: <T>(items: T[], predicate: (item: T, index: number) => boolean) => [T[], T[]];
15
- export declare const createMap: <T extends AnyRecord, K extends string | number = string>(array: T[], getKey: (value: T) => string) => Record<K, T>;
15
+ interface CreateEntries {
16
+ <T extends PropertyKey>(array: readonly T[]): Array<readonly [T, T]>;
17
+ <T extends AnyRecord, K extends PropertyKey = string>(array: readonly T[], getKey: (value: T) => K): Array<readonly [K, T]>;
18
+ }
19
+ interface CreateMap {
20
+ <T extends PropertyKey>(array: readonly T[]): PrimitiveMap<T>;
21
+ <T extends AnyRecord, K extends PropertyKey = string>(array: readonly T[], getKey: (value: T) => K): Record<K, T>;
22
+ }
23
+ export declare const createEntries: CreateEntries;
24
+ export declare const createMap: CreateMap;
16
25
  export declare const findUnion: <T>(lhs: T[], rhs: T[]) => {
17
26
  rhsOnly: T[];
18
27
  lhsOnly: T[];
@@ -27,3 +36,4 @@ export declare const isNotNullish: <T>(value: T) => value is NonNullable<T>;
27
36
  export declare const filterOutNullish: <T>(items: readonly T[]) => NonNullable<T>[];
28
37
  export declare const filterAndGetLastRemovedValue: <T>(list: T[], filter: (item: T) => boolean) => [T[], T | null];
29
38
  export declare const inferUnion: <T extends ArrayLike<unknown>>(array: T) => import("../types").SafeArray<T[number], T>;
39
+ export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.inferUnion = exports.filterAndGetLastRemovedValue = exports.filterOutNullish = exports.isNotNullish = exports.isNullish = exports.asyncForEach = exports.hasIdenticalMembers = exports.diff = exports.findUnion = exports.createMap = exports.separate = exports.reorder = exports.tail = exports.head = exports.toggleMembership = exports.append = exports.insertAll = exports.insert = exports.replace = exports.withoutValues = exports.withoutValue = exports.without = exports.unique = void 0;
3
+ exports.inferUnion = exports.filterAndGetLastRemovedValue = exports.filterOutNullish = exports.isNotNullish = exports.isNullish = exports.asyncForEach = exports.hasIdenticalMembers = exports.diff = exports.findUnion = exports.createMap = exports.createEntries = exports.separate = exports.reorder = exports.tail = exports.head = exports.toggleMembership = exports.append = exports.insertAll = exports.insert = exports.replace = exports.withoutValues = exports.withoutValue = exports.without = exports.unique = void 0;
4
4
  const unique = (items) => Array.from(new Set(items));
5
5
  exports.unique = unique;
6
6
  const without = (items, index) => (index < 0 ? items : [...items.slice(0, index), ...items.slice(index + 1)]);
@@ -53,24 +53,31 @@ const separate = (items, predicate) => items.reduce(([passAcc, failAcc], item, i
53
53
  return [passAcc, failAcc];
54
54
  }, [[], []]);
55
55
  exports.separate = separate;
56
- const createMap = (array, getKey) => array.reduce((acc, item) => Object.assign(acc, { [getKey(item)]: item }), {});
56
+ const createEntries = (array, getKey = (value) => value) => array.map((item) => [getKey(item), item]);
57
+ exports.createEntries = createEntries;
58
+ const createMap = (array, getKey = (value) => value) => Object.fromEntries((0, exports.createEntries)(array, getKey));
57
59
  exports.createMap = createMap;
58
60
  const findUnion = (lhs, rhs) => {
59
- const unique = new Set([...lhs, ...rhs]);
60
- return Array.from(unique).reduce((acc, item) => {
61
- if (lhs.includes(item)) {
62
- if (rhs.includes(item)) {
63
- acc.union.push(item);
61
+ // using sets instead of arrays since .has is O(1)
62
+ const lSet = new Set(lhs);
63
+ const rSet = new Set(rhs);
64
+ const unionSet = new Set([...lhs, ...rhs]);
65
+ const result = { rhsOnly: [], lhsOnly: [], union: [] };
66
+ // eslint-disable-next-line no-restricted-syntax
67
+ for (const item of unionSet) {
68
+ if (lSet.has(item)) {
69
+ if (rSet.has(item)) {
70
+ result.union.push(item);
64
71
  }
65
72
  else {
66
- acc.lhsOnly.push(item);
73
+ result.lhsOnly.push(item);
67
74
  }
68
75
  }
69
76
  else {
70
- acc.rhsOnly.push(item);
77
+ result.rhsOnly.push(item);
71
78
  }
72
- return acc;
73
- }, { rhsOnly: [], lhsOnly: [], union: [] });
79
+ }
80
+ return result;
74
81
  };
75
82
  exports.findUnion = findUnion;
76
83
  const diff = (lhs, rhs) => {
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/utils/array.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/utils/array.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Nullish } from '../types';
2
+ export declare const isFunction: <T extends (...args: any[]) => any = (...args: any[]) => any>(value: unknown) => value is T;
2
3
  export declare type Transform<T = any, R = T> = (value: T) => R;
3
4
  export interface Compose {
4
5
  <R, T1>(t0: Transform<T1, R>): (value: T1) => R;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withEffect = exports.chainVoidAsync = exports.chainAsync = exports.chainVoid = exports.chain = exports.stringify = exports.identity = exports.noop = exports.compose = void 0;
3
+ exports.withEffect = exports.chainVoidAsync = exports.chainAsync = exports.chainVoid = exports.chain = exports.stringify = exports.identity = exports.noop = exports.compose = exports.isFunction = void 0;
4
+ const isFunction = (value) => typeof value === 'function';
5
+ exports.isFunction = isFunction;
4
6
  const compose = (...transforms) => (value) => {
5
7
  if (transforms.length === 1) {
6
8
  return transforms[0](value);
@@ -11,8 +13,7 @@ const compose = (...transforms) => (value) => {
11
13
  return transforms.reduceRight((acc, transform) => transform(acc), value);
12
14
  };
13
15
  exports.compose = compose;
14
- // eslint-disable-next-line @typescript-eslint/no-empty-function
15
- const noop = () => { };
16
+ const noop = () => undefined;
16
17
  exports.noop = noop;
17
18
  const identity = (value) => value;
18
19
  exports.identity = identity;
@@ -1 +1 @@
1
- {"version":3,"file":"functional.js","sourceRoot":"","sources":["../../../src/utils/functional.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functional.js","sourceRoot":"","sources":["../../../src/utils/functional.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,7 @@ exports.remapObjectIDs = exports.objectID = exports.cuid = void 0;
7
7
  const bson_objectid_1 = __importDefault(require("bson-objectid"));
8
8
  const cuid_1 = __importDefault(require("cuid"));
9
9
  exports.cuid = cuid_1.default;
10
- const deep_map_1 = __importDefault(require("deep-map"));
11
- const deep_map_keys_1 = __importDefault(require("deep-map-keys"));
10
+ const object_1 = require("./object");
12
11
  const objectID = () => new bson_objectid_1.default().toHexString();
13
12
  exports.objectID = objectID;
14
13
  const remapObjectIDs = (object, lookupMap) => {
@@ -19,7 +18,7 @@ const remapObjectIDs = (object, lookupMap) => {
19
18
  }
20
19
  return value;
21
20
  };
22
- return (0, deep_map_keys_1.default)((0, deep_map_1.default)(object, mapping), mapping);
21
+ return (0, object_1.deepMapKeys)((0, object_1.deepMap)(object, mapping), mapping);
23
22
  };
24
23
  exports.remapObjectIDs = remapObjectIDs;
25
24
  //# sourceMappingURL=id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"id.js","sourceRoot":"","sources":["../../../src/utils/id.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAqC;AACrC,gDAAwB;AAMf,eANF,cAAI,CAME;AALb,wDAA+B;AAC/B,kEAAwC;AAMjC,MAAM,QAAQ,GAAG,GAAW,EAAE,CAAC,IAAI,uBAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;AAAtD,QAAA,QAAQ,YAA8C;AAE5D,MAAM,cAAc,GAAG,CAAkC,MAAS,EAAE,SAAuD,EAAK,EAAE;IACvI,MAAM,GAAG,GAAgC,SAAS,YAAY,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAEnH,MAAM,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC/C,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;SACxB;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,IAAA,uBAAW,EAAC,IAAA,kBAAO,EAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC,CAAC;AAXW,QAAA,cAAc,kBAWzB"}
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../../src/utils/id.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAqC;AACrC,gDAAwB;AAKf,eALF,cAAI,CAKE;AAFb,qCAAgD;AAIzC,MAAM,QAAQ,GAAG,GAAW,EAAE,CAAC,IAAI,uBAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;AAAtD,QAAA,QAAQ,YAA8C;AAE5D,MAAM,cAAc,GAAG,CAAkC,MAAS,EAAE,SAAuD,EAAK,EAAE;IACvI,MAAM,GAAG,GAAgC,SAAS,YAAY,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAEnH,MAAM,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC/C,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;SACxB;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,IAAA,oBAAW,EAAC,IAAA,gBAAO,EAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC,CAAC;AAZW,QAAA,cAAc,kBAYzB"}
@@ -0,0 +1,26 @@
1
+ import { AnyRecord, Struct } from "../../types";
2
+ export declare const selectField: <K extends string | number>(field: K) => <T extends { [key in K]: any; }>(obj: T) => T[K];
3
+ export declare const selectID: <T extends {
4
+ id: any;
5
+ }>(obj: T) => T["id"];
6
+ export declare const selectKey: <T extends {
7
+ key: any;
8
+ }>(obj: T) => T["key"];
9
+ export declare const selectValue: <T extends {
10
+ value: any;
11
+ }>(obj: T) => T["value"];
12
+ export declare const isObject: (obj: unknown) => obj is Struct;
13
+ export declare const hasProperty: <T, K extends string | keyof T>(obj: T, key: K) => obj is T & Record<K, unknown>;
14
+ export declare const omit: <T, K extends keyof T>(obj: T, keys: K[]) => Omit<T, K>;
15
+ export declare const pick: <T, K extends keyof T>(obj: T, keys: K[]) => Pick<T, K>;
16
+ interface PickOmitBy {
17
+ <T extends AnyRecord>(obj: T, predicate: (key: keyof T, value: T[keyof T]) => boolean): Partial<T>;
18
+ <T extends AnyRecord, R extends AnyRecord>(obj: T, predicate: (key: keyof T, value: T[keyof T]) => boolean): R;
19
+ }
20
+ export declare const pickBy: PickOmitBy;
21
+ export declare const omitBy: PickOmitBy;
22
+ /**
23
+ * @deprecated use pickBy instead
24
+ */
25
+ export declare const filterEntries: PickOmitBy;
26
+ export {};
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.filterEntries = exports.omitBy = exports.pickBy = exports.pick = exports.omit = exports.hasProperty = exports.isObject = exports.selectValue = exports.selectKey = exports.selectID = exports.selectField = void 0;
4
+ const selectField = (field) => (obj) => obj[field];
5
+ exports.selectField = selectField;
6
+ exports.selectID = (0, exports.selectField)('id');
7
+ exports.selectKey = (0, exports.selectField)('key');
8
+ exports.selectValue = (0, exports.selectField)('value');
9
+ const isObject = (obj) => obj !== null && typeof obj === 'object';
10
+ exports.isObject = isObject;
11
+ const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
12
+ exports.hasProperty = hasProperty;
13
+ const omit = (obj, keys) => {
14
+ const newObj = Object.assign({}, obj);
15
+ if (keys.length === 0) {
16
+ return newObj;
17
+ }
18
+ if (keys.length === 1) {
19
+ delete newObj[keys[0]];
20
+ return newObj;
21
+ }
22
+ if (keys.length === 2) {
23
+ delete newObj[keys[0]];
24
+ delete newObj[keys[1]];
25
+ return newObj;
26
+ }
27
+ return keys.reduce((acc, key) => {
28
+ delete acc[key];
29
+ return acc;
30
+ }, newObj);
31
+ };
32
+ exports.omit = omit;
33
+ const pick = (obj, keys) => {
34
+ if (keys.length === 0) {
35
+ return {};
36
+ }
37
+ if (keys.length === 1) {
38
+ return { [keys[0]]: obj[keys[0]] };
39
+ }
40
+ if (keys.length === 2) {
41
+ return { [keys[0]]: obj[keys[0]], [keys[1]]: obj[keys[1]] };
42
+ }
43
+ return keys.reduce((acc, key) => Object.assign(acc, { [key]: obj[key] }), {});
44
+ };
45
+ exports.pick = pick;
46
+ const pickBy = (obj, predicate) => Object.entries(obj).reduce((acc, [key, value]) => {
47
+ if (predicate(key, value)) {
48
+ acc[key] = value;
49
+ }
50
+ return acc;
51
+ }, {});
52
+ exports.pickBy = pickBy;
53
+ const omitBy = (obj, predicate) => Object.entries(obj).reduce((acc, [key, value]) => {
54
+ if (predicate(key, value)) {
55
+ delete acc[key];
56
+ }
57
+ return acc;
58
+ }, Object.assign({}, obj));
59
+ exports.omitBy = omitBy;
60
+ /**
61
+ * @deprecated use pickBy instead
62
+ */
63
+ exports.filterEntries = exports.pickBy;
64
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/utils/object/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Struct } from "../../types";
2
+ export declare const deepMap: <T = Struct>(object: unknown, mapFunction: (value: unknown, key: string | number) => unknown, options?: {
3
+ inPlace?: boolean;
4
+ }) => T;
5
+ export declare const deepMapKeys: <T = Struct>(object: unknown, mapFunction: (key: string, value: unknown) => string) => T;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deepMapKeys = exports.deepMap = void 0;
4
+ const common_1 = require("./common");
5
+ const deepMap = (object, mapFunction, options = {}) => {
6
+ const cache = new WeakMap();
7
+ const mapArray = (arr) => {
8
+ if (cache.has(arr)) {
9
+ return cache.get(arr);
10
+ }
11
+ const result = options.inPlace ? arr : [];
12
+ cache.set(arr, result);
13
+ const { length } = arr;
14
+ for (let index = 0; index < length; index++) {
15
+ result[index] = map(arr[index], index);
16
+ }
17
+ return result;
18
+ };
19
+ const mapObject = (obj) => {
20
+ if (cache.has(obj)) {
21
+ return cache.get(obj);
22
+ }
23
+ const result = options.inPlace ? obj : {};
24
+ cache.set(obj, result);
25
+ // eslint-disable-next-line no-restricted-syntax
26
+ for (const key of Object.keys(obj)) {
27
+ result[key] = map(obj[key], key);
28
+ }
29
+ return result;
30
+ };
31
+ const map = (value, key) => {
32
+ if (Array.isArray(value))
33
+ return mapArray(value);
34
+ if ((0, common_1.isObject)(value))
35
+ return mapObject(value);
36
+ return mapFunction(value, key);
37
+ };
38
+ return map(object);
39
+ };
40
+ exports.deepMap = deepMap;
41
+ const deepMapKeys = (object, mapFunction) => {
42
+ const cache = new WeakMap();
43
+ const mapArray = (arr) => {
44
+ if (cache.has(arr)) {
45
+ return cache.get(arr);
46
+ }
47
+ const result = [];
48
+ cache.set(arr, result);
49
+ const { length } = arr;
50
+ for (let i = 0; i < length; i++) {
51
+ result.push(map(arr[i]));
52
+ }
53
+ return result;
54
+ };
55
+ const mapObject = (obj) => {
56
+ if (cache.has(obj)) {
57
+ return cache.get(obj);
58
+ }
59
+ const result = {};
60
+ cache.set(obj, result);
61
+ // eslint-disable-next-line no-restricted-syntax
62
+ for (const key of Object.keys(obj)) {
63
+ result[mapFunction(key, obj[key])] = map(obj[key]);
64
+ }
65
+ return result;
66
+ };
67
+ const map = (value) => {
68
+ if (Array.isArray(value))
69
+ return mapArray(value);
70
+ if ((0, common_1.isObject)(value))
71
+ return mapObject(value);
72
+ return value;
73
+ };
74
+ return map(object);
75
+ };
76
+ exports.deepMapKeys = deepMapKeys;
77
+ //# sourceMappingURL=deepMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepMap.js","sourceRoot":"","sources":["../../../../src/utils/object/deepMap.ts"],"names":[],"mappings":";;;AAEA,qCAAoC;AAE7B,MAAM,OAAO,GAAG,CACrB,MAAe,EACf,WAA8D,EAC9D,UAAiC,EAAE,EAChC,EAAE;IACL,MAAM,KAAK,GAAG,IAAI,OAAO,EAAmB,CAAC;IAE7C,MAAM,QAAQ,GAAG,CAAC,GAAc,EAAa,EAAE;QAC7C,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAc,CAAC;SACpC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAEvB,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;QACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE;YAC3C,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;SACxC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,GAAW,EAAU,EAAE;QACxC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAW,CAAC;SACjC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAEvB,gDAAgD;QAChD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAClC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;SAClC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,CAAC,KAAc,EAAE,GAAqB,EAAE,EAAE;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAE7C,OAAO,WAAW,CAAC,KAAK,EAAE,GAAI,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,OAAO,GAAG,CAAC,MAAM,CAAM,CAAC;AAC1B,CAAC,CAAC;AAjDW,QAAA,OAAO,WAiDlB;AAEK,MAAM,WAAW,GAAG,CAAa,MAAe,EAAE,WAAoD,EAAK,EAAE;IAClH,MAAM,KAAK,GAAG,IAAI,OAAO,EAAmB,CAAC;IAE7C,MAAM,QAAQ,GAAG,CAAC,GAAc,EAAa,EAAE;QAC7C,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAc,CAAC;SACpC;QAED,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAEvB,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1B;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,GAAW,EAAU,EAAE;QACxC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAW,CAAC;SACjC;QAED,MAAM,MAAM,GAAW,EAAE,CAAC;QAE1B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAEvB,gDAAgD;QAChD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAClC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SACpD;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,CAAC,KAAc,EAAE,EAAE;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAE7C,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,GAAG,CAAC,MAAM,CAAM,CAAC;AAC1B,CAAC,CAAC;AA7CW,QAAA,WAAW,eA6CtB"}
@@ -0,0 +1,3 @@
1
+ import { AnyRecord, DeepPartial } from "../../types";
2
+ export declare const getDiff: <S extends AnyRecord>(object: S, base: S, compare?: <T>(left: T, right: T) => boolean) => DeepPartial<S>;
3
+ export declare const getTopLevelDiff: <S extends AnyRecord>(object: S, base: S, compare?: <T>(left: T, right: T) => boolean) => Partial<S>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getTopLevelDiff = exports.getDiff = void 0;
7
+ const transform_1 = __importDefault(require("lodash/transform"));
8
+ const common_1 = require("./common");
9
+ const defaultCompare = (left, right) => left === right;
10
+ const getDiff = (object, base, compare = defaultCompare) => {
11
+ const changes = (object, base) => (0, transform_1.default)(object, (result, value, key) => {
12
+ var _a;
13
+ if (!compare(value, base[key])) {
14
+ if ((0, common_1.isObject)(value) && (0, common_1.isObject)(base[key])) {
15
+ // eslint-disable-next-line no-param-reassign
16
+ result[key] = changes(value, base[key]);
17
+ if (Object.keys((_a = result[key]) !== null && _a !== void 0 ? _a : {}).length === 0) {
18
+ // eslint-disable-next-line no-param-reassign
19
+ delete result[key];
20
+ }
21
+ }
22
+ else {
23
+ // eslint-disable-next-line no-param-reassign
24
+ result[key] = value;
25
+ }
26
+ }
27
+ });
28
+ return changes(object, base);
29
+ };
30
+ exports.getDiff = getDiff;
31
+ const getTopLevelDiff = (object, base, compare = defaultCompare) => {
32
+ const changes = (object, base) => (0, transform_1.default)(object, (result, value, key) => {
33
+ if (!compare(value, base[key])) {
34
+ // eslint-disable-next-line no-param-reassign
35
+ result[key] = value;
36
+ }
37
+ });
38
+ return changes(object, base);
39
+ };
40
+ exports.getTopLevelDiff = getTopLevelDiff;
41
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../src/utils/object/diff.ts"],"names":[],"mappings":";;;;;;AACA,iEAA0C;AAE1C,qCAAoC;AAEpC,MAAM,cAAc,GAAG,CAAI,IAAO,EAAE,KAAQ,EAAW,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;AAElE,MAAM,OAAO,GAAG,CAAsB,MAAS,EAAE,IAAO,EAAE,OAAO,GAAG,cAAc,EAAkB,EAAE;IAC3G,MAAM,OAAO,GAAG,CAAsB,MAAS,EAAE,IAAO,EAAE,EAAE,CAC1D,IAAA,mBAAU,EAAoB,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;;QAC3D,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YAC9B,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,IAAI,IAAA,iBAAQ,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC1C,6CAA6C;gBAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAmD,CAAC;gBAE1F,IAAI,MAAM,CAAC,IAAI,CAAC,MAAA,MAAM,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC/C,6CAA6C;oBAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;iBACpB;aACF;iBAAM;gBACL,6CAA6C;gBAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aACrB;SACF;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AApBW,QAAA,OAAO,WAoBlB;AAEK,MAAM,eAAe,GAAG,CAAsB,MAAS,EAAE,IAAO,EAAE,OAAO,GAAG,cAAc,EAAc,EAAE;IAC/G,MAAM,OAAO,GAAG,CAAC,MAAS,EAAE,IAAO,EAAE,EAAE,CACrC,IAAA,mBAAU,EAAgB,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACvD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YAC9B,6CAA6C;YAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SACrB;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B"}
@@ -0,0 +1,4 @@
1
+ export * from './common';
2
+ export * from './deepMap';
3
+ export * from './diff';
4
+ export * from './keys';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./common"), exports);
14
+ __exportStar(require("./deepMap"), exports);
15
+ __exportStar(require("./diff"), exports);
16
+ __exportStar(require("./keys"), exports);
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/object/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B;AAC1B,yCAAuB;AACvB,yCAAuB"}
@@ -0,0 +1,4 @@
1
+ import { AnyRecord } from "../../types";
2
+ export declare const getKeys: <T>(obj: T) => (keyof T)[];
3
+ export declare const getIn: <T, K extends string | keyof T>(rawObj: T, key: K | K[], def?: any, index?: number) => rawObj is T & Record<K, unknown>;
4
+ export declare const setIn: (obj: AnyRecord, path: unknown, value: unknown) => any;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.setIn = exports.getIn = exports.getKeys = void 0;
7
+ const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
8
+ const toPath_1 = __importDefault(require("lodash/toPath"));
9
+ const getKeys = (obj) => Object.keys(obj);
10
+ exports.getKeys = getKeys;
11
+ const getIn = (rawObj, key, def, index = 0) => {
12
+ const path = (0, toPath_1.default)(key);
13
+ let obj = rawObj;
14
+ let i = index;
15
+ if (path.length === 1) {
16
+ return obj[path[0]];
17
+ }
18
+ while (obj && i < path.length) {
19
+ obj = obj[path[i++]];
20
+ }
21
+ return obj === undefined ? def : obj;
22
+ };
23
+ exports.getIn = getIn;
24
+ const setIn = (obj, path, value) => {
25
+ const res = {};
26
+ const pathArray = (0, toPath_1.default)(path);
27
+ let resVal = res;
28
+ let index = 0;
29
+ for (; index < pathArray.length - 1; index++) {
30
+ const currentPath = pathArray[index];
31
+ if (resVal[currentPath]) {
32
+ resVal = resVal[currentPath];
33
+ continue;
34
+ }
35
+ const currentObj = (0, exports.getIn)(obj, pathArray.slice(0, index + 1));
36
+ if (currentObj) {
37
+ resVal[currentPath] = (0, cloneDeep_1.default)(currentObj);
38
+ resVal = resVal[currentPath];
39
+ }
40
+ else {
41
+ const nextPath = pathArray[index + 1];
42
+ resVal[currentPath] = +nextPath >= 0 ? [] : {};
43
+ resVal = resVal[currentPath];
44
+ }
45
+ }
46
+ if ((index === 0 ? obj : resVal)[pathArray[index]] === value) {
47
+ return obj;
48
+ }
49
+ if (value === undefined) {
50
+ delete resVal[pathArray[index]];
51
+ }
52
+ else {
53
+ resVal[pathArray[index]] = value;
54
+ }
55
+ const result = Object.assign(Object.assign({}, obj), res);
56
+ if (index === 0 && value === undefined) {
57
+ delete result[pathArray[index]];
58
+ }
59
+ return result;
60
+ };
61
+ exports.setIn = setIn;
62
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/utils/object/keys.ts"],"names":[],"mappings":"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"}
@@ -34,3 +34,6 @@ export declare type EmptyObject = Record<never, never>;
34
34
  /** Avoids accidentally converting an immutable array type to a mutable one. */
35
35
  export declare type SafeArray<Element, Original> = Original extends Array<Element> ? Element[] : Original extends ReadonlyArray<Element> ? ReadonlyArray<Element> : Original extends ArrayLike<Element> ? ArrayLike<Element> : never;
36
36
  export declare type ArrayUnionToIntersection<T extends ArrayLike<unknown>> = SafeArray<T[number], T>;
37
+ export declare type PrimitiveMap<T extends PropertyKey> = {
38
+ [P in T]: P;
39
+ };
@@ -1,4 +1,4 @@
1
- import { AnyRecord, ArrayUnionToIntersection } from "../types";
1
+ import { AnyRecord, ArrayUnionToIntersection, PrimitiveMap } from "../types";
2
2
  export declare const unique: <T>(items: T[]) => T[];
3
3
  export declare const without: <T>(items: T[], index: number) => T[];
4
4
  export declare const withoutValue: <T>(items: T[], value: T) => T[];
@@ -12,7 +12,16 @@ export declare const head: <T>(items: T[]) => [T, T[]];
12
12
  export declare const tail: <T>(items: T[]) => [T[], T];
13
13
  export declare const reorder: <T>(items: T[], fromIndex: number, toIndex: number) => T[];
14
14
  export declare const separate: <T>(items: T[], predicate: (item: T, index: number) => boolean) => [T[], T[]];
15
- export declare const createMap: <T extends AnyRecord, K extends string | number = string>(array: T[], getKey: (value: T) => string) => Record<K, T>;
15
+ interface CreateEntries {
16
+ <T extends PropertyKey>(array: readonly T[]): Array<readonly [T, T]>;
17
+ <T extends AnyRecord, K extends PropertyKey = string>(array: readonly T[], getKey: (value: T) => K): Array<readonly [K, T]>;
18
+ }
19
+ interface CreateMap {
20
+ <T extends PropertyKey>(array: readonly T[]): PrimitiveMap<T>;
21
+ <T extends AnyRecord, K extends PropertyKey = string>(array: readonly T[], getKey: (value: T) => K): Record<K, T>;
22
+ }
23
+ export declare const createEntries: CreateEntries;
24
+ export declare const createMap: CreateMap;
16
25
  export declare const findUnion: <T>(lhs: T[], rhs: T[]) => {
17
26
  rhsOnly: T[];
18
27
  lhsOnly: T[];
@@ -27,3 +36,4 @@ export declare const isNotNullish: <T>(value: T) => value is NonNullable<T>;
27
36
  export declare const filterOutNullish: <T>(items: readonly T[]) => NonNullable<T>[];
28
37
  export declare const filterAndGetLastRemovedValue: <T>(list: T[], filter: (item: T) => boolean) => [T[], T | null];
29
38
  export declare const inferUnion: <T extends ArrayLike<unknown>>(array: T) => import("../types").SafeArray<T[number], T>;
39
+ export {};
@@ -37,23 +37,29 @@ export const separate = (items, predicate) => items.reduce(([passAcc, failAcc],
37
37
  }
38
38
  return [passAcc, failAcc];
39
39
  }, [[], []]);
40
- export const createMap = (array, getKey) => array.reduce((acc, item) => Object.assign(acc, { [getKey(item)]: item }), {});
40
+ export const createEntries = (array, getKey = (value) => value) => array.map((item) => [getKey(item), item]);
41
+ export const createMap = (array, getKey = (value) => value) => Object.fromEntries(createEntries(array, getKey));
41
42
  export const findUnion = (lhs, rhs) => {
42
- const unique = new Set([...lhs, ...rhs]);
43
- return Array.from(unique).reduce((acc, item) => {
44
- if (lhs.includes(item)) {
45
- if (rhs.includes(item)) {
46
- acc.union.push(item);
43
+ // using sets instead of arrays since .has is O(1)
44
+ const lSet = new Set(lhs);
45
+ const rSet = new Set(rhs);
46
+ const unionSet = new Set([...lhs, ...rhs]);
47
+ const result = { rhsOnly: [], lhsOnly: [], union: [] };
48
+ // eslint-disable-next-line no-restricted-syntax
49
+ for (const item of unionSet) {
50
+ if (lSet.has(item)) {
51
+ if (rSet.has(item)) {
52
+ result.union.push(item);
47
53
  }
48
54
  else {
49
- acc.lhsOnly.push(item);
55
+ result.lhsOnly.push(item);
50
56
  }
51
57
  }
52
58
  else {
53
- acc.rhsOnly.push(item);
59
+ result.rhsOnly.push(item);
54
60
  }
55
- return acc;
56
- }, { rhsOnly: [], lhsOnly: [], union: [] });
61
+ }
62
+ return result;
57
63
  };
58
64
  export const diff = (lhs, rhs) => {
59
65
  const { lhsOnly, rhsOnly } = findUnion(lhs, rhs);