@servicetitan/data-query 27.5.0 → 27.6.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.
@@ -5,10 +5,13 @@ import { DataResult } from '../data-result.interface';
5
5
  import { DataSource, IdType } from './data-source';
6
6
  export declare class InMemoryDataSource<T, TId extends IdType = never> implements DataSource<T, TId> {
7
7
  idSelector?: (row: T) => TId;
8
+ private clone;
8
9
  private data;
9
10
  private preprocessors;
10
11
  private cached?;
11
- constructor(data: T[], idSelector?: (row: T) => TId, preprocessors?: Preprocessors<T>);
12
+ constructor(data: T[], idSelector?: (row: T) => TId, preprocessors?: Preprocessors<T>, { cloneCustomizer }?: {
13
+ cloneCustomizer?: (value: any) => any;
14
+ });
12
15
  getData(state: State): Promise<DataResult<T>>;
13
16
  addData(row: T, index?: number): Promise<Awaited<T>>;
14
17
  updateData(id: TId, changes: Partial<T>): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-data-source.d.ts","sourceRoot":"","sources":["../../src/data-source/in-memory-data-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAInD,qBAAa,kBAAkB,CAAC,CAAC,EAAE,GAAG,SAAS,MAAM,GAAG,KAAK,CAAE,YAAW,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC;IACxF,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC;IAE7B,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,aAAa,CAAmB;IAExC,OAAO,CAAC,MAAM,CAAC,CAGb;gBAEU,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,aAAa,GAAE,aAAa,CAAC,CAAC,CAAM;IAMzF,OAAO,CAAC,KAAK,EAAE,KAAK;IAsBpB,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM;IAYxB,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAgBvC,UAAU,CAAC,EAAE,EAAE,GAAG;IAiBxB,0BAA0B,CAAC,MAAM,EAAE,yBAAyB;CAM/D"}
1
+ {"version":3,"file":"in-memory-data-source.d.ts","sourceRoot":"","sources":["../../src/data-source/in-memory-data-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAKnD,qBAAa,kBAAkB,CAAC,CAAC,EAAE,GAAG,SAAS,MAAM,GAAG,KAAK,CAAE,YAAW,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC;IACxF,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC;IAE7B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,aAAa,CAAmB;IAExC,OAAO,CAAC,MAAM,CAAC,CAGb;gBAGE,IAAI,EAAE,CAAC,EAAE,EACT,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,EAC5B,aAAa,GAAE,aAAa,CAAC,CAAC,CAAM,EACpC,EAAE,eAAe,EAAE,GAAE;QAAE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAA;KAAO;IAUvE,OAAO,CAAC,KAAK,EAAE,KAAK;IAsBpB,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM;IAYxB,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAgBvC,UAAU,CAAC,EAAE,EAAE,GAAG;IAiBxB,0BAA0B,CAAC,MAAM,EAAE,yBAAyB;CAM/D"}
@@ -10,15 +10,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import { filterBy } from '../filtering/filter-expression.factory';
11
11
  import { process } from '../array.operators';
12
12
  import cloneDeep from 'lodash/cloneDeep';
13
+ import cloneDeepWith from 'lodash/cloneDeepWith';
13
14
  import { toJS, comparer } from 'mobx';
14
15
  export class InMemoryDataSource {
15
- constructor(data, idSelector, preprocessors = {}) {
16
+ constructor(data, idSelector, preprocessors = {}, { cloneCustomizer } = {}) {
16
17
  Object.defineProperty(this, "idSelector", {
17
18
  enumerable: true,
18
19
  configurable: true,
19
20
  writable: true,
20
21
  value: void 0
21
22
  });
23
+ Object.defineProperty(this, "clone", {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: void 0
28
+ });
22
29
  Object.defineProperty(this, "data", {
23
30
  enumerable: true,
24
31
  configurable: true,
@@ -37,7 +44,10 @@ export class InMemoryDataSource {
37
44
  writable: true,
38
45
  value: void 0
39
46
  });
40
- this.data = cloneDeep(toJS(data));
47
+ this.clone = cloneCustomizer
48
+ ? (value) => cloneDeepWith(value, cloneCustomizer)
49
+ : cloneDeep;
50
+ this.data = this.clone(toJS(data));
41
51
  this.idSelector = idSelector;
42
52
  this.preprocessors = preprocessors;
43
53
  }
@@ -54,18 +64,18 @@ export class InMemoryDataSource {
54
64
  const { total } = sortedAndFiltered;
55
65
  return Promise.resolve({
56
66
  total,
57
- data: cloneDeep(data),
67
+ data: this.clone(data),
58
68
  });
59
69
  }
60
70
  addData(row, index) {
61
71
  if (index !== undefined) {
62
- this.data.splice(index, 0, cloneDeep(row));
72
+ this.data.splice(index, 0, this.clone(row));
63
73
  }
64
74
  else {
65
- this.data.push(cloneDeep(row));
75
+ this.data.push(this.clone(row));
66
76
  }
67
77
  this.cached = undefined;
68
- return Promise.resolve(cloneDeep(row));
78
+ return Promise.resolve(this.clone(row));
69
79
  }
70
80
  updateData(id, changes) {
71
81
  return __awaiter(this, void 0, void 0, function* () {
@@ -98,7 +108,7 @@ export class InMemoryDataSource {
98
108
  const set = new Set(this.data);
99
109
  const inFilter = filterBy(this.data, filter, this.preprocessors);
100
110
  inFilter.forEach(dataItem => set.delete(dataItem));
101
- return cloneDeep(Array.from(set));
111
+ return this.clone(Array.from(set));
102
112
  }
103
113
  }
104
114
  //# sourceMappingURL=in-memory-data-source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-data-source.js","sourceRoot":"","sources":["../../src/data-source/in-memory-data-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory-data-source.js","sourceRoot":"","sources":["../../src/data-source/in-memory-data-source.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/data-query",
3
- "version": "27.5.0",
3
+ "version": "27.6.0",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -32,5 +32,5 @@
32
32
  "cli": {
33
33
  "webpack": false
34
34
  },
35
- "gitHead": "88d27ed8f8772c7ae7314b2d66076ff83598405c"
35
+ "gitHead": "7666b6d172355ebbf911fe13e9c2e0c53b33c59d"
36
36
  }
@@ -6,11 +6,13 @@ import { filterBy } from '../filtering/filter-expression.factory';
6
6
  import { process } from '../array.operators';
7
7
  import { DataSource, IdType } from './data-source';
8
8
  import cloneDeep from 'lodash/cloneDeep';
9
+ import cloneDeepWith from 'lodash/cloneDeepWith';
9
10
  import { toJS, comparer } from 'mobx';
10
11
 
11
12
  export class InMemoryDataSource<T, TId extends IdType = never> implements DataSource<T, TId> {
12
13
  idSelector?: (row: T) => TId;
13
14
 
15
+ private clone: <U>(value: U) => U;
14
16
  private data: T[];
15
17
  private preprocessors: Preprocessors<T>;
16
18
 
@@ -19,8 +21,16 @@ export class InMemoryDataSource<T, TId extends IdType = never> implements DataSo
19
21
  result: DataResult<T>;
20
22
  };
21
23
 
22
- constructor(data: T[], idSelector?: (row: T) => TId, preprocessors: Preprocessors<T> = {}) {
23
- this.data = cloneDeep(toJS(data));
24
+ constructor(
25
+ data: T[],
26
+ idSelector?: (row: T) => TId,
27
+ preprocessors: Preprocessors<T> = {},
28
+ { cloneCustomizer }: { cloneCustomizer?: (value: any) => any } = {}
29
+ ) {
30
+ this.clone = cloneCustomizer
31
+ ? <U>(value: U) => cloneDeepWith(value, cloneCustomizer)
32
+ : cloneDeep;
33
+ this.data = this.clone(toJS(data));
24
34
  this.idSelector = idSelector;
25
35
  this.preprocessors = preprocessors;
26
36
  }
@@ -43,20 +53,20 @@ export class InMemoryDataSource<T, TId extends IdType = never> implements DataSo
43
53
 
44
54
  return Promise.resolve({
45
55
  total,
46
- data: cloneDeep(data),
56
+ data: this.clone(data),
47
57
  } as DataResult<T>);
48
58
  }
49
59
 
50
60
  addData(row: T, index?: number) {
51
61
  if (index !== undefined) {
52
- this.data.splice(index, 0, cloneDeep(row));
62
+ this.data.splice(index, 0, this.clone(row));
53
63
  } else {
54
- this.data.push(cloneDeep(row));
64
+ this.data.push(this.clone(row));
55
65
  }
56
66
 
57
67
  this.cached = undefined;
58
68
 
59
- return Promise.resolve(cloneDeep(row));
69
+ return Promise.resolve(this.clone(row));
60
70
  }
61
71
 
62
72
  async updateData(id: TId, changes: Partial<T>) {
@@ -96,6 +106,6 @@ export class InMemoryDataSource<T, TId extends IdType = never> implements DataSo
96
106
  const set = new Set(this.data);
97
107
  const inFilter = filterBy(this.data, filter, this.preprocessors);
98
108
  inFilter.forEach(dataItem => set.delete(dataItem));
99
- return cloneDeep(Array.from(set));
109
+ return this.clone(Array.from(set));
100
110
  }
101
111
  }