@knotx/data 0.2.11 → 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 +18 -11
- 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 +18 -11
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -183,9 +183,16 @@ class DataManager {
|
|
|
183
183
|
break;
|
|
184
184
|
}
|
|
185
185
|
case "draftOperation": {
|
|
186
|
-
|
|
187
|
-
if (draftDataMap) {
|
|
188
|
-
|
|
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, {
|
|
189
196
|
get(target, prop) {
|
|
190
197
|
const draft = target;
|
|
191
198
|
switch (prop) {
|
|
@@ -205,17 +212,17 @@ class DataManager {
|
|
|
205
212
|
}
|
|
206
213
|
}
|
|
207
214
|
}), operation.operation);
|
|
208
|
-
if (this.currentDraftDataMap$.value === draftDataMap
|
|
209
|
-
this.currentDraftDataMap$.next(draftDataMap
|
|
215
|
+
if (this.currentDraftDataMap$.value === draftDataMap$.value) {
|
|
216
|
+
this.currentDraftDataMap$.next(draftDataMap$.value);
|
|
210
217
|
}
|
|
211
218
|
}
|
|
212
219
|
break;
|
|
213
220
|
}
|
|
214
221
|
case "commitDraft": {
|
|
215
|
-
const
|
|
216
|
-
if (
|
|
222
|
+
const draftDataMap$ = this.drafts$.value.get(operation.draftId);
|
|
223
|
+
if (draftDataMap$) {
|
|
217
224
|
const operations = [];
|
|
218
|
-
|
|
225
|
+
draftDataMap$.value.forEach((data, id) => {
|
|
219
226
|
if (data === false) {
|
|
220
227
|
if (dataMap.has(id)) {
|
|
221
228
|
operations.push({ type: "remove", id });
|
|
@@ -237,7 +244,7 @@ class DataManager {
|
|
|
237
244
|
this.dispatch({ type: "batch", operations });
|
|
238
245
|
this.drafts$.value.delete(operation.draftId);
|
|
239
246
|
this.drafts$.next(this.drafts$.value);
|
|
240
|
-
if (this.currentDraftDataMap$.value ===
|
|
247
|
+
if (this.currentDraftDataMap$.value === draftDataMap$.value) {
|
|
241
248
|
this.currentDraftDataMap$.next(void 0);
|
|
242
249
|
}
|
|
243
250
|
}
|
|
@@ -246,8 +253,8 @@ class DataManager {
|
|
|
246
253
|
case "discardDraft": {
|
|
247
254
|
this.drafts$.value.delete(operation.draftId);
|
|
248
255
|
this.drafts$.next(this.drafts$.value);
|
|
249
|
-
const
|
|
250
|
-
if (this.currentDraftDataMap$.value === (
|
|
256
|
+
const draftDataMap$ = this.drafts$.value.get(operation.draftId);
|
|
257
|
+
if (this.currentDraftDataMap$.value === (draftDataMap$ == null ? void 0 : draftDataMap$.value)) {
|
|
251
258
|
this.currentDraftDataMap$.next(void 0);
|
|
252
259
|
}
|
|
253
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
|
@@ -181,9 +181,16 @@ class DataManager {
|
|
|
181
181
|
break;
|
|
182
182
|
}
|
|
183
183
|
case "draftOperation": {
|
|
184
|
-
|
|
185
|
-
if (draftDataMap) {
|
|
186
|
-
|
|
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, {
|
|
187
194
|
get(target, prop) {
|
|
188
195
|
const draft = target;
|
|
189
196
|
switch (prop) {
|
|
@@ -203,17 +210,17 @@ class DataManager {
|
|
|
203
210
|
}
|
|
204
211
|
}
|
|
205
212
|
}), operation.operation);
|
|
206
|
-
if (this.currentDraftDataMap$.value === draftDataMap
|
|
207
|
-
this.currentDraftDataMap$.next(draftDataMap
|
|
213
|
+
if (this.currentDraftDataMap$.value === draftDataMap$.value) {
|
|
214
|
+
this.currentDraftDataMap$.next(draftDataMap$.value);
|
|
208
215
|
}
|
|
209
216
|
}
|
|
210
217
|
break;
|
|
211
218
|
}
|
|
212
219
|
case "commitDraft": {
|
|
213
|
-
const
|
|
214
|
-
if (
|
|
220
|
+
const draftDataMap$ = this.drafts$.value.get(operation.draftId);
|
|
221
|
+
if (draftDataMap$) {
|
|
215
222
|
const operations = [];
|
|
216
|
-
|
|
223
|
+
draftDataMap$.value.forEach((data, id) => {
|
|
217
224
|
if (data === false) {
|
|
218
225
|
if (dataMap.has(id)) {
|
|
219
226
|
operations.push({ type: "remove", id });
|
|
@@ -235,7 +242,7 @@ class DataManager {
|
|
|
235
242
|
this.dispatch({ type: "batch", operations });
|
|
236
243
|
this.drafts$.value.delete(operation.draftId);
|
|
237
244
|
this.drafts$.next(this.drafts$.value);
|
|
238
|
-
if (this.currentDraftDataMap$.value ===
|
|
245
|
+
if (this.currentDraftDataMap$.value === draftDataMap$.value) {
|
|
239
246
|
this.currentDraftDataMap$.next(void 0);
|
|
240
247
|
}
|
|
241
248
|
}
|
|
@@ -244,8 +251,8 @@ class DataManager {
|
|
|
244
251
|
case "discardDraft": {
|
|
245
252
|
this.drafts$.value.delete(operation.draftId);
|
|
246
253
|
this.drafts$.next(this.drafts$.value);
|
|
247
|
-
const
|
|
248
|
-
if (this.currentDraftDataMap$.value === (
|
|
254
|
+
const draftDataMap$ = this.drafts$.value.get(operation.draftId);
|
|
255
|
+
if (this.currentDraftDataMap$.value === (draftDataMap$ == null ? void 0 : draftDataMap$.value)) {
|
|
249
256
|
this.currentDraftDataMap$.next(void 0);
|
|
250
257
|
}
|
|
251
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",
|