@knotx/data 0.2.6 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -4,6 +4,8 @@ const rxjs = require('rxjs');
4
4
  const operators = require('rxjs/operators');
5
5
 
6
6
  var __defProp$1 = Object.defineProperty;
7
+ var __defProps = Object.defineProperties;
8
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
9
  var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
8
10
  var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
9
11
  var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
@@ -19,6 +21,7 @@ var __spreadValues$1 = (a, b) => {
19
21
  }
20
22
  return a;
21
23
  };
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
25
  var __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
23
26
  class DataManager {
24
27
  constructor(tag) {
@@ -105,7 +108,7 @@ class DataManager {
105
108
  operators.tap(({ operations }) => this.updateVersion({ type: "batch", operations })),
106
109
  operators.map(({ dataMap, operations }) => this.applyOperation(dataMap, { type: "batch", operations }))
107
110
  ).subscribe(this.dataMap$);
108
- this.operations$.next({ type: "batch", operations: initialDataList.map((data) => ({ type: "add", data })), isInit: true });
111
+ this.dispatch({ type: "batch", operations: initialDataList.map((data) => ({ type: "add", data })), isInit: true });
109
112
  }
110
113
  getOperations$() {
111
114
  return this.operations$.asObservable();
@@ -133,6 +136,18 @@ class DataManager {
133
136
  }
134
137
  return data;
135
138
  }
139
+ dryRun(operation) {
140
+ switch (operation.type) {
141
+ case "commitDraft": {
142
+ const dataMap = this.applyOperation(new Map(this.dataMap$.value), __spreadProps(__spreadValues$1({}, operation), {
143
+ isDryRun: true
144
+ }));
145
+ return dataMap;
146
+ }
147
+ default:
148
+ return this.dataMap$.value;
149
+ }
150
+ }
136
151
  applyOperation(dataMap, operation) {
137
152
  switch (operation.type) {
138
153
  case "add":
@@ -208,6 +223,9 @@ class DataManager {
208
223
  operations.push({ type: "update", id, data });
209
224
  }
210
225
  });
226
+ if (operation.isDryRun) {
227
+ return this.applyOperation(dataMap, { type: "batch", operations });
228
+ }
211
229
  if (operations.length > 0) {
212
230
  this.dispatch({ type: "batch", operations });
213
231
  }
package/dist/index.d.cts CHANGED
@@ -48,6 +48,7 @@ interface DataStartDraftOperation<_T extends IData = IData> {
48
48
  interface DataCommitDraftOperation<_T extends IData = IData> {
49
49
  type: 'commitDraft';
50
50
  draftId: string;
51
+ isDryRun?: boolean;
51
52
  }
52
53
  interface DataDiscardDraftOperation<_T extends IData = IData> {
53
54
  type: 'discardDraft';
@@ -91,6 +92,7 @@ declare class DataManager<TData extends IData = IData, TTag extends string = any
91
92
  getDraftDataList(draftId: string): TData[] | undefined;
92
93
  getDraftData(draftId: string, dataId: string): TData | undefined;
93
94
  getCurrentDraftData(dataId: string): TData | undefined;
95
+ dryRun(operation: DataOperation<TData>): Map<string, TData>;
94
96
  private applyOperation;
95
97
  private updateVersion;
96
98
  private isPatchOperation;
package/dist/index.d.mts CHANGED
@@ -48,6 +48,7 @@ interface DataStartDraftOperation<_T extends IData = IData> {
48
48
  interface DataCommitDraftOperation<_T extends IData = IData> {
49
49
  type: 'commitDraft';
50
50
  draftId: string;
51
+ isDryRun?: boolean;
51
52
  }
52
53
  interface DataDiscardDraftOperation<_T extends IData = IData> {
53
54
  type: 'discardDraft';
@@ -91,6 +92,7 @@ declare class DataManager<TData extends IData = IData, TTag extends string = any
91
92
  getDraftDataList(draftId: string): TData[] | undefined;
92
93
  getDraftData(draftId: string, dataId: string): TData | undefined;
93
94
  getCurrentDraftData(dataId: string): TData | undefined;
95
+ dryRun(operation: DataOperation<TData>): Map<string, TData>;
94
96
  private applyOperation;
95
97
  private updateVersion;
96
98
  private isPatchOperation;
package/dist/index.d.ts CHANGED
@@ -48,6 +48,7 @@ interface DataStartDraftOperation<_T extends IData = IData> {
48
48
  interface DataCommitDraftOperation<_T extends IData = IData> {
49
49
  type: 'commitDraft';
50
50
  draftId: string;
51
+ isDryRun?: boolean;
51
52
  }
52
53
  interface DataDiscardDraftOperation<_T extends IData = IData> {
53
54
  type: 'discardDraft';
@@ -91,6 +92,7 @@ declare class DataManager<TData extends IData = IData, TTag extends string = any
91
92
  getDraftDataList(draftId: string): TData[] | undefined;
92
93
  getDraftData(draftId: string, dataId: string): TData | undefined;
93
94
  getCurrentDraftData(dataId: string): TData | undefined;
95
+ dryRun(operation: DataOperation<TData>): Map<string, TData>;
94
96
  private applyOperation;
95
97
  private updateVersion;
96
98
  private isPatchOperation;
package/dist/index.js CHANGED
@@ -2,6 +2,8 @@ import { Subject, BehaviorSubject, pipe } from 'rxjs';
2
2
  import { map, distinctUntilChanged, tap, scan } from 'rxjs/operators';
3
3
 
4
4
  var __defProp$1 = Object.defineProperty;
5
+ var __defProps = Object.defineProperties;
6
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
7
  var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
6
8
  var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
7
9
  var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
@@ -17,6 +19,7 @@ var __spreadValues$1 = (a, b) => {
17
19
  }
18
20
  return a;
19
21
  };
22
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
23
  var __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
21
24
  class DataManager {
22
25
  constructor(tag) {
@@ -103,7 +106,7 @@ class DataManager {
103
106
  tap(({ operations }) => this.updateVersion({ type: "batch", operations })),
104
107
  map(({ dataMap, operations }) => this.applyOperation(dataMap, { type: "batch", operations }))
105
108
  ).subscribe(this.dataMap$);
106
- this.operations$.next({ type: "batch", operations: initialDataList.map((data) => ({ type: "add", data })), isInit: true });
109
+ this.dispatch({ type: "batch", operations: initialDataList.map((data) => ({ type: "add", data })), isInit: true });
107
110
  }
108
111
  getOperations$() {
109
112
  return this.operations$.asObservable();
@@ -131,6 +134,18 @@ class DataManager {
131
134
  }
132
135
  return data;
133
136
  }
137
+ dryRun(operation) {
138
+ switch (operation.type) {
139
+ case "commitDraft": {
140
+ const dataMap = this.applyOperation(new Map(this.dataMap$.value), __spreadProps(__spreadValues$1({}, operation), {
141
+ isDryRun: true
142
+ }));
143
+ return dataMap;
144
+ }
145
+ default:
146
+ return this.dataMap$.value;
147
+ }
148
+ }
134
149
  applyOperation(dataMap, operation) {
135
150
  switch (operation.type) {
136
151
  case "add":
@@ -206,6 +221,9 @@ class DataManager {
206
221
  operations.push({ type: "update", id, data });
207
222
  }
208
223
  });
224
+ if (operation.isDryRun) {
225
+ return this.applyOperation(dataMap, { type: "batch", operations });
226
+ }
209
227
  if (operations.length > 0) {
210
228
  this.dispatch({ type: "batch", operations });
211
229
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knotx/data",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "Data for Knotx",
5
5
  "author": "boenfu",
6
6
  "license": "MIT",
@@ -31,9 +31,9 @@
31
31
  "rxjs": "^7.8.1"
32
32
  },
33
33
  "devDependencies": {
34
- "@knotx/build-config": "0.2.6",
35
- "@knotx/eslint-config": "0.2.6",
36
- "@knotx/typescript-config": "0.2.6"
34
+ "@knotx/build-config": "0.2.8",
35
+ "@knotx/eslint-config": "0.2.8",
36
+ "@knotx/typescript-config": "0.2.8"
37
37
  },
38
38
  "scripts": {
39
39
  "build": "unbuild",