@webda/gcp 2.0.0-beta.1 → 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,27 +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
42
  });
43
+ return this;
63
44
  }
64
45
  /**
65
46
  * Get Document Reference
@@ -75,91 +56,89 @@ class FireStore extends core_1.Store {
75
56
  *
76
57
  * Return all for now
77
58
  */
78
- find(parsedQuery) {
79
- return __awaiter(this, void 0, void 0, function* () {
80
- let offset = parseInt(parsedQuery.continuationToken || "0");
81
- let query = this.firestore.collection(this.parameters.collection);
82
- if (offset) {
83
- query = query.offset(offset);
84
- }
85
- let filter = new core_1.WebdaQL.AndExpression([]);
86
- let rangeAttribute;
87
- let toProcess;
88
- if (!(parsedQuery.filter instanceof core_1.WebdaQL.AndExpression)) {
89
- 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;
90
82
  }
91
- else {
92
- 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;
93
88
  }
94
- const queryAttributes = new Set();
95
- let count = 0;
96
- let hasIn = false;
97
- toProcess.children.forEach((child) => {
98
- if (!(child instanceof core_1.WebdaQL.ComparisonExpression) || count) {
99
- // Do not manage OR yet
100
- filter.children.push(child);
101
- return;
102
- }
103
- if (child.operator === "LIKE") {
104
- this.log("WARN", "Firebase do not natively have 'LIKE'");
105
- // LIKE is not managed by Firestore
106
- filter.children.push(child);
107
- 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 = "==";
108
98
  }
109
- let operator;
110
- let attribute = child.attribute.join(".");
111
- queryAttributes.add(attribute);
112
- // Translate operators
113
- if (["=", "IN"].includes(child.operator)) {
114
- // = is permitted on every fields
115
- // if rangeQuery then need to check indexes
116
- if (child.operator === "=") {
117
- 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;
118
105
  }
119
- else if (child.operator === "IN") {
120
- operator = "in";
121
- if (child.value.length > 10) {
122
- this.log("WARN", "Firebase cannot have more than 10 values for 'in'");
123
- filter.children.push(child);
124
- return;
125
- }
126
- if (hasIn) {
127
- this.log("WARN", "Firebase cannot have two 'in' clause");
128
- filter.children.push(child);
129
- return;
130
- }
131
- hasIn = true;
106
+ if (hasIn) {
107
+ this.log("WARN", "Firebase cannot have two 'in' clause");
108
+ filter.children.push(child);
109
+ return;
132
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;
133
120
  }
134
- else {
135
- // Requires compoundIndex
136
- if (queryAttributes.size > 1 && !this.compoundIndexes[[...queryAttributes.values()].sort().join("/")]) {
137
- 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) {
138
126
  filter.children.push(child);
139
127
  return;
140
128
  }
141
- if (child.operator !== "!=") {
142
- // Check compoundIndex exist
143
- rangeAttribute !== null && rangeAttribute !== void 0 ? rangeAttribute : (rangeAttribute = attribute);
144
- // Range need to apply on only one attribute
145
- if (rangeAttribute !== attribute) {
146
- filter.children.push(child);
147
- return;
148
- }
149
- }
150
- operator = child.operator;
151
129
  }
152
- query = query.where(attribute, operator, child.value);
153
- });
154
- // OrderBy have quite some complexity with FireStore
155
- query = this.handleOrderBy(query, parsedQuery.orderBy, rangeAttribute);
156
- const res = yield query.limit(parsedQuery.limit || 0).get();
157
- return {
158
- results: res.docs.map(d => this.initModel(d.data())),
159
- filter: filter.children.length ? filter : true,
160
- continuationToken: res.docs.length >= parsedQuery.limit ? (offset + parsedQuery.limit).toString() : undefined,
161
- };
130
+ operator = child.operator;
131
+ }
132
+ query = query.where(attribute, operator, child.value);
162
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
+ };
163
142
  }
164
143
  /**
165
144
  * Manage OrderBy complex condition on Firebase
@@ -213,214 +192,187 @@ class FireStore extends core_1.Store {
213
192
  /**
214
193
  * @override
215
194
  */
216
- exists(uid) {
217
- return __awaiter(this, void 0, void 0, function* () {
218
- return (yield this.getDocumentRef(uid).get()).exists;
219
- });
195
+ async exists(uid) {
196
+ return (await this.getDocumentRef(uid).get()).exists;
220
197
  }
221
198
  /**
222
199
  * @override
223
200
  */
224
- _delete(uid, writeCondition, itemWriteConditionField) {
225
- return __awaiter(this, void 0, void 0, function* () {
226
- yield this.firestore.runTransaction((t) => __awaiter(this, void 0, void 0, function* () {
227
- const docRef = this.getDocumentRef(uid);
228
- const doc = (yield t.get(docRef)).data();
229
- if (writeCondition && doc[itemWriteConditionField] !== writeCondition) {
230
- throw new core_1.UpdateConditionFailError(uid, itemWriteConditionField, writeCondition);
231
- }
232
- t.delete(docRef);
233
- }));
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);
234
209
  });
235
210
  }
236
211
  /**
237
212
  * @override
238
213
  */
239
- _get(uid, raiseIfNotFound) {
240
- return __awaiter(this, void 0, void 0, function* () {
241
- let doc = (yield this.getDocumentRef(uid).get()).data();
242
- if (!doc) {
243
- if (raiseIfNotFound) {
244
- throw new core_1.StoreNotFoundError(uid, this.getName());
245
- }
246
- 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());
247
219
  }
248
- return this.initModel(doc);
249
- });
220
+ return undefined;
221
+ }
222
+ return this.initModel(doc);
250
223
  }
251
224
  /**
252
225
  * @override
253
226
  */
254
- getAll(list) {
255
- return __awaiter(this, void 0, void 0, function* () {
256
- let res = [];
257
- if (list) {
258
- res = (yield this.firestore.collection(this.parameters.collection).where("uuid", "in", list).get()).docs;
259
- }
260
- else {
261
- res = yield this.firestore.collection(this.parameters.collection).listDocuments();
262
- }
263
- return res.map(this.initModel, this);
264
- });
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);
265
236
  }
266
237
  /**
267
238
  * @override
268
239
  */
269
- _update(object, uid, itemWriteCondition, itemWriteConditionField) {
270
- return __awaiter(this, void 0, void 0, function* () {
271
- yield this._setDocument(false, object, uid, itemWriteCondition, itemWriteConditionField);
272
- });
240
+ async _update(object, uid, itemWriteCondition, itemWriteConditionField) {
241
+ await this._setDocument(false, object, uid, itemWriteCondition, itemWriteConditionField);
273
242
  }
274
243
  checkCondition(uid, data, field, condition) {
275
244
  if (condition) {
276
- 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));
277
246
  if (values[0] !== values[1]) {
278
- throw new core_1.UpdateConditionFailError(uid, field, condition);
247
+ throw new UpdateConditionFailError(uid, field, condition);
279
248
  }
280
249
  }
281
250
  }
282
251
  /***
283
252
  * Internal function that implement both update and patch
284
253
  */
285
- _setDocument(merge, object, uid, itemWriteCondition, itemWriteConditionField) {
286
- return __awaiter(this, void 0, void 0, function* () {
287
- let update = object;
288
- if (object instanceof core_1.CoreModel) {
289
- 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());
290
264
  }
291
- yield this.firestore.runTransaction((t) => __awaiter(this, void 0, void 0, function* () {
292
- const docRef = this.getDocumentRef(uid);
293
- const doc = yield t.get(docRef);
294
- if (!doc.exists) {
295
- throw new core_1.StoreNotFoundError(uid, this.getName());
296
- }
297
- this.checkCondition(uid, doc.data(), itemWriteConditionField, itemWriteCondition);
298
- t.set(docRef, update, {
299
- merge,
300
- });
301
- }));
302
- });
303
- }
304
- /**
305
- * @override
306
- */
307
- _patch(object, uid, itemWriteCondition, itemWriteConditionField) {
308
- return __awaiter(this, void 0, void 0, function* () {
309
- yield this._setDocument(true, object, uid, itemWriteCondition, itemWriteConditionField);
265
+ this.checkCondition(uid, doc.data(), itemWriteConditionField, itemWriteCondition);
266
+ t.set(docRef, update, {
267
+ merge,
268
+ });
310
269
  });
311
270
  }
312
271
  /**
313
272
  * @override
314
273
  */
315
- _removeAttribute(uuid, attribute, itemWriteCondition, itemWriteConditionField) {
316
- return __awaiter(this, void 0, void 0, function* () {
317
- yield this.firestore.runTransaction((t) => __awaiter(this, void 0, void 0, function* () {
318
- const docRef = this.getDocumentRef(uuid);
319
- const doc = yield t.get(docRef);
320
- if (!doc.exists) {
321
- throw new core_1.StoreNotFoundError(uuid, this.getName());
322
- }
323
- this.checkCondition(uuid, doc.data(), itemWriteConditionField, itemWriteCondition);
324
- t.update(docRef, {
325
- [attribute]: firestore_1.FieldValue.delete(),
326
- });
327
- }));
328
- });
274
+ async _patch(object, uid, itemWriteCondition, itemWriteConditionField) {
275
+ await this._setDocument(true, object, uid, itemWriteCondition, itemWriteConditionField);
329
276
  }
330
277
  /**
331
278
  * @override
332
279
  */
333
- _save(object) {
334
- return __awaiter(this, void 0, void 0, function* () {
335
- yield this.getDocumentRef(object.getUuid()).set(object.toStoredJSON());
336
- 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
+ });
337
291
  });
338
292
  }
339
293
  /**
340
294
  * @override
341
295
  */
342
- _incrementAttribute(uid, prop, value, updateDate) {
343
- return __awaiter(this, void 0, void 0, function* () {
344
- try {
345
- yield this.getDocumentRef(uid).update({
346
- [prop]: firestore_1.FieldValue.increment(value),
347
- [this._lastUpdateField]: updateDate,
348
- });
349
- }
350
- catch (err) {
351
- if (err.code === 5) {
352
- throw new core_1.StoreNotFoundError(uid, this.getName());
353
- }
354
- throw err;
355
- }
356
- });
296
+ async _save(object) {
297
+ await this.getDocumentRef(object.getUuid()).set(object.toStoredJSON());
298
+ return object;
357
299
  }
358
300
  /**
359
301
  * @override
360
302
  */
361
- _upsertItemToCollection(uid, prop, item, index, itemWriteCondition, itemWriteConditionField, updateDate) {
362
- return __awaiter(this, void 0, void 0, function* () {
363
- if (index !== undefined) {
364
- yield this.firestore.runTransaction((t) => __awaiter(this, void 0, void 0, function* () {
365
- const docRef = this.getDocumentRef(uid);
366
- const doc = yield t.get(docRef);
367
- if (!doc.exists) {
368
- throw new core_1.StoreNotFoundError(uid, this.getName());
369
- }
370
- const data = doc.data();
371
- this.checkCondition(uid, data[prop][index], itemWriteConditionField, itemWriteCondition);
372
- data[prop][index] = item;
373
- t.update(docRef, {
374
- [prop]: data[prop],
375
- [this._lastUpdateField]: updateDate,
376
- });
377
- }));
378
- }
379
- else {
380
- try {
381
- yield this.getDocumentRef(uid).update({
382
- [prop]: firestore_1.FieldValue.arrayUnion(item),
383
- });
384
- }
385
- catch (err) {
386
- if (err.code === 5) {
387
- throw new core_1.StoreNotFoundError(uid, this.getName());
388
- }
389
- throw err;
390
- }
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());
391
313
  }
392
- });
314
+ throw err;
315
+ }
393
316
  }
394
317
  /**
395
318
  * @override
396
319
  */
397
- _deleteItemFromCollection(uid, prop, index, itemWriteCondition, itemWriteConditionField, updateDate) {
398
- return __awaiter(this, void 0, void 0, function* () {
399
- 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) => {
400
323
  const docRef = this.getDocumentRef(uid);
401
- const doc = yield t.get(docRef);
324
+ const doc = await t.get(docRef);
402
325
  if (!doc.exists) {
403
- throw new core_1.StoreNotFoundError(uid, this.getName());
326
+ throw new StoreNotFoundError(uid, this.getName());
404
327
  }
405
328
  const data = doc.data();
406
329
  this.checkCondition(uid, data[prop][index], itemWriteConditionField, itemWriteCondition);
407
- // Get item from doc?
330
+ data[prop][index] = item;
408
331
  t.update(docRef, {
409
- [prop]: firestore_1.FieldValue.arrayRemove(data[prop][index]),
332
+ [prop]: data[prop],
410
333
  [this._lastUpdateField]: updateDate,
411
334
  });
412
- }));
413
- });
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
+ }
414
350
  }
415
351
  /**
416
352
  * @override
417
353
  */
418
- __clean() {
419
- return __awaiter(this, void 0, void 0, function* () {
420
- // 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
+ });
421
368
  });
422
369
  }
370
+ /**
371
+ * @override
372
+ */
373
+ async __clean() {
374
+ // Empty on purpose, unit test use custom collection each time
375
+ }
423
376
  }
424
- exports.default = FireStore;
425
- exports.FireStore = FireStore;
377
+ export { FireStore };
426
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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"}