@webda/gcp 2.0.0-beta.3 → 2.0.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.
@@ -1,35 +1,21 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.FireStore = exports.FireStoreParameters = void 0;
13
- const firestore_1 = require("@google-cloud/firestore");
14
- const core_1 = require("@webda/core");
1
+ import { FieldValue, Firestore, Timestamp } from "@google-cloud/firestore";
2
+ import { CoreModel, Store, StoreNotFoundError, StoreParameters, UpdateConditionFailError, WebdaQL, } from "@webda/core";
15
3
  /**
16
4
  * Firebase parameters
17
5
  */
18
- class FireStoreParameters extends core_1.StoreParameters {
6
+ export class FireStoreParameters extends StoreParameters {
19
7
  constructor(params, service) {
20
- var _a;
21
8
  super(params, service);
22
9
  // Default to empty compoundIndexes
23
- (_a = this.compoundIndexes) !== null && _a !== void 0 ? _a : (this.compoundIndexes = []);
10
+ this.compoundIndexes ?? (this.compoundIndexes = []);
24
11
  }
25
12
  }
26
- exports.FireStoreParameters = FireStoreParameters;
27
13
  /**
28
14
  * Implement Firebase abstraction within Webda
29
15
  *
30
16
  * @WebdaModda GoogleCloudFireStore
31
17
  */
32
- class FireStore extends core_1.Store {
18
+ export default class FireStore extends Store {
33
19
  /**
34
20
  * @override
35
21
  */
@@ -39,28 +25,22 @@ class FireStore extends core_1.Store {
39
25
  /**
40
26
  * @override
41
27
  */
42
- init() {
43
- const _super = Object.create(null, {
44
- init: { get: () => super.init }
45
- });
46
- return __awaiter(this, void 0, void 0, function* () {
47
- yield _super.init.call(this);
48
- this.firestore = new firestore_1.Firestore();
49
- this.firestore.settings({ ignoreUndefinedProperties: true });
50
- this.compoundIndexes = {};
51
- this.parameters.compoundIndexes.forEach(a => {
52
- const key = Object.keys(a).join("/");
53
- // Should contain the array of accessible order
54
- this.compoundIndexes[key] = {};
55
- Object.keys(a).forEach(field => {
56
- var _a;
57
- var _b;
58
- (_a = (_b = this.compoundIndexes[key])[field]) !== null && _a !== void 0 ? _a : (_b[field] = new Set());
59
- this.compoundIndexes[key][field].add(a[field]);
60
- });
28
+ async init() {
29
+ await super.init();
30
+ this.firestore = new Firestore();
31
+ this.firestore.settings({ ignoreUndefinedProperties: true });
32
+ this.compoundIndexes = {};
33
+ this.parameters.compoundIndexes.forEach(a => {
34
+ const key = Object.keys(a).join("/");
35
+ // Should contain the array of accessible order
36
+ this.compoundIndexes[key] = {};
37
+ Object.keys(a).forEach(field => {
38
+ var _a;
39
+ (_a = this.compoundIndexes[key])[field] ?? (_a[field] = new Set());
40
+ this.compoundIndexes[key][field].add(a[field]);
61
41
  });
62
- return this;
63
42
  });
43
+ return this;
64
44
  }
65
45
  /**
66
46
  * Get Document Reference
@@ -76,91 +56,89 @@ class FireStore extends core_1.Store {
76
56
  *
77
57
  * Return all for now
78
58
  */
79
- find(parsedQuery) {
80
- return __awaiter(this, void 0, void 0, function* () {
81
- let offset = parseInt(parsedQuery.continuationToken || "0");
82
- let query = this.firestore.collection(this.parameters.collection);
83
- if (offset) {
84
- query = query.offset(offset);
85
- }
86
- let filter = new core_1.WebdaQL.AndExpression([]);
87
- let rangeAttribute;
88
- let toProcess;
89
- if (!(parsedQuery.filter instanceof core_1.WebdaQL.AndExpression)) {
90
- toProcess = new core_1.WebdaQL.AndExpression([parsedQuery.filter]);
59
+ async find(parsedQuery) {
60
+ let offset = parseInt(parsedQuery.continuationToken || "0");
61
+ let query = this.firestore.collection(this.parameters.collection);
62
+ if (offset) {
63
+ query = query.offset(offset);
64
+ }
65
+ let filter = new WebdaQL.AndExpression([]);
66
+ let rangeAttribute;
67
+ let toProcess;
68
+ if (!(parsedQuery.filter instanceof WebdaQL.AndExpression)) {
69
+ toProcess = new WebdaQL.AndExpression([parsedQuery.filter]);
70
+ }
71
+ else {
72
+ toProcess = parsedQuery.filter;
73
+ }
74
+ const queryAttributes = new Set();
75
+ let count = 0;
76
+ let hasIn = false;
77
+ toProcess.children.forEach((child) => {
78
+ if (!(child instanceof WebdaQL.ComparisonExpression) || count) {
79
+ // Do not manage OR yet
80
+ filter.children.push(child);
81
+ return;
91
82
  }
92
- else {
93
- toProcess = parsedQuery.filter;
83
+ if (child.operator === "LIKE") {
84
+ this.log("WARN", "Firebase do not natively have 'LIKE'");
85
+ // LIKE is not managed by Firestore
86
+ filter.children.push(child);
87
+ return;
94
88
  }
95
- const queryAttributes = new Set();
96
- let count = 0;
97
- let hasIn = false;
98
- toProcess.children.forEach((child) => {
99
- if (!(child instanceof core_1.WebdaQL.ComparisonExpression) || count) {
100
- // Do not manage OR yet
101
- filter.children.push(child);
102
- return;
103
- }
104
- if (child.operator === "LIKE") {
105
- this.log("WARN", "Firebase do not natively have 'LIKE'");
106
- // LIKE is not managed by Firestore
107
- filter.children.push(child);
108
- return;
89
+ let operator;
90
+ let attribute = child.attribute.join(".");
91
+ queryAttributes.add(attribute);
92
+ // Translate operators
93
+ if (["=", "IN"].includes(child.operator)) {
94
+ // = is permitted on every fields
95
+ // if rangeQuery then need to check indexes
96
+ if (child.operator === "=") {
97
+ operator = "==";
109
98
  }
110
- let operator;
111
- let attribute = child.attribute.join(".");
112
- queryAttributes.add(attribute);
113
- // Translate operators
114
- if (["=", "IN"].includes(child.operator)) {
115
- // = is permitted on every fields
116
- // if rangeQuery then need to check indexes
117
- if (child.operator === "=") {
118
- operator = "==";
99
+ else if (child.operator === "IN") {
100
+ operator = "in";
101
+ if (child.value.length > 10) {
102
+ this.log("WARN", "Firebase cannot have more than 10 values for 'in'");
103
+ filter.children.push(child);
104
+ return;
119
105
  }
120
- else if (child.operator === "IN") {
121
- operator = "in";
122
- if (child.value.length > 10) {
123
- this.log("WARN", "Firebase cannot have more than 10 values for 'in'");
124
- filter.children.push(child);
125
- return;
126
- }
127
- if (hasIn) {
128
- this.log("WARN", "Firebase cannot have two 'in' clause");
129
- filter.children.push(child);
130
- return;
131
- }
132
- hasIn = true;
106
+ if (hasIn) {
107
+ this.log("WARN", "Firebase cannot have two 'in' clause");
108
+ filter.children.push(child);
109
+ return;
133
110
  }
111
+ hasIn = true;
112
+ }
113
+ }
114
+ else {
115
+ // Requires compoundIndex
116
+ if (queryAttributes.size > 1 && !this.compoundIndexes[[...queryAttributes.values()].sort().join("/")]) {
117
+ this.log("WARN", "Compound index not defined");
118
+ filter.children.push(child);
119
+ return;
134
120
  }
135
- else {
136
- // Requires compoundIndex
137
- if (queryAttributes.size > 1 && !this.compoundIndexes[[...queryAttributes.values()].sort().join("/")]) {
138
- this.log("WARN", "Compound index not defined");
121
+ if (child.operator !== "!=") {
122
+ // Check compoundIndex exist
123
+ rangeAttribute ?? (rangeAttribute = attribute);
124
+ // Range need to apply on only one attribute
125
+ if (rangeAttribute !== attribute) {
139
126
  filter.children.push(child);
140
127
  return;
141
128
  }
142
- if (child.operator !== "!=") {
143
- // Check compoundIndex exist
144
- rangeAttribute !== null && rangeAttribute !== void 0 ? rangeAttribute : (rangeAttribute = attribute);
145
- // Range need to apply on only one attribute
146
- if (rangeAttribute !== attribute) {
147
- filter.children.push(child);
148
- return;
149
- }
150
- }
151
- operator = child.operator;
152
129
  }
153
- query = query.where(attribute, operator, child.value);
154
- });
155
- // OrderBy have quite some complexity with FireStore
156
- query = this.handleOrderBy(query, parsedQuery.orderBy, rangeAttribute);
157
- const res = yield query.limit(parsedQuery.limit || 0).get();
158
- return {
159
- results: res.docs.map(d => this.initModel(d.data())),
160
- filter: filter.children.length ? filter : true,
161
- continuationToken: res.docs.length >= parsedQuery.limit ? (offset + parsedQuery.limit).toString() : undefined,
162
- };
130
+ operator = child.operator;
131
+ }
132
+ query = query.where(attribute, operator, child.value);
163
133
  });
134
+ // OrderBy have quite some complexity with FireStore
135
+ query = this.handleOrderBy(query, parsedQuery.orderBy, rangeAttribute);
136
+ const res = await query.limit(parsedQuery.limit || 0).get();
137
+ return {
138
+ results: res.docs.map(d => this.initModel(d.data())),
139
+ filter: filter.children.length ? filter : true,
140
+ continuationToken: res.docs.length >= parsedQuery.limit ? (offset + parsedQuery.limit).toString() : undefined,
141
+ };
164
142
  }
165
143
  /**
166
144
  * Manage OrderBy complex condition on Firebase
@@ -214,214 +192,187 @@ class FireStore extends core_1.Store {
214
192
  /**
215
193
  * @override
216
194
  */
217
- exists(uid) {
218
- return __awaiter(this, void 0, void 0, function* () {
219
- return (yield this.getDocumentRef(uid).get()).exists;
220
- });
195
+ async exists(uid) {
196
+ return (await this.getDocumentRef(uid).get()).exists;
221
197
  }
222
198
  /**
223
199
  * @override
224
200
  */
225
- _delete(uid, writeCondition, itemWriteConditionField) {
226
- return __awaiter(this, void 0, void 0, function* () {
227
- yield this.firestore.runTransaction((t) => __awaiter(this, void 0, void 0, function* () {
228
- const docRef = this.getDocumentRef(uid);
229
- const doc = (yield t.get(docRef)).data();
230
- if (writeCondition && doc[itemWriteConditionField] !== writeCondition) {
231
- throw new core_1.UpdateConditionFailError(uid, itemWriteConditionField, writeCondition);
232
- }
233
- t.delete(docRef);
234
- }));
201
+ async _delete(uid, writeCondition, itemWriteConditionField) {
202
+ await this.firestore.runTransaction(async (t) => {
203
+ const docRef = this.getDocumentRef(uid);
204
+ const doc = (await t.get(docRef)).data();
205
+ if (writeCondition && doc[itemWriteConditionField] !== writeCondition) {
206
+ throw new UpdateConditionFailError(uid, itemWriteConditionField, writeCondition);
207
+ }
208
+ t.delete(docRef);
235
209
  });
236
210
  }
237
211
  /**
238
212
  * @override
239
213
  */
240
- _get(uid, raiseIfNotFound) {
241
- return __awaiter(this, void 0, void 0, function* () {
242
- let doc = (yield this.getDocumentRef(uid).get()).data();
243
- if (!doc) {
244
- if (raiseIfNotFound) {
245
- throw new core_1.StoreNotFoundError(uid, this.getName());
246
- }
247
- return undefined;
214
+ async _get(uid, raiseIfNotFound) {
215
+ let doc = (await this.getDocumentRef(uid).get()).data();
216
+ if (!doc) {
217
+ if (raiseIfNotFound) {
218
+ throw new StoreNotFoundError(uid, this.getName());
248
219
  }
249
- return this.initModel(doc);
250
- });
220
+ return undefined;
221
+ }
222
+ return this.initModel(doc);
251
223
  }
252
224
  /**
253
225
  * @override
254
226
  */
255
- getAll(list) {
256
- return __awaiter(this, void 0, void 0, function* () {
257
- let res = [];
258
- if (list) {
259
- res = (yield this.firestore.collection(this.parameters.collection).where("uuid", "in", list).get()).docs;
260
- }
261
- else {
262
- res = yield this.firestore.collection(this.parameters.collection).listDocuments();
263
- }
264
- return res.map(this.initModel, this);
265
- });
227
+ async getAll(list) {
228
+ let res = [];
229
+ if (list) {
230
+ res = (await this.firestore.collection(this.parameters.collection).where("uuid", "in", list).get()).docs;
231
+ }
232
+ else {
233
+ res = await this.firestore.collection(this.parameters.collection).listDocuments();
234
+ }
235
+ return res.map(this.initModel, this);
266
236
  }
267
237
  /**
268
238
  * @override
269
239
  */
270
- _update(object, uid, itemWriteCondition, itemWriteConditionField) {
271
- return __awaiter(this, void 0, void 0, function* () {
272
- yield this._setDocument(false, object, uid, itemWriteCondition, itemWriteConditionField);
273
- });
240
+ async _update(object, uid, itemWriteCondition, itemWriteConditionField) {
241
+ await this._setDocument(false, object, uid, itemWriteCondition, itemWriteConditionField);
274
242
  }
275
243
  checkCondition(uid, data, field, condition) {
276
244
  if (condition) {
277
- let values = [data[field], condition].map(i => (i instanceof firestore_1.Timestamp ? i.toMillis() : i));
245
+ let values = [data[field], condition].map(i => (i instanceof Timestamp ? i.toMillis() : i));
278
246
  if (values[0] !== values[1]) {
279
- throw new core_1.UpdateConditionFailError(uid, field, condition);
247
+ throw new UpdateConditionFailError(uid, field, condition);
280
248
  }
281
249
  }
282
250
  }
283
251
  /***
284
252
  * Internal function that implement both update and patch
285
253
  */
286
- _setDocument(merge, object, uid, itemWriteCondition, itemWriteConditionField) {
287
- return __awaiter(this, void 0, void 0, function* () {
288
- let update = object;
289
- if (object instanceof core_1.CoreModel) {
290
- update = object.toStoredJSON();
254
+ async _setDocument(merge, object, uid, itemWriteCondition, itemWriteConditionField) {
255
+ let update = object;
256
+ if (object instanceof CoreModel) {
257
+ update = object.toStoredJSON();
258
+ }
259
+ await this.firestore.runTransaction(async (t) => {
260
+ const docRef = this.getDocumentRef(uid);
261
+ const doc = await t.get(docRef);
262
+ if (!doc.exists) {
263
+ throw new StoreNotFoundError(uid, this.getName());
291
264
  }
292
- yield this.firestore.runTransaction((t) => __awaiter(this, void 0, void 0, function* () {
293
- const docRef = this.getDocumentRef(uid);
294
- const doc = yield t.get(docRef);
295
- if (!doc.exists) {
296
- throw new core_1.StoreNotFoundError(uid, this.getName());
297
- }
298
- this.checkCondition(uid, doc.data(), itemWriteConditionField, itemWriteCondition);
299
- t.set(docRef, update, {
300
- merge,
301
- });
302
- }));
303
- });
304
- }
305
- /**
306
- * @override
307
- */
308
- _patch(object, uid, itemWriteCondition, itemWriteConditionField) {
309
- return __awaiter(this, void 0, void 0, function* () {
310
- yield this._setDocument(true, object, uid, itemWriteCondition, itemWriteConditionField);
265
+ this.checkCondition(uid, doc.data(), itemWriteConditionField, itemWriteCondition);
266
+ t.set(docRef, update, {
267
+ merge,
268
+ });
311
269
  });
312
270
  }
313
271
  /**
314
272
  * @override
315
273
  */
316
- _removeAttribute(uuid, attribute, itemWriteCondition, itemWriteConditionField) {
317
- return __awaiter(this, void 0, void 0, function* () {
318
- yield this.firestore.runTransaction((t) => __awaiter(this, void 0, void 0, function* () {
319
- const docRef = this.getDocumentRef(uuid);
320
- const doc = yield t.get(docRef);
321
- if (!doc.exists) {
322
- throw new core_1.StoreNotFoundError(uuid, this.getName());
323
- }
324
- this.checkCondition(uuid, doc.data(), itemWriteConditionField, itemWriteCondition);
325
- t.update(docRef, {
326
- [attribute]: firestore_1.FieldValue.delete(),
327
- });
328
- }));
329
- });
274
+ async _patch(object, uid, itemWriteCondition, itemWriteConditionField) {
275
+ await this._setDocument(true, object, uid, itemWriteCondition, itemWriteConditionField);
330
276
  }
331
277
  /**
332
278
  * @override
333
279
  */
334
- _save(object) {
335
- return __awaiter(this, void 0, void 0, function* () {
336
- yield this.getDocumentRef(object.getUuid()).set(object.toStoredJSON());
337
- return object;
280
+ async _removeAttribute(uuid, attribute, itemWriteCondition, itemWriteConditionField) {
281
+ await this.firestore.runTransaction(async (t) => {
282
+ const docRef = this.getDocumentRef(uuid);
283
+ const doc = await t.get(docRef);
284
+ if (!doc.exists) {
285
+ throw new StoreNotFoundError(uuid, this.getName());
286
+ }
287
+ this.checkCondition(uuid, doc.data(), itemWriteConditionField, itemWriteCondition);
288
+ t.update(docRef, {
289
+ [attribute]: FieldValue.delete(),
290
+ });
338
291
  });
339
292
  }
340
293
  /**
341
294
  * @override
342
295
  */
343
- _incrementAttribute(uid, prop, value, updateDate) {
344
- return __awaiter(this, void 0, void 0, function* () {
345
- try {
346
- yield this.getDocumentRef(uid).update({
347
- [prop]: firestore_1.FieldValue.increment(value),
348
- [this._lastUpdateField]: updateDate,
349
- });
350
- }
351
- catch (err) {
352
- if (err.code === 5) {
353
- throw new core_1.StoreNotFoundError(uid, this.getName());
354
- }
355
- throw err;
356
- }
357
- });
296
+ async _save(object) {
297
+ await this.getDocumentRef(object.getUuid()).set(object.toStoredJSON());
298
+ return object;
358
299
  }
359
300
  /**
360
301
  * @override
361
302
  */
362
- _upsertItemToCollection(uid, prop, item, index, itemWriteCondition, itemWriteConditionField, updateDate) {
363
- return __awaiter(this, void 0, void 0, function* () {
364
- if (index !== undefined) {
365
- yield this.firestore.runTransaction((t) => __awaiter(this, void 0, void 0, function* () {
366
- const docRef = this.getDocumentRef(uid);
367
- const doc = yield t.get(docRef);
368
- if (!doc.exists) {
369
- throw new core_1.StoreNotFoundError(uid, this.getName());
370
- }
371
- const data = doc.data();
372
- this.checkCondition(uid, data[prop][index], itemWriteConditionField, itemWriteCondition);
373
- data[prop][index] = item;
374
- t.update(docRef, {
375
- [prop]: data[prop],
376
- [this._lastUpdateField]: updateDate,
377
- });
378
- }));
379
- }
380
- else {
381
- try {
382
- yield this.getDocumentRef(uid).update({
383
- [prop]: firestore_1.FieldValue.arrayUnion(item),
384
- });
385
- }
386
- catch (err) {
387
- if (err.code === 5) {
388
- throw new core_1.StoreNotFoundError(uid, this.getName());
389
- }
390
- throw err;
391
- }
303
+ async _incrementAttribute(uid, prop, value, updateDate) {
304
+ try {
305
+ await this.getDocumentRef(uid).update({
306
+ [prop]: FieldValue.increment(value),
307
+ [this._lastUpdateField]: updateDate,
308
+ });
309
+ }
310
+ catch (err) {
311
+ if (err.code === 5) {
312
+ throw new StoreNotFoundError(uid, this.getName());
392
313
  }
393
- });
314
+ throw err;
315
+ }
394
316
  }
395
317
  /**
396
318
  * @override
397
319
  */
398
- _deleteItemFromCollection(uid, prop, index, itemWriteCondition, itemWriteConditionField, updateDate) {
399
- return __awaiter(this, void 0, void 0, function* () {
400
- yield this.firestore.runTransaction((t) => __awaiter(this, void 0, void 0, function* () {
320
+ async _upsertItemToCollection(uid, prop, item, index, itemWriteCondition, itemWriteConditionField, updateDate) {
321
+ if (index !== undefined) {
322
+ await this.firestore.runTransaction(async (t) => {
401
323
  const docRef = this.getDocumentRef(uid);
402
- const doc = yield t.get(docRef);
324
+ const doc = await t.get(docRef);
403
325
  if (!doc.exists) {
404
- throw new core_1.StoreNotFoundError(uid, this.getName());
326
+ throw new StoreNotFoundError(uid, this.getName());
405
327
  }
406
328
  const data = doc.data();
407
329
  this.checkCondition(uid, data[prop][index], itemWriteConditionField, itemWriteCondition);
408
- // Get item from doc?
330
+ data[prop][index] = item;
409
331
  t.update(docRef, {
410
- [prop]: firestore_1.FieldValue.arrayRemove(data[prop][index]),
332
+ [prop]: data[prop],
411
333
  [this._lastUpdateField]: updateDate,
412
334
  });
413
- }));
414
- });
335
+ });
336
+ }
337
+ else {
338
+ try {
339
+ await this.getDocumentRef(uid).update({
340
+ [prop]: FieldValue.arrayUnion(item),
341
+ });
342
+ }
343
+ catch (err) {
344
+ if (err.code === 5) {
345
+ throw new StoreNotFoundError(uid, this.getName());
346
+ }
347
+ throw err;
348
+ }
349
+ }
415
350
  }
416
351
  /**
417
352
  * @override
418
353
  */
419
- __clean() {
420
- return __awaiter(this, void 0, void 0, function* () {
421
- // Empty on purpose, unit test use custom collection each time
354
+ async _deleteItemFromCollection(uid, prop, index, itemWriteCondition, itemWriteConditionField, updateDate) {
355
+ await this.firestore.runTransaction(async (t) => {
356
+ const docRef = this.getDocumentRef(uid);
357
+ const doc = await t.get(docRef);
358
+ if (!doc.exists) {
359
+ throw new StoreNotFoundError(uid, this.getName());
360
+ }
361
+ const data = doc.data();
362
+ this.checkCondition(uid, data[prop][index], itemWriteConditionField, itemWriteCondition);
363
+ // Get item from doc?
364
+ t.update(docRef, {
365
+ [prop]: FieldValue.arrayRemove(data[prop][index]),
366
+ [this._lastUpdateField]: updateDate,
367
+ });
422
368
  });
423
369
  }
370
+ /**
371
+ * @override
372
+ */
373
+ async __clean() {
374
+ // Empty on purpose, unit test use custom collection each time
375
+ }
424
376
  }
425
- exports.default = FireStore;
426
- exports.FireStore = FireStore;
377
+ export { FireStore };
427
378
  //# sourceMappingURL=firestore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"firestore.js","sourceRoot":"","sources":["../../src/services/firestore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firestore.js","sourceRoot":"","sources":["../../src/services/firestore.ts"],"names":[],"mappings":"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"}