emberflow 1.4.28 → 1.4.30

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.
@@ -31,8 +31,9 @@ const pubsub_1 = require("../utils/pubsub");
31
31
  const misc_1 = require("../utils/misc");
32
32
  const paths_1 = require("../utils/paths");
33
33
  function createViewLogicFn(viewDefinition) {
34
- const { srcEntity, srcProps, destEntity, destProp, } = viewDefinition;
35
- const logicName = `${destEntity}${destProp ? `#${destProp.name}` : ""}`;
34
+ const { srcEntity: defSrcEntity, srcProps: defSrcProps, destEntity: defDestEntity, destProp: defDestProp, options: defOptions, } = viewDefinition;
35
+ const { syncCreate = false } = defOptions || {};
36
+ const logicName = `${defDestEntity}${defDestProp ? `#${defDestProp.name}` : ""}`;
36
37
  function formViewDocId(viewDstPath) {
37
38
  let viewDocId = viewDstPath.replace(/[/#]/g, "+");
38
39
  if (viewDocId.startsWith("+")) {
@@ -40,15 +41,36 @@ function createViewLogicFn(viewDefinition) {
40
41
  }
41
42
  return viewDocId;
42
43
  }
44
+ function createLogicDocsWhenViewIsCreated(srcPath, viewDstPath) {
45
+ const logicResultDocs = [];
46
+ const srcAtViewsPath = formAtViewsPath(viewDstPath, srcPath);
47
+ const { destProp: viewDestProp, destPropId: viewDestPropId, isArrayMap: viewIsArrayMap, basePath: viewBasePath, } = (0, paths_1.getDestPropAndDestPropId)(viewDstPath);
48
+ logicResultDocs.push({
49
+ action: "create",
50
+ dstPath: srcAtViewsPath,
51
+ doc: Object.assign({ path: viewDstPath, srcProps: defSrcProps.sort(), destEntity: defDestEntity }, (viewDestProp ? { destProp: viewDestProp } : {})),
52
+ });
53
+ if (viewDestProp && viewIsArrayMap) {
54
+ logicResultDocs.push({
55
+ action: "merge",
56
+ dstPath: viewBasePath,
57
+ instructions: {
58
+ [`@${viewDestProp}`]: `arr+(${viewDestPropId})`,
59
+ },
60
+ skipRunViewLogics: true,
61
+ });
62
+ }
63
+ return logicResultDocs;
64
+ }
43
65
  function formAtViewsPath(viewDstPath, srcPath) {
44
66
  const viewDocId = formViewDocId(viewDstPath);
45
67
  return `${srcPath}/@views/${viewDocId}`;
46
68
  }
47
69
  const srcToDstLogicFn = async (logicResultDoc) => {
48
- const { doc, instructions, dstPath: srcPath, action, } = logicResultDoc;
49
- console.log(`Executing ViewLogic on document at ${srcPath}...`);
50
- function syncDeleteToViewDstPaths() {
51
- const documents = viewDstPathDocs.map((viewDstPathDoc) => {
70
+ const { doc: srcDoc, instructions: srcInstructions, dstPath: srcPath, action: srcAction, } = logicResultDoc;
71
+ console.info(`Executing ViewLogic on document at ${srcPath}...`);
72
+ function syncDeleteToViewsDstPath() {
73
+ const documents = atViewsDocs.map((viewDstPathDoc) => {
52
74
  return {
53
75
  action: "delete",
54
76
  dstPath: viewDstPathDoc.data().path,
@@ -57,60 +79,59 @@ function createViewLogicFn(viewDefinition) {
57
79
  return {
58
80
  name: `${logicName} ViewLogic`,
59
81
  status: "finished",
60
- timeFinished: admin.firestore.Timestamp.now(),
61
82
  documents,
62
83
  };
63
84
  }
64
- async function syncMergeToDestPaths() {
85
+ async function syncMergeToViewsDstPath() {
65
86
  var _a;
66
87
  const now = admin.firestore.Timestamp.now();
67
88
  const viewDoc = {
68
89
  "@updatedByViewDefinitionAt": now,
69
90
  };
70
91
  const viewInstructions = {};
71
- for (const srcProp of srcProps) {
72
- if ((doc === null || doc === void 0 ? void 0 : doc[srcProp]) !== undefined) {
73
- viewDoc[srcProp] = doc[srcProp];
92
+ for (const srcProp of defSrcProps) {
93
+ if ((srcDoc === null || srcDoc === void 0 ? void 0 : srcDoc[srcProp]) !== undefined) {
94
+ viewDoc[srcProp] = srcDoc[srcProp];
74
95
  }
75
- if (instructions === null || instructions === void 0 ? void 0 : instructions[srcProp]) {
76
- viewInstructions[srcProp] = instructions[srcProp];
96
+ if (srcInstructions === null || srcInstructions === void 0 ? void 0 : srcInstructions[srcProp]) {
97
+ viewInstructions[srcProp] = srcInstructions[srcProp];
77
98
  }
78
99
  }
79
100
  const viewLogicResultDocs = [];
80
- for (const viewDstPathDoc of viewDstPathDocs) {
81
- const dstPath = viewDstPathDoc.data().path;
82
- const { basePath, destProp, destPropId } = (0, paths_1.getDestPropAndDestPropId)(dstPath);
83
- const docSnap = await index_1.db.doc(basePath).get();
101
+ for (const atViewsDoc of atViewsDocs) {
102
+ const viewDstPath = atViewsDoc.data().path;
103
+ const { basePath: viewBasePath, destProp: viewDestProp, destPropId: viewDestPropId } = (0, paths_1.getDestPropAndDestPropId)(viewDstPath);
104
+ const viewDocSnap = await index_1.db.doc(viewBasePath).get();
84
105
  // If the doc doesn't exist, delete dstPath and skip creating logicDoc
85
- if (!docSnap.exists) {
106
+ if (!viewDocSnap.exists) {
86
107
  viewLogicResultDocs.push({
87
108
  action: "delete",
88
- dstPath: viewDstPathDoc.ref.path,
109
+ dstPath: atViewsDoc.ref.path,
89
110
  });
90
111
  continue;
91
112
  }
92
- if (destProp) {
93
- const docData = docSnap.data();
113
+ if (viewDestProp) {
114
+ const viewDocData = viewDocSnap.data();
94
115
  // If has destPropId but destPropId doesn't exist, delete dstPath and skip creating logicDoc
95
- if (destPropId && !((_a = docData === null || docData === void 0 ? void 0 : docData[destProp]) === null || _a === void 0 ? void 0 : _a[destPropId])) {
116
+ if (viewDestPropId && !((_a = viewDocData === null || viewDocData === void 0 ? void 0 : viewDocData[viewDestProp]) === null || _a === void 0 ? void 0 : _a[viewDestPropId])) {
96
117
  viewLogicResultDocs.push({
97
118
  action: "delete",
98
- dstPath: viewDstPathDoc.ref.path,
119
+ dstPath: atViewsDoc.ref.path,
99
120
  });
100
121
  continue;
101
122
  }
102
123
  // If destProp only and doesn't exist, delete dstPath and skip creating logicDoc
103
- if (!(docData === null || docData === void 0 ? void 0 : docData[destProp])) {
124
+ if (!(viewDocData === null || viewDocData === void 0 ? void 0 : viewDocData[viewDestProp])) {
104
125
  viewLogicResultDocs.push({
105
126
  action: "delete",
106
- dstPath: viewDstPathDoc.ref.path,
127
+ dstPath: atViewsDoc.ref.path,
107
128
  });
108
129
  continue;
109
130
  }
110
131
  }
111
132
  viewLogicResultDocs.push({
112
133
  action: "merge",
113
- dstPath,
134
+ dstPath: viewDstPath,
114
135
  doc: viewDoc,
115
136
  instructions: viewInstructions,
116
137
  });
@@ -118,60 +139,110 @@ function createViewLogicFn(viewDefinition) {
118
139
  return {
119
140
  name: `${logicName} ViewLogic`,
120
141
  status: "finished",
121
- timeFinished: now,
122
142
  documents: viewLogicResultDocs,
123
143
  };
124
144
  }
125
145
  async function syncAtViewsSrcPropsIfDifferentFromViewDefinition() {
126
- for (const doc of viewDstPathDocs) {
127
- const { srcProps: atViewsSrcProps, path: atViewsDstPath } = doc.data();
128
- const viewDocId = formViewDocId(atViewsDstPath);
129
- const srcAtViewsPath = doc.ref.path;
130
- const sortedSrcProps = srcProps.sort();
131
- if (viewDocId !== doc.id) {
132
- await doc.ref.delete();
133
- await index_1.db.doc(srcAtViewsPath).set(Object.assign({ path: atViewsDstPath, srcProps: sortedSrcProps, destEntity }, (destProp ? { destProp: destProp.name } : {})));
134
- continue;
135
- }
136
- if (atViewsSrcProps.join(",") === sortedSrcProps.join(",")) {
146
+ for (const atViewsDoc of atViewsDocs) {
147
+ const { srcProps: atViewSrcProps } = atViewsDoc.data();
148
+ const atViewPath = atViewsDoc.ref.path;
149
+ const defSortedSrcProps = defSrcProps.sort();
150
+ if (atViewSrcProps.join(",") === defSortedSrcProps.join(",")) {
137
151
  continue;
138
152
  }
139
- await index_1.db.doc(srcAtViewsPath).update({ srcProps: sortedSrcProps });
153
+ await index_1.db.doc(atViewPath).update({ srcProps: defSortedSrcProps });
140
154
  }
141
155
  }
156
+ async function syncCreateToDstPaths() {
157
+ const viewLogicResultDocs = [];
158
+ const logicResult = {
159
+ name: `${logicName} ViewLogic`,
160
+ status: "finished",
161
+ documents: viewLogicResultDocs,
162
+ };
163
+ const srcParentPath = (0, paths_1.getParentPath)(srcPath);
164
+ const collectionRef = index_1.db.collection("@syncCreateViews")
165
+ .where("srcPath", "==", srcParentPath);
166
+ const syncCreateViewSnapshot = await collectionRef.get();
167
+ const syncCreateViewDocs = syncCreateViewSnapshot.docs;
168
+ const docId = srcPath.split("/").pop();
169
+ if (!docId) {
170
+ console.error("docId could not be determined from srcPath", srcPath);
171
+ return {
172
+ name: `${logicName} ViewLogic`,
173
+ status: "error",
174
+ message: "docId could not be determined from srcPath",
175
+ documents: [],
176
+ };
177
+ }
178
+ for (const syncCreateViewDoc of syncCreateViewDocs) {
179
+ const syncCreateViewData = syncCreateViewDoc.data();
180
+ const { dstPath: viewBaseDstPath } = syncCreateViewData;
181
+ const { destProp: viewDestProp } = (0, paths_1.getDestPropAndDestPropId)(viewBaseDstPath);
182
+ const viewDstPath = viewDestProp ? `${viewBaseDstPath}[${docId}]` : `${viewBaseDstPath}/${docId}`;
183
+ viewLogicResultDocs.push({
184
+ action: "create",
185
+ dstPath: viewDstPath,
186
+ doc: srcDoc,
187
+ }, ...createLogicDocsWhenViewIsCreated(srcPath, viewDstPath));
188
+ }
189
+ return logicResult;
190
+ }
191
+ if (srcAction === "create" && syncCreate) {
192
+ return syncCreateToDstPaths();
193
+ }
142
194
  const modifiedFields = [
143
- ...Object.keys(doc || {}),
144
- ...Object.keys(instructions || {}),
195
+ ...Object.keys(srcDoc || {}),
196
+ ...Object.keys(srcInstructions || {}),
145
197
  ];
146
198
  let query = index_1.db.doc(srcPath)
147
199
  .collection("@views")
148
- .where("destEntity", "==", destEntity);
149
- if (action === "delete") {
200
+ .where("destEntity", "==", defDestEntity);
201
+ if (srcAction === "delete") {
150
202
  console.debug("action === delete");
151
203
  }
152
204
  else {
153
205
  query = query.where("srcProps", "array-contains-any", modifiedFields);
154
206
  }
155
- if (destProp) {
156
- query = query.where("destProp", "==", destProp.name);
207
+ if (defDestProp) {
208
+ query = query.where("destProp", "==", defDestProp.name);
157
209
  }
158
- const viewDstPathDocs = (await query.get()).docs;
210
+ const atViewsDocs = (await query.get()).docs;
159
211
  await syncAtViewsSrcPropsIfDifferentFromViewDefinition();
160
- if (action === "delete") {
161
- return syncDeleteToViewDstPaths();
212
+ if (srcAction === "delete") {
213
+ return syncDeleteToViewsDstPath();
162
214
  }
163
215
  else {
164
- return syncMergeToDestPaths();
216
+ return syncMergeToViewsDstPath();
165
217
  }
166
218
  };
219
+ function createLogicDocsWhenViewIsDeleted(srcPath, viewDstPath) {
220
+ const { destProp: viewDestProp, destPropId: viewDestPropId, isArrayMap: viewIsArrayMap, basePath: viewBasePath, } = (0, paths_1.getDestPropAndDestPropId)(viewDstPath);
221
+ const srcAtViewsPath = formAtViewsPath(viewDstPath, srcPath);
222
+ const logicResultDocs = [];
223
+ logicResultDocs.push({
224
+ action: "delete",
225
+ dstPath: srcAtViewsPath,
226
+ });
227
+ if (viewDestProp && viewIsArrayMap) {
228
+ logicResultDocs.push({
229
+ action: "merge",
230
+ dstPath: viewBasePath,
231
+ instructions: {
232
+ [`@${viewDestProp}`]: `arr-(${viewDestPropId})`,
233
+ },
234
+ });
235
+ }
236
+ return logicResultDocs;
237
+ }
167
238
  const dstToSrcLogicFn = async (logicResultDoc) => {
168
239
  const logicResult = {
169
240
  name: `${logicName} Dst-to-Src`,
170
241
  status: "finished",
171
242
  documents: [],
172
243
  };
173
- const { dstPath, action, doc, } = logicResultDoc;
174
- const srcDocId = doc === null || doc === void 0 ? void 0 : doc["@id"];
244
+ const { dstPath: viewDstPath, action: viewAction, doc: viewDoc, } = logicResultDoc;
245
+ const srcDocId = viewDoc === null || viewDoc === void 0 ? void 0 : viewDoc["@id"];
175
246
  if (!srcDocId) {
176
247
  console.error("Document does not have an @id attribute");
177
248
  logicResult.status = "error";
@@ -179,11 +250,11 @@ function createViewLogicFn(viewDefinition) {
179
250
  return logicResult;
180
251
  }
181
252
  function formSrcPath() {
182
- const srcDocPath = index_1.docPaths[srcEntity];
253
+ const srcDocPath = index_1.docPaths[defSrcEntity];
183
254
  let srcPath = srcDocPath.split("/").slice(0, -1).join("/") + "/" + srcDocId;
184
- const destDocPath = index_1.docPaths[destEntity];
185
- const destDocPathRegex = index_1.docPathsRegex[destEntity];
186
- const destDocPathMatches = dstPath.split("#")[0].match(destDocPathRegex);
255
+ const destDocPath = index_1.docPaths[defDestEntity];
256
+ const destDocPathRegex = index_1.docPathsRegex[defDestEntity];
257
+ const destDocPathMatches = viewDstPath.split("#")[0].match(destDocPathRegex);
187
258
  // let's create a map of the placeholders with their matching values from dstPath
188
259
  const dstPathKeyValuesMap = {};
189
260
  if (destDocPathMatches) {
@@ -199,7 +270,7 @@ function createViewLogicFn(viewDefinition) {
199
270
  if (srcDocPathKeys) {
200
271
  for (const srcDocPathKey of srcDocPathKeys) {
201
272
  const key = srcDocPathKey.replace(/[{}]/g, "");
202
- const value = (doc === null || doc === void 0 ? void 0 : doc[key]) || dstPathKeyValuesMap[key];
273
+ const value = (viewDoc === null || viewDoc === void 0 ? void 0 : viewDoc[key]) || dstPathKeyValuesMap[key];
203
274
  if (value) {
204
275
  srcPath = srcPath.replace(srcDocPathKey, value);
205
276
  }
@@ -207,6 +278,34 @@ function createViewLogicFn(viewDefinition) {
207
278
  }
208
279
  return srcPath;
209
280
  }
281
+ async function rememberForSyncCreate() {
282
+ const srcParentPath = (0, paths_1.getParentPath)(srcPath);
283
+ const dstParentPath = (0, paths_1.getParentPath)(viewDstPath);
284
+ const dstParentPathParts = dstParentPath.split(/[/#]/).filter(Boolean);
285
+ const isDstParentPathPartsEven = dstParentPathParts.length % 2 === 0;
286
+ if (isDstParentPathPartsEven) {
287
+ console.error(`invalid syncCreate dstPath, ${viewDstPath}`);
288
+ return;
289
+ }
290
+ const docId = formViewDocId(dstParentPath);
291
+ const syncCreateDocPath = `@syncCreateViews/${docId}`;
292
+ const isAlreadyCreated = await paths_1._mockable.doesPathExists(syncCreateDocPath);
293
+ if (!isAlreadyCreated) {
294
+ logicResult.documents.push({
295
+ action: "create",
296
+ dstPath: syncCreateDocPath,
297
+ doc: {
298
+ destEntity: defDestEntity,
299
+ dstPath: dstParentPath,
300
+ srcPath: srcParentPath,
301
+ },
302
+ });
303
+ }
304
+ else {
305
+ console.info(`${syncCreateDocPath} already exists — skipping creation.`);
306
+ }
307
+ return;
308
+ }
210
309
  const srcPath = formSrcPath();
211
310
  if (srcPath.includes("{")) {
212
311
  console.error("srcPath should not have a placeholder");
@@ -214,44 +313,13 @@ function createViewLogicFn(viewDefinition) {
214
313
  logicResult.message = "srcPath should not have a placeholder";
215
314
  return logicResult;
216
315
  }
217
- const srcAtViewsPath = formAtViewsPath(dstPath, srcPath);
218
- const { destProp, destPropId } = (0, paths_1.getDestPropAndDestPropId)(dstPath);
219
- const isArrayMap = !!destPropId;
220
- if (action === "delete") {
221
- logicResult.documents.push({
222
- action: "delete",
223
- dstPath: srcAtViewsPath,
224
- skipRunViewLogics: true,
225
- });
226
- if (destProp && isArrayMap) {
227
- const dstBasePath = dstPath.split("#")[0];
228
- logicResult.documents.push({
229
- action: "merge",
230
- dstPath: dstBasePath,
231
- instructions: {
232
- [`@${destProp}`]: `arr-(${srcDocId})`,
233
- },
234
- skipRunViewLogics: true,
235
- });
236
- }
316
+ if (viewAction === "delete") {
317
+ logicResult.documents.push(...createLogicDocsWhenViewIsDeleted(srcPath, viewDstPath));
237
318
  }
238
319
  else {
239
- logicResult.documents.push({
240
- action: "create",
241
- dstPath: srcAtViewsPath,
242
- doc: Object.assign({ path: logicResultDoc.dstPath, srcProps: srcProps.sort(), destEntity }, (destProp ? { destProp } : {})),
243
- skipRunViewLogics: true,
244
- });
245
- if (destProp && isArrayMap) {
246
- const dstBasePath = dstPath.split("#")[0];
247
- logicResult.documents.push({
248
- action: "merge",
249
- dstPath: dstBasePath,
250
- instructions: {
251
- [`@${destProp}`]: `arr+(${srcDocId})`,
252
- },
253
- skipRunViewLogics: true,
254
- });
320
+ logicResult.documents.push(...createLogicDocsWhenViewIsCreated(srcPath, viewDstPath));
321
+ if (syncCreate) {
322
+ await rememberForSyncCreate();
255
323
  }
256
324
  }
257
325
  return logicResult;
@@ -1 +1 @@
1
- {"version":3,"file":"view-logics.js","sourceRoot":"","sources":["../../src/logics/view-logics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-logics.js","sourceRoot":"","sources":["../../src/logics/view-logics.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,11 @@ export declare enum Entity {
11
11
  Topic = "topic",
12
12
  Order = "order",
13
13
  MenuItem = "menuItem",
14
+ OrderMenuItem = "orderMenuItem",
14
15
  PrepArea = "prepArea",
15
- PrepAreaMenuItem = "prepAreaMenuItem"
16
+ PrepAreaMenuItem = "prepAreaMenuItem",
17
+ RecipeIngredient = "recipeIngredient",
18
+ MenuItemIngredient = "menuItemIngredient"
16
19
  }
17
20
  export declare const dbStructure: {
18
21
  servers: {
@@ -36,12 +39,25 @@ export declare const dbStructure: {
36
39
  };
37
40
  topics: {
38
41
  topic: {
42
+ ingredients: {
43
+ recipeIngredient: {};
44
+ };
45
+ menuItems: {
46
+ menuItem: {
47
+ recipe: string;
48
+ ingredients: {
49
+ menuItemIngredient: {
50
+ [x: string]: {};
51
+ };
52
+ };
53
+ };
54
+ };
39
55
  createdBy: string;
40
56
  orders: {
41
57
  order: {
42
58
  createdBy: string;
43
59
  menus: {
44
- menuItem: {
60
+ orderMenuItem: {
45
61
  createdBy: string;
46
62
  };
47
63
  };
@@ -18,10 +18,13 @@ var Entity;
18
18
  Entity["Topic"] = "topic";
19
19
  Entity["Order"] = "order";
20
20
  Entity["MenuItem"] = "menuItem";
21
+ Entity["OrderMenuItem"] = "orderMenuItem";
21
22
  Entity["PrepArea"] = "prepArea";
22
23
  Entity["PrepAreaMenuItem"] = "prepAreaMenuItem";
24
+ Entity["RecipeIngredient"] = "recipeIngredient";
25
+ Entity["MenuItemIngredient"] = "menuItemIngredient";
23
26
  })(Entity = exports.Entity || (exports.Entity = {}));
24
- // Map your custom entities to dbStructure below.
27
+ // Map your custom ent ities to dbStructure below.
25
28
  // Do not remove users and [Entity.User]
26
29
  // by default, view matches the id attribute of the view so make the sure that a view has an id
27
30
  exports.dbStructure = {
@@ -46,12 +49,25 @@ exports.dbStructure = {
46
49
  },
47
50
  topics: {
48
51
  [Entity.Topic]: {
52
+ ingredients: {
53
+ [Entity.RecipeIngredient]: {},
54
+ },
55
+ menuItems: {
56
+ [Entity.MenuItem]: {
57
+ recipe: (0, db_structure_1.view)(Entity.Topic, []),
58
+ ingredients: {
59
+ [Entity.MenuItemIngredient]: {
60
+ [(0, db_structure_1.view)(Entity.RecipeIngredient, [], { syncCreate: true })]: {},
61
+ },
62
+ },
63
+ },
64
+ },
49
65
  createdBy: (0, db_structure_1.view)(Entity.User, ["name", "email"]),
50
66
  orders: {
51
67
  [Entity.Order]: {
52
68
  createdBy: (0, db_structure_1.view)(Entity.User, ["name", "email"]),
53
69
  menus: {
54
- [Entity.MenuItem]: {
70
+ [Entity.OrderMenuItem]: {
55
71
  createdBy: (0, db_structure_1.view)(Entity.User, ["name", "email"]),
56
72
  },
57
73
  },
@@ -1 +1 @@
1
- {"version":3,"file":"db-structure.js","sourceRoot":"","sources":["../../src/sample-custom/db-structure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-structure.js","sourceRoot":"","sources":["../../src/sample-custom/db-structure.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC5E,wDAA2C;AAE3C,IAAY,MAmBX;AAnBD,WAAY,MAAM;IACd,uBAAa,CAAA;IACb,iCAAiC;IACjC,uBAAa,CAAA;IACb,2BAAiB,CAAA;IACjB,uBAAa,CAAA;IACb,2BAAiB,CAAA;IACjB,6BAAmB,CAAA;IACnB,2BAAiB,CAAA;IACjB,uBAAa,CAAA;IACb,6BAAmB,CAAA;IACnB,yBAAe,CAAA;IACf,yBAAe,CAAA;IACf,+BAAqB,CAAA;IACrB,yCAA+B,CAAA;IAC/B,+BAAqB,CAAA;IACrB,+CAAqC,CAAA;IACrC,+CAAqC,CAAA;IACrC,mDAAyC,CAAA;AAC7C,CAAC,EAnBW,MAAM,GAAN,cAAM,KAAN,cAAM,QAmBjB;AAED,mDAAmD;AACnD,wCAAwC;AACxC,+FAA+F;AAElF,QAAA,WAAW,GAAG;IACzB,OAAO,EAAE;QACP,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YACf,SAAS,EAAE,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,QAAQ,EAAE;gBACR,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;oBAChB,WAAW,EAAE,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBACjD,SAAS,EAAE;wBACT,CAAC,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;qBAClC;iBACF;aACF;YACD,OAAO,EAAE;gBACP,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;oBACf,CAAC,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;iBAClC;aACF;YACD,SAAS,EAAE,CAAC,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;SAClD;KACF;IACD,MAAM,EAAE;QACN,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACd,WAAW,EAAE;gBACX,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE;aAC9B;YACD,SAAS,EAAE;gBACT,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;oBACjB,MAAM,EAAE,IAAA,mBAAI,EAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;oBAC9B,WAAW,EAAE;wBACX,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE;4BAC3B,CAAC,IAAA,mBAAI,EAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC,EAAE,EAAE;yBAC5D;qBACF;iBACF;aACF;YACD,SAAS,EAAE,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,EAAE;gBACN,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBACd,SAAS,EAAE,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC/C,KAAK,EAAE;wBACL,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;4BACtB,SAAS,EAAE,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;yBAChD;qBACF;iBACF;aACF;YACD,SAAS,EAAE;gBACT,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;oBACjB,WAAW,EAAE,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBACjD,OAAO,EAAE;wBACP,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;4BACzB,SAAS,EAAE,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;yBAChD;qBACF;iBACF;aACF;SACF;KACF;IACD,KAAK,EAAE;QACL,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACb,KAAK,EAAE;gBACL,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBACb,SAAS,EAAE,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iBAChD;aACF;YACD,OAAO,EAAE;gBACP,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;oBACf,CAAC,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC1C,KAAK,EAAE;wBACL,IAAI,EAAE,EAAE;qBACT;iBACF;aACF;YACD,KAAK,EAAE;gBACL,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBACb,QAAQ,EAAE;wBACR,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE;qBACrB;iBACF;aACF;SACF;KACF;CACF,CAAC"}
@@ -96,6 +96,7 @@ describe("distributeDoc", () => {
96
96
  dbSpy.mockRestore();
97
97
  queueInstructionsSpy.mockRestore();
98
98
  queueRunViewLogicsSpy.mockRestore();
99
+ transactionSetMock.mockRestore();
99
100
  });
100
101
  it("should create a document to dstPath", async () => {
101
102
  const logicResultDoc = {
@@ -147,34 +148,6 @@ describe("distributeDoc", () => {
147
148
  const dstDocRef = index_1.db.doc(logicResultDoc.dstPath);
148
149
  expect(dstDocRef.set).toHaveBeenCalledWith(expectedData, { merge: true });
149
150
  });
150
- it("should process instructions if using transaction", async () => {
151
- const logicResultDoc = {
152
- action: "merge",
153
- priority: "normal",
154
- doc: { name: "test-doc-name-updated" },
155
- instructions: {
156
- "count": "++",
157
- "score": "+5",
158
- "minusCount": "--",
159
- "minusScore": "-3",
160
- },
161
- dstPath: "/users/test-user-id/documents/test-doc-id",
162
- };
163
- const expectedData = Object.assign(Object.assign({}, logicResultDoc.doc), { "@id": "test-doc-id" });
164
- await indexUtils.distributeDoc(logicResultDoc, undefined, transactionMock);
165
- expect(admin.firestore().doc).toHaveBeenCalledTimes(1);
166
- expect(admin.firestore().doc).toHaveBeenCalledWith("/users/test-user-id/documents/test-doc-id");
167
- expect(queueInstructionsSpy).not.toHaveBeenCalled();
168
- const expectedInstructions = {
169
- "count": admin.firestore.FieldValue.increment(1),
170
- "score": admin.firestore.FieldValue.increment(5),
171
- "minusCount": admin.firestore.FieldValue.increment(-1),
172
- "minusScore": admin.firestore.FieldValue.increment(-3),
173
- };
174
- const dstDocRef = index_1.db.doc(logicResultDoc.dstPath);
175
- expect(transactionSetMock).toHaveBeenNthCalledWith(1, dstDocRef, expectedInstructions, { merge: true });
176
- expect(transactionSetMock).toHaveBeenNthCalledWith(2, dstDocRef, expectedData, { merge: true });
177
- });
178
151
  it("should add parsed instructions to destPropId field if has destPropId", async () => {
179
152
  transactionSetMock.mockReset();
180
153
  const logicResultDoc = {
@@ -252,6 +225,51 @@ describe("distributeDoc", () => {
252
225
  expect(queueRunViewLogicsSpy).toHaveBeenCalledTimes(0);
253
226
  queueSubmitFormSpy.mockRestore();
254
227
  });
228
+ describe("transactional", () => {
229
+ it("should process instructions if using transaction", async () => {
230
+ const logicResultDoc = {
231
+ action: "merge",
232
+ priority: "normal",
233
+ doc: { name: "test-doc-name-updated" },
234
+ instructions: {
235
+ "count": "++",
236
+ "score": "+5",
237
+ "minusCount": "--",
238
+ "minusScore": "-3",
239
+ },
240
+ dstPath: "/users/test-user-id/documents/test-doc-id",
241
+ };
242
+ const expectedData = Object.assign(Object.assign({}, logicResultDoc.doc), { "@id": "test-doc-id" });
243
+ await indexUtils.distributeDoc(logicResultDoc, undefined, transactionMock);
244
+ expect(admin.firestore().doc).toHaveBeenCalledTimes(1);
245
+ expect(admin.firestore().doc).toHaveBeenCalledWith("/users/test-user-id/documents/test-doc-id");
246
+ expect(queueInstructionsSpy).not.toHaveBeenCalled();
247
+ const expectedInstructions = {
248
+ "count": admin.firestore.FieldValue.increment(1),
249
+ "score": admin.firestore.FieldValue.increment(5),
250
+ "minusCount": admin.firestore.FieldValue.increment(-1),
251
+ "minusScore": admin.firestore.FieldValue.increment(-3),
252
+ };
253
+ const dstDocRef = index_1.db.doc(logicResultDoc.dstPath);
254
+ expect(transactionSetMock).toHaveBeenNthCalledWith(1, dstDocRef, expectedInstructions, { merge: true });
255
+ expect(transactionSetMock).toHaveBeenNthCalledWith(2, dstDocRef, expectedData, { merge: true });
256
+ });
257
+ it("should not allow submit-form logicResultDoc in transaction", async () => {
258
+ const logicResultDoc = {
259
+ action: "submit-form",
260
+ priority: "normal",
261
+ doc: {
262
+ "@actionType": "merge",
263
+ "name": "test-doc-name-updated",
264
+ },
265
+ dstPath: "/users/test-user-id/documents/test-doc-id",
266
+ };
267
+ const errorSpy = jest.spyOn(console, "error").mockImplementation();
268
+ await indexUtils.distributeDoc(logicResultDoc, undefined, transactionMock);
269
+ expect(errorSpy).toHaveBeenCalledWith("Submit-form is not supported in transactional logic result");
270
+ expect(transactionSetMock).toHaveBeenCalledTimes(0);
271
+ });
272
+ });
255
273
  describe("batched", () => {
256
274
  it("should create a document to dstPath", async () => {
257
275
  const batchSetSpy = jest.spyOn(batch, "set").mockResolvedValue(undefined);