@voiceflow/common 7.19.3 → 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 (57) hide show
  1. package/build/common/types.d.ts +7 -0
  2. package/build/common/utils/array.d.ts +13 -2
  3. package/build/common/utils/array.js +21 -12
  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.d.ts +2 -0
  9. package/build/common/utils/id.js +13 -1
  10. package/build/common/utils/id.js.map +1 -1
  11. package/build/common/utils/object/common.d.ts +26 -0
  12. package/build/common/utils/object/common.js +64 -0
  13. package/build/common/utils/object/common.js.map +1 -0
  14. package/build/common/utils/object/deepMap.d.ts +5 -0
  15. package/build/common/utils/object/deepMap.js +77 -0
  16. package/build/common/utils/object/deepMap.js.map +1 -0
  17. package/build/common/utils/object/diff.d.ts +3 -0
  18. package/build/common/utils/object/diff.js +41 -0
  19. package/build/common/utils/object/diff.js.map +1 -0
  20. package/build/common/utils/object/index.d.ts +4 -0
  21. package/build/common/utils/object/index.js +17 -0
  22. package/build/common/utils/object/index.js.map +1 -0
  23. package/build/common/utils/object/keys.d.ts +4 -0
  24. package/build/common/utils/object/keys.js +62 -0
  25. package/build/common/utils/object/keys.js.map +1 -0
  26. package/build/esm/types.d.ts +7 -0
  27. package/build/esm/utils/array.d.ts +13 -2
  28. package/build/esm/utils/array.js +18 -11
  29. package/build/esm/utils/array.js.map +1 -1
  30. package/build/esm/utils/functional.d.ts +1 -0
  31. package/build/esm/utils/functional.js +2 -2
  32. package/build/esm/utils/functional.js.map +1 -1
  33. package/build/esm/utils/id.d.ts +2 -0
  34. package/build/esm/utils/id.js +11 -0
  35. package/build/esm/utils/id.js.map +1 -1
  36. package/build/esm/utils/object/common.d.ts +26 -0
  37. package/build/esm/utils/object/common.js +54 -0
  38. package/build/esm/utils/object/common.js.map +1 -0
  39. package/build/esm/utils/object/deepMap.d.ts +5 -0
  40. package/build/esm/utils/object/deepMap.js +72 -0
  41. package/build/esm/utils/object/deepMap.js.map +1 -0
  42. package/build/esm/utils/object/diff.d.ts +3 -0
  43. package/build/esm/utils/object/diff.js +33 -0
  44. package/build/esm/utils/object/diff.js.map +1 -0
  45. package/build/esm/utils/object/index.d.ts +4 -0
  46. package/build/esm/utils/object/index.js +5 -0
  47. package/build/esm/utils/object/index.js.map +1 -0
  48. package/build/esm/utils/object/keys.d.ts +4 -0
  49. package/build/esm/utils/object/keys.js +53 -0
  50. package/build/esm/utils/object/keys.js.map +1 -0
  51. package/package.json +6 -2
  52. package/build/common/utils/object.d.ts +0 -8
  53. package/build/common/utils/object.js +0 -94
  54. package/build/common/utils/object.js.map +0 -1
  55. package/build/esm/utils/object.d.ts +0 -8
  56. package/build/esm/utils/object.js +0 -80
  57. package/build/esm/utils/object.js.map +0 -1
@@ -37,22 +37,29 @@ export const separate = (items, predicate) => items.reduce(([passAcc, failAcc],
37
37
  }
38
38
  return [passAcc, failAcc];
39
39
  }, [[], []]);
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));
40
42
  export const findUnion = (lhs, rhs) => {
41
- const unique = new Set([...lhs, ...rhs]);
42
- return Array.from(unique).reduce((acc, item) => {
43
- if (lhs.includes(item)) {
44
- if (rhs.includes(item)) {
45
- 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);
46
53
  }
47
54
  else {
48
- acc.lhsOnly.push(item);
55
+ result.lhsOnly.push(item);
49
56
  }
50
57
  }
51
58
  else {
52
- acc.rhsOnly.push(item);
59
+ result.rhsOnly.push(item);
53
60
  }
54
- return acc;
55
- }, { rhsOnly: [], lhsOnly: [], union: [] });
61
+ }
62
+ return result;
56
63
  };
57
64
  export const diff = (lhs, rhs) => {
58
65
  const { lhsOnly, rhsOnly } = findUnion(lhs, rhs);
@@ -78,10 +85,10 @@ export const isNotNullish = (value) => value !== null && value !== undefined;
78
85
  /** @deprecated Use `array.filter(isNotNullish)` instead. */
79
86
  export const filterOutNullish = (items) => items.filter(isNotNullish);
80
87
  // mostly just saves us needing to traverse an array twice
81
- export const filterAndGetLastRemovedValue = (list, filterFunc) => {
88
+ export const filterAndGetLastRemovedValue = (list, filter) => {
82
89
  let lastItem = null;
83
90
  const filteredList = list.filter((a) => {
84
- if (filterFunc(a))
91
+ if (filter(a))
85
92
  return true;
86
93
  lastItem = a;
87
94
  return false;
@@ -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":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,KAAU,EAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,KAAU,EAAE,KAAa,EAAO,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1I,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,KAAU,EAAE,KAAQ,EAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAEnG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAI,KAAU,EAAE,MAAW,EAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAEjH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,KAAU,EAAE,KAAa,EAAE,IAAO,EAAO,EAAE,CACpE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AAElF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,KAAU,EAAE,KAAa,EAAE,IAAO,EAAO,EAAE,CACnE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAEzF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,KAAU,EAAE,KAAa,EAAE,eAAoB,EAAO,EAAE,CACnF,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,eAAe,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAErH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,KAAU,EAAE,IAAO,EAAO,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAEzG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAI,KAAU,EAAE,IAAO,EAAO,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAEvI,MAAM,CAAC,MAAM,IAAI,GAAG,CAAI,KAAU,EAAY,EAAE;IAC9C,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;IAC/B,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAI,KAAU,EAAY,EAAE;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,KAAU,EAAE,SAAiB,EAAE,OAAe,EAAO,EAAE;IAChF,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE;QAC9C,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,GAAG,CAAC,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;KACzD;IAED,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QAC3B,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;KACzD;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,KAAU,EAAE,SAA8C,EAAc,EAAE,CACpG,KAAK,CAAC,MAAM,CACV,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IAClC,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;QAC1B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpB;SAAM;QACL,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpB;IAED,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC,EACD,CAAC,EAAE,EAAE,EAAE,CAAC,CACT,CAAC;AAYJ,MAAM,CAAC,MAAM,aAAa,GAAkB,CAAC,KAAyB,EAAE,SAAS,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAC5G,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAU,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,SAAS,GAAc,CAAC,KAAqB,EAAE,SAAS,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAEhJ,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,GAAQ,EAAE,GAAQ,EAA8C,EAAE;IAC7F,kDAAkD;IAClD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IAE3C,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,EAAS,EAAE,OAAO,EAAE,EAAS,EAAE,KAAK,EAAE,EAAS,EAAE,CAAC;IAE5E,gDAAgD;IAChD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;QAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAClB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzB;iBAAM;gBACL,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC3B;SACF;aAAM;YACL,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3B;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAI,GAAQ,EAAE,GAAQ,EAAO,EAAE;IACjD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEjD,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAI,GAAQ,EAAE,GAAQ,EAAW,EAAE;IACpE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;QAC9B,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAK,KAAU,EAAE,QAA+D,EAAiB,EAAE;IAClI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACjD,4DAA4D;QAC5D,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;KAC5C;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAc,EAAoB,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAErG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,KAAQ,EAA2B,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAE5G,4DAA4D;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAI,KAAmB,EAAyB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAE9G,0DAA0D;AAC1D,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAI,IAAS,EAAE,MAA4B,EAAmB,EAAE;IAC1G,IAAI,QAAQ,GAAa,IAAI,CAAC;IAE9B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACrC,IAAI,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAE3B,QAAQ,GAAG,CAAC,CAAC;QAEb,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAA+B,KAAQ,EAA+B,EAAE,CAAC,KAA+C,CAAC"}
@@ -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,3 +1,4 @@
1
+ export const isFunction = (value) => typeof value === 'function';
1
2
  export const compose = (...transforms) => (value) => {
2
3
  if (transforms.length === 1) {
3
4
  return transforms[0](value);
@@ -7,8 +8,7 @@ export const compose = (...transforms) => (value) => {
7
8
  }
8
9
  return transforms.reduceRight((acc, transform) => transform(acc), value);
9
10
  };
10
- // eslint-disable-next-line @typescript-eslint/no-empty-function
11
- export const noop = () => { };
11
+ export const noop = () => undefined;
12
12
  export const identity = (value) => value;
13
13
  export const stringify = (value) => (typeof value === 'string' ? value : String(value));
14
14
  export const chain = (...fns) => (...args) => {
@@ -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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"}
@@ -1,3 +1,5 @@
1
1
  import cuid from 'cuid';
2
+ import { EmptyObject } from '../types';
2
3
  export { cuid };
3
4
  export declare const objectID: () => string;
5
+ export declare const remapObjectIDs: <T extends Readonly<EmptyObject>>(object: T, lookupMap: Record<string, string> | Map<string, string>) => T;
@@ -1,5 +1,16 @@
1
1
  import ObjectId from 'bson-objectid';
2
2
  import cuid from 'cuid';
3
+ import { deepMap, deepMapKeys } from './object';
3
4
  export { cuid };
4
5
  export const objectID = () => new ObjectId().toHexString();
6
+ export const remapObjectIDs = (object, lookupMap) => {
7
+ const map = lookupMap instanceof Map ? lookupMap : new Map(Object.entries(lookupMap));
8
+ const mapping = (value) => {
9
+ if (typeof value === 'string' && map.has(value)) {
10
+ return map.get(value);
11
+ }
12
+ return value;
13
+ };
14
+ return deepMapKeys(deepMap(object, mapping), mapping);
15
+ };
5
16
  //# sourceMappingURL=id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"id.js","sourceRoot":"","sources":["../../../src/utils/id.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAW,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../../src/utils/id.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAW,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;AAEnE,MAAM,CAAC,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,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC,CAAC"}
@@ -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,54 @@
1
+ export const selectField = (field) => (obj) => obj[field];
2
+ export const selectID = selectField('id');
3
+ export const selectKey = selectField('key');
4
+ export const selectValue = selectField('value');
5
+ export const isObject = (obj) => obj !== null && typeof obj === 'object';
6
+ export const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
7
+ export const omit = (obj, keys) => {
8
+ const newObj = Object.assign({}, obj);
9
+ if (keys.length === 0) {
10
+ return newObj;
11
+ }
12
+ if (keys.length === 1) {
13
+ delete newObj[keys[0]];
14
+ return newObj;
15
+ }
16
+ if (keys.length === 2) {
17
+ delete newObj[keys[0]];
18
+ delete newObj[keys[1]];
19
+ return newObj;
20
+ }
21
+ return keys.reduce((acc, key) => {
22
+ delete acc[key];
23
+ return acc;
24
+ }, newObj);
25
+ };
26
+ export const pick = (obj, keys) => {
27
+ if (keys.length === 0) {
28
+ return {};
29
+ }
30
+ if (keys.length === 1) {
31
+ return { [keys[0]]: obj[keys[0]] };
32
+ }
33
+ if (keys.length === 2) {
34
+ return { [keys[0]]: obj[keys[0]], [keys[1]]: obj[keys[1]] };
35
+ }
36
+ return keys.reduce((acc, key) => Object.assign(acc, { [key]: obj[key] }), {});
37
+ };
38
+ export const pickBy = (obj, predicate) => Object.entries(obj).reduce((acc, [key, value]) => {
39
+ if (predicate(key, value)) {
40
+ acc[key] = value;
41
+ }
42
+ return acc;
43
+ }, {});
44
+ export const omitBy = (obj, predicate) => Object.entries(obj).reduce((acc, [key, value]) => {
45
+ if (predicate(key, value)) {
46
+ delete acc[key];
47
+ }
48
+ return acc;
49
+ }, Object.assign({}, obj));
50
+ /**
51
+ * @deprecated use pickBy instead
52
+ */
53
+ export const filterEntries = pickBy;
54
+ //# 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,72 @@
1
+ import { isObject } from './common';
2
+ export const deepMap = (object, mapFunction, options = {}) => {
3
+ const cache = new WeakMap();
4
+ const mapArray = (arr) => {
5
+ if (cache.has(arr)) {
6
+ return cache.get(arr);
7
+ }
8
+ const result = options.inPlace ? arr : [];
9
+ cache.set(arr, result);
10
+ const { length } = arr;
11
+ for (let index = 0; index < length; index++) {
12
+ result[index] = map(arr[index], index);
13
+ }
14
+ return result;
15
+ };
16
+ const mapObject = (obj) => {
17
+ if (cache.has(obj)) {
18
+ return cache.get(obj);
19
+ }
20
+ const result = options.inPlace ? obj : {};
21
+ cache.set(obj, result);
22
+ // eslint-disable-next-line no-restricted-syntax
23
+ for (const key of Object.keys(obj)) {
24
+ result[key] = map(obj[key], key);
25
+ }
26
+ return result;
27
+ };
28
+ const map = (value, key) => {
29
+ if (Array.isArray(value))
30
+ return mapArray(value);
31
+ if (isObject(value))
32
+ return mapObject(value);
33
+ return mapFunction(value, key);
34
+ };
35
+ return map(object);
36
+ };
37
+ export const deepMapKeys = (object, mapFunction) => {
38
+ const cache = new WeakMap();
39
+ const mapArray = (arr) => {
40
+ if (cache.has(arr)) {
41
+ return cache.get(arr);
42
+ }
43
+ const result = [];
44
+ cache.set(arr, result);
45
+ const { length } = arr;
46
+ for (let i = 0; i < length; i++) {
47
+ result.push(map(arr[i]));
48
+ }
49
+ return result;
50
+ };
51
+ const mapObject = (obj) => {
52
+ if (cache.has(obj)) {
53
+ return cache.get(obj);
54
+ }
55
+ const result = {};
56
+ cache.set(obj, result);
57
+ // eslint-disable-next-line no-restricted-syntax
58
+ for (const key of Object.keys(obj)) {
59
+ result[mapFunction(key, obj[key])] = map(obj[key]);
60
+ }
61
+ return result;
62
+ };
63
+ const map = (value) => {
64
+ if (Array.isArray(value))
65
+ return mapArray(value);
66
+ if (isObject(value))
67
+ return mapObject(value);
68
+ return value;
69
+ };
70
+ return map(object);
71
+ };
72
+ //# sourceMappingURL=deepMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepMap.js","sourceRoot":"","sources":["../../../../src/utils/object/deepMap.ts"],"names":[],"mappings":"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"}
@@ -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,33 @@
1
+ import _transform from 'lodash/transform';
2
+ import { isObject } from './common';
3
+ const defaultCompare = (left, right) => left === right;
4
+ export const getDiff = (object, base, compare = defaultCompare) => {
5
+ const changes = (object, base) => _transform(object, (result, value, key) => {
6
+ var _a;
7
+ if (!compare(value, base[key])) {
8
+ if (isObject(value) && isObject(base[key])) {
9
+ // eslint-disable-next-line no-param-reassign
10
+ result[key] = changes(value, base[key]);
11
+ if (Object.keys((_a = result[key]) !== null && _a !== void 0 ? _a : {}).length === 0) {
12
+ // eslint-disable-next-line no-param-reassign
13
+ delete result[key];
14
+ }
15
+ }
16
+ else {
17
+ // eslint-disable-next-line no-param-reassign
18
+ result[key] = value;
19
+ }
20
+ }
21
+ });
22
+ return changes(object, base);
23
+ };
24
+ export const getTopLevelDiff = (object, base, compare = defaultCompare) => {
25
+ const changes = (object, base) => _transform(object, (result, value, key) => {
26
+ if (!compare(value, base[key])) {
27
+ // eslint-disable-next-line no-param-reassign
28
+ result[key] = value;
29
+ }
30
+ });
31
+ return changes(object, base);
32
+ };
33
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../src/utils/object/diff.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,cAAc,GAAG,CAAI,IAAO,EAAE,KAAQ,EAAW,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;AAEzE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAsB,MAAS,EAAE,IAAO,EAAE,OAAO,GAAG,cAAc,EAAkB,EAAE;IAC3G,MAAM,OAAO,GAAG,CAAsB,MAAS,EAAE,IAAO,EAAE,EAAE,CAC1D,UAAU,CAAoB,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,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,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;AAEF,MAAM,CAAC,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,UAAU,CAAgB,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"}
@@ -0,0 +1,4 @@
1
+ export * from './common';
2
+ export * from './deepMap';
3
+ export * from './diff';
4
+ export * from './keys';
@@ -0,0 +1,5 @@
1
+ export * from './common';
2
+ export * from './deepMap';
3
+ export * from './diff';
4
+ export * from './keys';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/object/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
@@ -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,53 @@
1
+ import _cloneDeep from 'lodash/cloneDeep';
2
+ import _toPath from 'lodash/toPath';
3
+ export const getKeys = (obj) => Object.keys(obj);
4
+ export const getIn = (rawObj, key, def, index = 0) => {
5
+ const path = _toPath(key);
6
+ let obj = rawObj;
7
+ let i = index;
8
+ if (path.length === 1) {
9
+ return obj[path[0]];
10
+ }
11
+ while (obj && i < path.length) {
12
+ obj = obj[path[i++]];
13
+ }
14
+ return obj === undefined ? def : obj;
15
+ };
16
+ export const setIn = (obj, path, value) => {
17
+ const res = {};
18
+ const pathArray = _toPath(path);
19
+ let resVal = res;
20
+ let index = 0;
21
+ for (; index < pathArray.length - 1; index++) {
22
+ const currentPath = pathArray[index];
23
+ if (resVal[currentPath]) {
24
+ resVal = resVal[currentPath];
25
+ continue;
26
+ }
27
+ const currentObj = getIn(obj, pathArray.slice(0, index + 1));
28
+ if (currentObj) {
29
+ resVal[currentPath] = _cloneDeep(currentObj);
30
+ resVal = resVal[currentPath];
31
+ }
32
+ else {
33
+ const nextPath = pathArray[index + 1];
34
+ resVal[currentPath] = +nextPath >= 0 ? [] : {};
35
+ resVal = resVal[currentPath];
36
+ }
37
+ }
38
+ if ((index === 0 ? obj : resVal)[pathArray[index]] === value) {
39
+ return obj;
40
+ }
41
+ if (value === undefined) {
42
+ delete resVal[pathArray[index]];
43
+ }
44
+ else {
45
+ resVal[pathArray[index]] = value;
46
+ }
47
+ const result = Object.assign(Object.assign({}, obj), res);
48
+ if (index === 0 && value === undefined) {
49
+ delete result[pathArray[index]];
50
+ }
51
+ return result;
52
+ };
53
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/utils/object/keys.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,GAAM,EAAe,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAgB,CAAC;AAEnF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAgC,MAAS,EAAE,GAAY,EAAE,GAAS,EAAE,KAAK,GAAG,CAAC,EAAoC,EAAE;IACtI,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,GAAG,GAAQ,MAAM,CAAC;IACtB,IAAI,CAAC,GAAG,KAAK,CAAC;IAEd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACrB;IAED,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;QAC7B,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACtB;IAED,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAc,EAAE,IAAa,EAAE,KAAc,EAAE,EAAE;IACrE,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,MAAM,GAAc,GAAG,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE;QAC5C,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAErC,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE;YACvB,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7B,SAAS;SACV;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAE7D,IAAI,UAAU,EAAE;YACd,MAAM,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YAC7C,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;SAC9B;aAAM;YACL,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAEtC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;SAC9B;KACF;IAED,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,EAAE;QAC5D,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KACjC;SAAM;QACL,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;KAClC;IAED,MAAM,MAAM,mCAAa,GAAG,GAAK,GAAG,CAAE,CAAC;IAEvC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS,EAAE;QACtC,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KACjC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@voiceflow/common",
3
3
  "description": "Junk drawer of utility functions",
4
- "version": "7.19.3",
4
+ "version": "7.21.0",
5
5
  "author": "Voiceflow",
6
6
  "bugs": {
7
7
  "url": "https://github.com/voiceflow/libs/issues"
@@ -34,6 +34,7 @@
34
34
  "mocha": "9.1.3",
35
35
  "nyc": "^15.1.0",
36
36
  "rimraf": "^3.0.2",
37
+ "sinon": "^10.0.0",
37
38
  "ts-mocha": "^8.0.0",
38
39
  "ts-node": "10.5.0",
39
40
  "tsconfig-paths": "3.12.0",
@@ -50,6 +51,9 @@
50
51
  "license": "ISC",
51
52
  "main": "build/common/index.js",
52
53
  "module": "build/esm/index.js",
54
+ "publishConfig": {
55
+ "access": "public"
56
+ },
53
57
  "repository": {
54
58
  "type": "git",
55
59
  "url": "git+https://github.com/voiceflow/libs.git"
@@ -72,5 +76,5 @@
72
76
  "test:single": "NODE_ENV=test ts-mocha --paths --config config/tests/mocharc.yml",
73
77
  "test:unit": "NODE_ENV=test nyc --report-dir=nyc_coverage_unit ts-mocha --paths --config config/tests/mocharc.yml 'tests/**/*.unit.ts'"
74
78
  },
75
- "gitHead": "3278e6c57565c8f20e47350d667d29566e88a297"
79
+ "gitHead": "4f265e2cd11970e42817b7e40dbf7612a53ea385"
76
80
  }
@@ -1,8 +0,0 @@
1
- export declare const getKeys: <T>(obj: T) => (keyof T)[];
2
- export declare const pick: <T, K extends keyof T>(obj: T, keys: K[]) => Pick<T, K>;
3
- export declare const hasProperty: <T, K extends string | keyof T>(obj: T, key: K) => obj is T & Record<K, unknown>;
4
- 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>;
5
- export declare const setIn: (obj: Record<string, unknown>, path: any, value: any) => any;
6
- export declare const filterEntries: (obj: Record<string, any>, predicate: any) => any;
7
- export declare const getDiff: (object: Record<string, any>, base: Record<string, any>) => unknown;
8
- export declare const getTopLevelDiff: (object: any, base: any) => unknown;
@@ -1,94 +0,0 @@
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 = exports.filterEntries = exports.setIn = exports.getIn = exports.hasProperty = exports.pick = exports.getKeys = void 0;
7
- const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
8
- const isObject_1 = __importDefault(require("lodash/isObject"));
9
- const toPath_1 = __importDefault(require("lodash/toPath"));
10
- const transform_1 = __importDefault(require("lodash/transform"));
11
- const getKeys = (obj) => Object.keys(obj);
12
- exports.getKeys = getKeys;
13
- const pick = (obj, keys) => keys.reduce((acc, key) => Object.assign(acc, { [key]: obj[key] }), {});
14
- exports.pick = pick;
15
- const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
16
- exports.hasProperty = hasProperty;
17
- const getIn = (rawObj, key, def, index = 0) => {
18
- const path = (0, toPath_1.default)(key);
19
- let obj = rawObj;
20
- let i = index;
21
- if (path.length === 1) {
22
- return obj[path[0]];
23
- }
24
- while (obj && i < path.length) {
25
- obj = obj[path[i++]];
26
- }
27
- return obj === undefined ? def : obj;
28
- };
29
- exports.getIn = getIn;
30
- const setIn = (obj, path, value) => {
31
- const res = {};
32
- const pathArray = (0, toPath_1.default)(path);
33
- let resVal = res;
34
- let i = 0;
35
- for (; i < pathArray.length - 1; i++) {
36
- const currentPath = pathArray[i];
37
- const currentObj = (0, exports.getIn)(obj, pathArray.slice(0, i + 1));
38
- if (resVal[currentPath]) {
39
- resVal = resVal[currentPath];
40
- }
41
- else if (currentObj) {
42
- resVal[currentPath] = (0, cloneDeep_1.default)(currentObj);
43
- resVal = resVal[currentPath];
44
- }
45
- else {
46
- const nextPath = pathArray[i + 1];
47
- resVal[currentPath] = +nextPath >= 0 ? [] : {};
48
- resVal = resVal[currentPath];
49
- }
50
- }
51
- if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {
52
- return obj;
53
- }
54
- if (value === undefined) {
55
- delete resVal[pathArray[i]];
56
- }
57
- else {
58
- resVal[pathArray[i]] = value;
59
- }
60
- const result = Object.assign(Object.assign({}, obj), res);
61
- if (i === 0 && value === undefined) {
62
- delete result[pathArray[i]];
63
- }
64
- return result;
65
- };
66
- exports.setIn = setIn;
67
- const filterEntries = (obj, predicate) => Object.entries(obj).reduce((acc, [key, value]) => {
68
- if (predicate(key, value)) {
69
- acc[key] = value;
70
- }
71
- return acc;
72
- }, {});
73
- exports.filterEntries = filterEntries;
74
- const getDiff = (object, base) => {
75
- const changes = (object, base) => (0, transform_1.default)(object, (result, value, key) => {
76
- if (value !== base[key]) {
77
- // eslint-disable-next-line no-param-reassign
78
- result[key] = (0, isObject_1.default)(value) && (0, isObject_1.default)(base[key]) ? changes(value, base[key]) : value;
79
- }
80
- });
81
- return changes(object, base);
82
- };
83
- exports.getDiff = getDiff;
84
- const getTopLevelDiff = (object, base) => {
85
- const changes = (object, base) => (0, transform_1.default)(object, (result, value, key) => {
86
- if (value !== base[key]) {
87
- // eslint-disable-next-line no-param-reassign
88
- result[key] = value;
89
- }
90
- });
91
- return changes(object, base);
92
- };
93
- exports.getTopLevelDiff = getTopLevelDiff;
94
- //# sourceMappingURL=object.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/utils/object.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export declare const getKeys: <T>(obj: T) => (keyof T)[];
2
- export declare const pick: <T, K extends keyof T>(obj: T, keys: K[]) => Pick<T, K>;
3
- export declare const hasProperty: <T, K extends string | keyof T>(obj: T, key: K) => obj is T & Record<K, unknown>;
4
- 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>;
5
- export declare const setIn: (obj: Record<string, unknown>, path: any, value: any) => any;
6
- export declare const filterEntries: (obj: Record<string, any>, predicate: any) => any;
7
- export declare const getDiff: (object: Record<string, any>, base: Record<string, any>) => unknown;
8
- export declare const getTopLevelDiff: (object: any, base: any) => unknown;