@knotx/data 0.2.10 → 0.2.12
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 +22 -14
- package/dist/index.d.cts +5 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +22 -14
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -115,6 +115,9 @@ class DataManager {
|
|
|
115
115
|
return this.operations$.asObservable();
|
|
116
116
|
}
|
|
117
117
|
dispatch(operation) {
|
|
118
|
+
if (operation.type === "batch" && operation.operations.length === 0) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
118
121
|
this.operations$.next(operation);
|
|
119
122
|
}
|
|
120
123
|
getDraftDataList(draftId) {
|
|
@@ -180,9 +183,16 @@ class DataManager {
|
|
|
180
183
|
break;
|
|
181
184
|
}
|
|
182
185
|
case "draftOperation": {
|
|
183
|
-
|
|
184
|
-
if (draftDataMap) {
|
|
185
|
-
|
|
186
|
+
let draftDataMap$ = this.drafts$.value.get(operation.draftId);
|
|
187
|
+
if (!draftDataMap$ && operation.isAutoStart) {
|
|
188
|
+
draftDataMap$ = new rxjs.BehaviorSubject(/* @__PURE__ */ new Map());
|
|
189
|
+
this.drafts$.next(this.drafts$.value.set(operation.draftId, draftDataMap$));
|
|
190
|
+
if (typeof operation.isAutoStart !== "object" || operation.isAutoStart.isSilent !== false) {
|
|
191
|
+
this.currentDraftDataMap$.next(draftDataMap$.value);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (draftDataMap$) {
|
|
195
|
+
this.applyOperation(new Proxy(draftDataMap$.value, {
|
|
186
196
|
get(target, prop) {
|
|
187
197
|
const draft = target;
|
|
188
198
|
switch (prop) {
|
|
@@ -202,17 +212,17 @@ class DataManager {
|
|
|
202
212
|
}
|
|
203
213
|
}
|
|
204
214
|
}), operation.operation);
|
|
205
|
-
if (this.currentDraftDataMap$.value === draftDataMap
|
|
206
|
-
this.currentDraftDataMap$.next(draftDataMap
|
|
215
|
+
if (this.currentDraftDataMap$.value === draftDataMap$.value) {
|
|
216
|
+
this.currentDraftDataMap$.next(draftDataMap$.value);
|
|
207
217
|
}
|
|
208
218
|
}
|
|
209
219
|
break;
|
|
210
220
|
}
|
|
211
221
|
case "commitDraft": {
|
|
212
|
-
const
|
|
213
|
-
if (
|
|
222
|
+
const draftDataMap$ = this.drafts$.value.get(operation.draftId);
|
|
223
|
+
if (draftDataMap$) {
|
|
214
224
|
const operations = [];
|
|
215
|
-
|
|
225
|
+
draftDataMap$.value.forEach((data, id) => {
|
|
216
226
|
if (data === false) {
|
|
217
227
|
if (dataMap.has(id)) {
|
|
218
228
|
operations.push({ type: "remove", id });
|
|
@@ -231,12 +241,10 @@ class DataManager {
|
|
|
231
241
|
if (operation.isDryRun) {
|
|
232
242
|
return this.applyOperation(dataMap, { type: "batch", operations });
|
|
233
243
|
}
|
|
234
|
-
|
|
235
|
-
this.dispatch({ type: "batch", operations });
|
|
236
|
-
}
|
|
244
|
+
this.dispatch({ type: "batch", operations });
|
|
237
245
|
this.drafts$.value.delete(operation.draftId);
|
|
238
246
|
this.drafts$.next(this.drafts$.value);
|
|
239
|
-
if (this.currentDraftDataMap$.value ===
|
|
247
|
+
if (this.currentDraftDataMap$.value === draftDataMap$.value) {
|
|
240
248
|
this.currentDraftDataMap$.next(void 0);
|
|
241
249
|
}
|
|
242
250
|
}
|
|
@@ -245,8 +253,8 @@ class DataManager {
|
|
|
245
253
|
case "discardDraft": {
|
|
246
254
|
this.drafts$.value.delete(operation.draftId);
|
|
247
255
|
this.drafts$.next(this.drafts$.value);
|
|
248
|
-
const
|
|
249
|
-
if (this.currentDraftDataMap$.value === (
|
|
256
|
+
const draftDataMap$ = this.drafts$.value.get(operation.draftId);
|
|
257
|
+
if (this.currentDraftDataMap$.value === (draftDataMap$ == null ? void 0 : draftDataMap$.value)) {
|
|
250
258
|
this.currentDraftDataMap$.next(void 0);
|
|
251
259
|
}
|
|
252
260
|
break;
|
package/dist/index.d.cts
CHANGED
|
@@ -61,6 +61,11 @@ interface DataDraftOperation<T extends IData = IData> {
|
|
|
61
61
|
operation: Exclude<DataOperation<T>, {
|
|
62
62
|
draftId: string;
|
|
63
63
|
}>;
|
|
64
|
+
/**
|
|
65
|
+
* 是否自动启动草稿,如果为 true,则当草稿不存在时,会自动创建草稿
|
|
66
|
+
* 如果为对象,则自动启动草稿,并透传对应参数
|
|
67
|
+
*/
|
|
68
|
+
isAutoStart?: boolean | Omit<DataStartDraftOperation<T>, 'type' | 'draftId'>;
|
|
64
69
|
}
|
|
65
70
|
type DataOperation<T extends IData = IData> = DataAddOperation<T> | DataRemoveOperation<T> | DataUpdateOperation<T> | DataBatchOperation<T> | DataStartDraftOperation<T> | DataCommitDraftOperation<T> | DataDiscardDraftOperation<T> | DataDraftOperation<T>;
|
|
66
71
|
declare class DataManager<TData extends IData = IData, TTag extends string = any> {
|
package/dist/index.d.mts
CHANGED
|
@@ -61,6 +61,11 @@ interface DataDraftOperation<T extends IData = IData> {
|
|
|
61
61
|
operation: Exclude<DataOperation<T>, {
|
|
62
62
|
draftId: string;
|
|
63
63
|
}>;
|
|
64
|
+
/**
|
|
65
|
+
* 是否自动启动草稿,如果为 true,则当草稿不存在时,会自动创建草稿
|
|
66
|
+
* 如果为对象,则自动启动草稿,并透传对应参数
|
|
67
|
+
*/
|
|
68
|
+
isAutoStart?: boolean | Omit<DataStartDraftOperation<T>, 'type' | 'draftId'>;
|
|
64
69
|
}
|
|
65
70
|
type DataOperation<T extends IData = IData> = DataAddOperation<T> | DataRemoveOperation<T> | DataUpdateOperation<T> | DataBatchOperation<T> | DataStartDraftOperation<T> | DataCommitDraftOperation<T> | DataDiscardDraftOperation<T> | DataDraftOperation<T>;
|
|
66
71
|
declare class DataManager<TData extends IData = IData, TTag extends string = any> {
|
package/dist/index.d.ts
CHANGED
|
@@ -61,6 +61,11 @@ interface DataDraftOperation<T extends IData = IData> {
|
|
|
61
61
|
operation: Exclude<DataOperation<T>, {
|
|
62
62
|
draftId: string;
|
|
63
63
|
}>;
|
|
64
|
+
/**
|
|
65
|
+
* 是否自动启动草稿,如果为 true,则当草稿不存在时,会自动创建草稿
|
|
66
|
+
* 如果为对象,则自动启动草稿,并透传对应参数
|
|
67
|
+
*/
|
|
68
|
+
isAutoStart?: boolean | Omit<DataStartDraftOperation<T>, 'type' | 'draftId'>;
|
|
64
69
|
}
|
|
65
70
|
type DataOperation<T extends IData = IData> = DataAddOperation<T> | DataRemoveOperation<T> | DataUpdateOperation<T> | DataBatchOperation<T> | DataStartDraftOperation<T> | DataCommitDraftOperation<T> | DataDiscardDraftOperation<T> | DataDraftOperation<T>;
|
|
66
71
|
declare class DataManager<TData extends IData = IData, TTag extends string = any> {
|
package/dist/index.js
CHANGED
|
@@ -113,6 +113,9 @@ class DataManager {
|
|
|
113
113
|
return this.operations$.asObservable();
|
|
114
114
|
}
|
|
115
115
|
dispatch(operation) {
|
|
116
|
+
if (operation.type === "batch" && operation.operations.length === 0) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
116
119
|
this.operations$.next(operation);
|
|
117
120
|
}
|
|
118
121
|
getDraftDataList(draftId) {
|
|
@@ -178,9 +181,16 @@ class DataManager {
|
|
|
178
181
|
break;
|
|
179
182
|
}
|
|
180
183
|
case "draftOperation": {
|
|
181
|
-
|
|
182
|
-
if (draftDataMap) {
|
|
183
|
-
|
|
184
|
+
let draftDataMap$ = this.drafts$.value.get(operation.draftId);
|
|
185
|
+
if (!draftDataMap$ && operation.isAutoStart) {
|
|
186
|
+
draftDataMap$ = new BehaviorSubject(/* @__PURE__ */ new Map());
|
|
187
|
+
this.drafts$.next(this.drafts$.value.set(operation.draftId, draftDataMap$));
|
|
188
|
+
if (typeof operation.isAutoStart !== "object" || operation.isAutoStart.isSilent !== false) {
|
|
189
|
+
this.currentDraftDataMap$.next(draftDataMap$.value);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
if (draftDataMap$) {
|
|
193
|
+
this.applyOperation(new Proxy(draftDataMap$.value, {
|
|
184
194
|
get(target, prop) {
|
|
185
195
|
const draft = target;
|
|
186
196
|
switch (prop) {
|
|
@@ -200,17 +210,17 @@ class DataManager {
|
|
|
200
210
|
}
|
|
201
211
|
}
|
|
202
212
|
}), operation.operation);
|
|
203
|
-
if (this.currentDraftDataMap$.value === draftDataMap
|
|
204
|
-
this.currentDraftDataMap$.next(draftDataMap
|
|
213
|
+
if (this.currentDraftDataMap$.value === draftDataMap$.value) {
|
|
214
|
+
this.currentDraftDataMap$.next(draftDataMap$.value);
|
|
205
215
|
}
|
|
206
216
|
}
|
|
207
217
|
break;
|
|
208
218
|
}
|
|
209
219
|
case "commitDraft": {
|
|
210
|
-
const
|
|
211
|
-
if (
|
|
220
|
+
const draftDataMap$ = this.drafts$.value.get(operation.draftId);
|
|
221
|
+
if (draftDataMap$) {
|
|
212
222
|
const operations = [];
|
|
213
|
-
|
|
223
|
+
draftDataMap$.value.forEach((data, id) => {
|
|
214
224
|
if (data === false) {
|
|
215
225
|
if (dataMap.has(id)) {
|
|
216
226
|
operations.push({ type: "remove", id });
|
|
@@ -229,12 +239,10 @@ class DataManager {
|
|
|
229
239
|
if (operation.isDryRun) {
|
|
230
240
|
return this.applyOperation(dataMap, { type: "batch", operations });
|
|
231
241
|
}
|
|
232
|
-
|
|
233
|
-
this.dispatch({ type: "batch", operations });
|
|
234
|
-
}
|
|
242
|
+
this.dispatch({ type: "batch", operations });
|
|
235
243
|
this.drafts$.value.delete(operation.draftId);
|
|
236
244
|
this.drafts$.next(this.drafts$.value);
|
|
237
|
-
if (this.currentDraftDataMap$.value ===
|
|
245
|
+
if (this.currentDraftDataMap$.value === draftDataMap$.value) {
|
|
238
246
|
this.currentDraftDataMap$.next(void 0);
|
|
239
247
|
}
|
|
240
248
|
}
|
|
@@ -243,8 +251,8 @@ class DataManager {
|
|
|
243
251
|
case "discardDraft": {
|
|
244
252
|
this.drafts$.value.delete(operation.draftId);
|
|
245
253
|
this.drafts$.next(this.drafts$.value);
|
|
246
|
-
const
|
|
247
|
-
if (this.currentDraftDataMap$.value === (
|
|
254
|
+
const draftDataMap$ = this.drafts$.value.get(operation.draftId);
|
|
255
|
+
if (this.currentDraftDataMap$.value === (draftDataMap$ == null ? void 0 : draftDataMap$.value)) {
|
|
248
256
|
this.currentDraftDataMap$.next(void 0);
|
|
249
257
|
}
|
|
250
258
|
break;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knotx/data",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.12",
|
|
4
4
|
"description": "Data for Knotx",
|
|
5
5
|
"author": "boenfu",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/lodash-es": "^4.17.12",
|
|
36
|
-
"@knotx/build-config": "0.2.
|
|
37
|
-
"@knotx/eslint-config": "0.2.
|
|
38
|
-
"@knotx/typescript-config": "0.2.
|
|
36
|
+
"@knotx/build-config": "0.2.12",
|
|
37
|
+
"@knotx/eslint-config": "0.2.12",
|
|
38
|
+
"@knotx/typescript-config": "0.2.12"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|
|
41
41
|
"build": "unbuild",
|