@infrab4a/connect-nestjs 1.0.0-beta.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.
- package/index.cjs.d.ts +1 -0
- package/index.cjs.default.js +1 -0
- package/index.cjs.js +531 -0
- package/index.cjs.mjs +2 -0
- package/index.esm.js +525 -0
- package/package.json +30 -0
- package/src/consts/hasura-options.const.d.ts +1 -0
- package/src/consts/index.d.ts +1 -0
- package/src/index.d.ts +4 -0
- package/src/infra/firebase/firestore/index.d.ts +2 -0
- package/src/infra/firebase/firestore/services/connect-collection-reference.d.ts +19 -0
- package/src/infra/firebase/firestore/services/connect-collection.service.d.ts +32 -0
- package/src/infra/firebase/firestore/services/connect-document-reference.d.ts +11 -0
- package/src/infra/firebase/firestore/services/connect-document.service.d.ts +17 -0
- package/src/infra/firebase/firestore/services/connect-firestore.d.ts +7 -0
- package/src/infra/firebase/firestore/services/connect-firestore.service.d.ts +11 -0
- package/src/infra/firebase/firestore/services/index.d.ts +6 -0
- package/src/infra/firebase/firestore/types/connect-query-snapshot.type.d.ts +4 -0
- package/src/infra/firebase/firestore/types/index.d.ts +1 -0
- package/src/infra/firebase/firestore/vo/connect-base-document-snapshot.vo.d.ts +12 -0
- package/src/infra/firebase/firestore/vo/index.d.ts +1 -0
- package/src/infra/firebase/index.d.ts +1 -0
- package/src/infra/index.d.ts +1 -0
- package/src/nest-connect.module.d.ts +9 -0
- package/src/nest-firestore.module.d.ts +10 -0
- package/src/nest-hasura-graphql.module.d.ts +12 -0
package/index.cjs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./src/index";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./index.cjs.js').default;
|
package/index.cjs.js
ADDED
|
@@ -0,0 +1,531 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var connect = require('@infrab4a/connect');
|
|
6
|
+
var common = require('@nestjs/common');
|
|
7
|
+
var nestjsFirebase = require('nestjs-firebase');
|
|
8
|
+
|
|
9
|
+
class ConnectBaseDocumentSnapshot {
|
|
10
|
+
constructor(connectDocumentSnapshot) {
|
|
11
|
+
this.connectDocumentSnapshot = connectDocumentSnapshot;
|
|
12
|
+
this.id = connectDocumentSnapshot.id;
|
|
13
|
+
}
|
|
14
|
+
isNotEmpty() {
|
|
15
|
+
return this.connectDocumentSnapshot.exists;
|
|
16
|
+
}
|
|
17
|
+
data(options) {
|
|
18
|
+
return this.connectDocumentSnapshot.data();
|
|
19
|
+
}
|
|
20
|
+
get(fieldPath) {
|
|
21
|
+
return this.connectDocumentSnapshot.get(fieldPath);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
class ConnectDocumentService {
|
|
26
|
+
constructor(path, firestore) {
|
|
27
|
+
this.path = path;
|
|
28
|
+
this.firestore = firestore;
|
|
29
|
+
this.reference = this.firestore.doc(this.path).withConverter({
|
|
30
|
+
toFirestore: (data) => data,
|
|
31
|
+
fromFirestore: (snapshot) => {
|
|
32
|
+
return Object.assign({ id: snapshot.id }, snapshot.data());
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async get() {
|
|
37
|
+
return new ConnectBaseDocumentSnapshot(await this.reference.get());
|
|
38
|
+
}
|
|
39
|
+
getId() {
|
|
40
|
+
return this.reference.id;
|
|
41
|
+
}
|
|
42
|
+
async save(data) {
|
|
43
|
+
if (this.reference)
|
|
44
|
+
this.reference.update(data);
|
|
45
|
+
else
|
|
46
|
+
await this.reference.create(data);
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
async delete() {
|
|
50
|
+
await this.reference.delete();
|
|
51
|
+
}
|
|
52
|
+
withConverter(params) {
|
|
53
|
+
this.reference = this.reference.withConverter({
|
|
54
|
+
toFirestore: (data) => params.toFirestore(data),
|
|
55
|
+
fromFirestore: (snapshot, options) => params.fromFirestore(new ConnectBaseDocumentSnapshot(snapshot), options),
|
|
56
|
+
});
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
class ConnectCollectionService {
|
|
62
|
+
constructor(path, firestore) {
|
|
63
|
+
this.firestore = firestore;
|
|
64
|
+
this.reference = firestore.collection(path).withConverter({
|
|
65
|
+
toFirestore: (data) => data,
|
|
66
|
+
fromFirestore: (snapshot) => {
|
|
67
|
+
return Object.assign({ id: snapshot.id }, snapshot.data());
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
async add(data, id) {
|
|
72
|
+
const newDoc = await this.save(data, id);
|
|
73
|
+
return new ConnectDocumentService(newDoc.path, this.firestore).withConverter(this.converter);
|
|
74
|
+
}
|
|
75
|
+
async getDocs() {
|
|
76
|
+
let query = this.query ? this.query : this.reference;
|
|
77
|
+
query = this.orderBy ? query.orderBy(this.orderBy.fieldPath, this.orderBy.directionStr) : query;
|
|
78
|
+
query = this.statingAt ? query.startAt(this.statingAt) : query;
|
|
79
|
+
query = this.startingAfter ? query.startAfter(this.startingAfter) : query;
|
|
80
|
+
query = this.offsetBy ? query.offset(this.offsetBy) : query;
|
|
81
|
+
query = this.limitBy ? query.limit(this.limitBy) : query;
|
|
82
|
+
return query.get().then((docs) => ({
|
|
83
|
+
empty: docs.empty,
|
|
84
|
+
size: docs.size,
|
|
85
|
+
docs: docs.docs.map((doc) => new ConnectBaseDocumentSnapshot(doc)),
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
getDoc(id) {
|
|
89
|
+
return new ConnectDocumentService(`${this.reference.path}/${id}`, this.firestore).withConverter(this.converter);
|
|
90
|
+
}
|
|
91
|
+
where(fieldPath, opStr, value) {
|
|
92
|
+
this.query = this.query ? this.query.where(fieldPath, opStr, value) : this.reference.where(fieldPath, opStr, value);
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
order(attribute, order) {
|
|
96
|
+
this.orderBy = { fieldPath: attribute, directionStr: order };
|
|
97
|
+
return this;
|
|
98
|
+
}
|
|
99
|
+
limit(quantity) {
|
|
100
|
+
this.limitBy = quantity;
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
offset(offsetBy) {
|
|
104
|
+
this.offsetBy = offsetBy;
|
|
105
|
+
return this;
|
|
106
|
+
}
|
|
107
|
+
fromStartAt(startingAt) {
|
|
108
|
+
this.statingAt = startingAt;
|
|
109
|
+
return this;
|
|
110
|
+
}
|
|
111
|
+
fromStartAfter(startingAt) {
|
|
112
|
+
this.startingAfter = startingAt;
|
|
113
|
+
return this;
|
|
114
|
+
}
|
|
115
|
+
withConverter(params) {
|
|
116
|
+
this.converter = params;
|
|
117
|
+
this.reference = this.reference.withConverter({
|
|
118
|
+
toFirestore: (data) => params.toFirestore(data),
|
|
119
|
+
fromFirestore: (snapshot, options) => params.fromFirestore(new ConnectBaseDocumentSnapshot(snapshot), options),
|
|
120
|
+
});
|
|
121
|
+
return this;
|
|
122
|
+
}
|
|
123
|
+
async save(data, id) {
|
|
124
|
+
if (connect.isEmpty(id))
|
|
125
|
+
return this.reference.add(data);
|
|
126
|
+
const docRef = this.reference.doc(id);
|
|
127
|
+
await docRef.update(data);
|
|
128
|
+
return docRef;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
class ConnectFirestoreService {
|
|
133
|
+
constructor(firestore) {
|
|
134
|
+
this.firestore = firestore;
|
|
135
|
+
}
|
|
136
|
+
getCollection(path) {
|
|
137
|
+
return new ConnectCollectionService(path, this.firestore);
|
|
138
|
+
}
|
|
139
|
+
getDocument(path) {
|
|
140
|
+
return new ConnectDocumentService(path, this.firestore);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/******************************************************************************
|
|
145
|
+
Copyright (c) Microsoft Corporation.
|
|
146
|
+
|
|
147
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
148
|
+
purpose with or without fee is hereby granted.
|
|
149
|
+
|
|
150
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
151
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
152
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
153
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
154
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
155
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
156
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
157
|
+
***************************************************************************** */
|
|
158
|
+
|
|
159
|
+
function __decorate(decorators, target, key, desc) {
|
|
160
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
161
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
162
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
163
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
167
|
+
var e = new Error(message);
|
|
168
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
var NestFirestoreModule_1;
|
|
172
|
+
exports.NestFirestoreModule = NestFirestoreModule_1 = class NestFirestoreModule {
|
|
173
|
+
static initializeApp(options) {
|
|
174
|
+
return {
|
|
175
|
+
module: NestFirestoreModule_1,
|
|
176
|
+
imports: [
|
|
177
|
+
nestjsFirebase.FirebaseModule.forRoot({
|
|
178
|
+
googleApplicationCredential: options.firebase.googleApplicationCredential,
|
|
179
|
+
}),
|
|
180
|
+
],
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
exports.NestFirestoreModule = NestFirestoreModule_1 = __decorate([
|
|
185
|
+
common.Module({
|
|
186
|
+
providers: [
|
|
187
|
+
{
|
|
188
|
+
provide: 'FirestoreOptions',
|
|
189
|
+
useFactory: (firestore) => ({
|
|
190
|
+
firestore: new ConnectFirestoreService(firestore),
|
|
191
|
+
}),
|
|
192
|
+
inject: [nestjsFirebase.FirebaseConstants.FIREBASE_TOKEN],
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
provide: 'BeautyProfileRepository',
|
|
196
|
+
useFactory: (config, userRepository) => {
|
|
197
|
+
return new connect.UserBeautyProfileFirestoreRepository(config, userRepository);
|
|
198
|
+
},
|
|
199
|
+
inject: ['FirestoreOptions', 'UserRepository'],
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
provide: 'Buy2WinRepository',
|
|
203
|
+
useFactory: (options) => {
|
|
204
|
+
return new connect.Buy2WinFirestoreRepository(options);
|
|
205
|
+
},
|
|
206
|
+
inject: ['FirestoreOptions'],
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
provide: connect.CategoryFirestoreRepository,
|
|
210
|
+
useFactory: (options) => {
|
|
211
|
+
return new connect.CategoryFirestoreRepository(options);
|
|
212
|
+
},
|
|
213
|
+
inject: ['FirestoreOptions'],
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
provide: 'CheckoutRepository',
|
|
217
|
+
useFactory: (options) => {
|
|
218
|
+
return new connect.CheckoutFirestoreRepository(options);
|
|
219
|
+
},
|
|
220
|
+
inject: ['FirestoreOptions'],
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
provide: 'CheckoutSubscriptionRepository',
|
|
224
|
+
useFactory: (options) => {
|
|
225
|
+
return new connect.CheckoutSubscriptionFirestoreRepository(options);
|
|
226
|
+
},
|
|
227
|
+
inject: ['FirestoreOptions'],
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
provide: 'CouponRepository',
|
|
231
|
+
useFactory: (options) => {
|
|
232
|
+
return new connect.CouponFirestoreRepository(options);
|
|
233
|
+
},
|
|
234
|
+
inject: ['FirestoreOptions'],
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
provide: 'CampaignHashtagRepository',
|
|
238
|
+
useFactory: (options) => {
|
|
239
|
+
return new connect.CampaignHashtagFirestoreRepository(options);
|
|
240
|
+
},
|
|
241
|
+
inject: ['FirestoreOptions'],
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
provide: 'CampaignDashboardRepository',
|
|
245
|
+
useFactory: (options) => {
|
|
246
|
+
return new connect.CampaignDashboardFirestoreRepository(options);
|
|
247
|
+
},
|
|
248
|
+
inject: ['FirestoreOptions'],
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
provide: 'EditionRepository',
|
|
252
|
+
useFactory: (options, subscriptionRepository) => {
|
|
253
|
+
return new connect.SubscriptionEditionFirestoreRepository(options, subscriptionRepository);
|
|
254
|
+
},
|
|
255
|
+
inject: ['FirestoreOptions', 'SubscriptionRepository'],
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
provide: 'HomeRepository',
|
|
259
|
+
useFactory: (options) => {
|
|
260
|
+
return new connect.HomeFirestoreRepository(options);
|
|
261
|
+
},
|
|
262
|
+
inject: ['FirestoreOptions'],
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
provide: 'LeadRepository',
|
|
266
|
+
useFactory: (options) => {
|
|
267
|
+
return new connect.LeadFirestoreRepository(options);
|
|
268
|
+
},
|
|
269
|
+
inject: ['FirestoreOptions'],
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
provide: 'LegacyOrderRepository',
|
|
273
|
+
useFactory: (options) => {
|
|
274
|
+
return new connect.LegacyOrderFirestoreRepository(options);
|
|
275
|
+
},
|
|
276
|
+
inject: ['FirestoreOptions'],
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
provide: 'ShopMenuRepository',
|
|
280
|
+
useFactory: (options) => {
|
|
281
|
+
return new connect.ShopMenuFirestoreRepository(options);
|
|
282
|
+
},
|
|
283
|
+
inject: ['FirestoreOptions'],
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
provide: 'OrderRepository',
|
|
287
|
+
useFactory: (options) => {
|
|
288
|
+
return new connect.OrderFirestoreRepository(options);
|
|
289
|
+
},
|
|
290
|
+
inject: ['FirestoreOptions'],
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
provide: 'PaymentRepository',
|
|
294
|
+
useFactory: (options) => {
|
|
295
|
+
return new connect.PaymentFirestoreRepository(options);
|
|
296
|
+
},
|
|
297
|
+
inject: ['FirestoreOptions'],
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
provide: connect.ProductFirestoreRepository,
|
|
301
|
+
useFactory: (options) => {
|
|
302
|
+
return new connect.ProductFirestoreRepository(options);
|
|
303
|
+
},
|
|
304
|
+
inject: ['FirestoreOptions'],
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
provide: 'ShopSettingsRepository',
|
|
308
|
+
useFactory: (options) => {
|
|
309
|
+
return new connect.ShopSettingsFirestoreRepository(options);
|
|
310
|
+
},
|
|
311
|
+
inject: ['FirestoreOptions'],
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
provide: 'SubscriptionPaymentRepository',
|
|
315
|
+
useFactory: (options, subscriptionRepository) => {
|
|
316
|
+
return new connect.SubscriptionPaymentFirestoreRepository(options, subscriptionRepository);
|
|
317
|
+
},
|
|
318
|
+
inject: ['FirestoreOptions', 'SubscriptionRepository'],
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
provide: 'SubscriptionPlanRepository',
|
|
322
|
+
useFactory: (options) => {
|
|
323
|
+
return new connect.SubscriptionPlanFirestoreRepository(options);
|
|
324
|
+
},
|
|
325
|
+
inject: ['FirestoreOptions'],
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
provide: 'SubscriptionProductRepository',
|
|
329
|
+
useFactory: (options) => {
|
|
330
|
+
return new connect.SubscriptionProductFirestoreRepository(options);
|
|
331
|
+
},
|
|
332
|
+
inject: ['FirestoreOptions'],
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
provide: 'SubscriptionRepository',
|
|
336
|
+
useFactory: (options) => {
|
|
337
|
+
return new connect.SubscriptionFirestoreRepository(options);
|
|
338
|
+
},
|
|
339
|
+
inject: ['FirestoreOptions'],
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
provide: 'UserRepository',
|
|
343
|
+
useFactory: (options) => {
|
|
344
|
+
return new connect.UserFirestoreRepository(options);
|
|
345
|
+
},
|
|
346
|
+
inject: ['FirestoreOptions'],
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
provide: 'UserAddressRepository',
|
|
350
|
+
useFactory: (options, userRepository) => {
|
|
351
|
+
return new connect.UserAddressFirestoreRepository(options, userRepository);
|
|
352
|
+
},
|
|
353
|
+
inject: ['FirestoreOptions', 'UserRepository'],
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
provide: 'UserPaymentMethodRepository',
|
|
357
|
+
useFactory: (options, userRepository) => {
|
|
358
|
+
return new connect.UserPaymentMethodFirestoreRepository(options, userRepository);
|
|
359
|
+
},
|
|
360
|
+
inject: ['FirestoreOptions', 'UserRepository'],
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
provide: 'SubscriptionMaterializationRepository',
|
|
364
|
+
useFactory: (options) => {
|
|
365
|
+
return new connect.SubscriptionMaterializationFirestoreRepository(options);
|
|
366
|
+
},
|
|
367
|
+
inject: ['FirestoreOptions'],
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
provide: 'SubscriptionSummaryRepository',
|
|
371
|
+
useFactory: (options) => {
|
|
372
|
+
return new connect.SubscriptionSummaryFirestoreRepository(options);
|
|
373
|
+
},
|
|
374
|
+
inject: ['FirestoreOptions'],
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
provide: connect.ProductVariantFirestoreRepository,
|
|
378
|
+
useFactory: (options, productRepository) => {
|
|
379
|
+
return new connect.ProductVariantFirestoreRepository(options, productRepository);
|
|
380
|
+
},
|
|
381
|
+
inject: ['FirestoreOptions', connect.ProductFirestoreRepository],
|
|
382
|
+
},
|
|
383
|
+
],
|
|
384
|
+
})
|
|
385
|
+
], exports.NestFirestoreModule);
|
|
386
|
+
|
|
387
|
+
const HASURA_OPTIONS = 'HASURA_OPTIONS';
|
|
388
|
+
|
|
389
|
+
var NestHasuraGraphQLModule_1;
|
|
390
|
+
exports.NestHasuraGraphQLModule = NestHasuraGraphQLModule_1 = class NestHasuraGraphQLModule {
|
|
391
|
+
static initializeApp(options) {
|
|
392
|
+
return {
|
|
393
|
+
module: NestHasuraGraphQLModule_1,
|
|
394
|
+
providers: [{ provide: HASURA_OPTIONS, useValue: options }],
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
};
|
|
398
|
+
exports.NestHasuraGraphQLModule = NestHasuraGraphQLModule_1 = __decorate([
|
|
399
|
+
common.Module({
|
|
400
|
+
providers: [
|
|
401
|
+
{
|
|
402
|
+
provide: 'HasuraConfig',
|
|
403
|
+
useFactory: (options) => ({
|
|
404
|
+
endpoint: options.endpoint,
|
|
405
|
+
authOptions: options.credentials,
|
|
406
|
+
}),
|
|
407
|
+
inject: [HASURA_OPTIONS],
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
provide: 'CategoryRepository',
|
|
411
|
+
useExisting: connect.CategoryHasuraGraphQLRepository,
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
provide: connect.CategoryHasuraGraphQLRepository,
|
|
415
|
+
useFactory: (options, productRepository, categoryFilterRepository) => {
|
|
416
|
+
return new connect.CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
|
|
417
|
+
},
|
|
418
|
+
inject: ['HasuraConfig', connect.ProductHasuraGraphQLRepository, connect.CategoryFilterHasuraGraphQLRepository],
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
provide: 'ProductRepository',
|
|
422
|
+
useExisting: connect.ProductHasuraGraphQLRepository,
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
provide: connect.ProductHasuraGraphQLRepository,
|
|
426
|
+
useFactory: (hasuraConfig) => {
|
|
427
|
+
return new connect.ProductHasuraGraphQLRepository(hasuraConfig);
|
|
428
|
+
},
|
|
429
|
+
inject: ['HasuraConfig'],
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
provide: 'ProductReviewsRepository',
|
|
433
|
+
useExisting: connect.ProductReviewsHasuraGraphQLRepository,
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
provide: connect.ProductReviewsHasuraGraphQLRepository,
|
|
437
|
+
useFactory: (hasuraConfig) => {
|
|
438
|
+
return new connect.ProductReviewsHasuraGraphQLRepository(hasuraConfig);
|
|
439
|
+
},
|
|
440
|
+
inject: ['HasuraConfig'],
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
provide: 'VariantRepository',
|
|
444
|
+
useExisting: connect.VariantHasuraGraphQLRepository,
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
provide: connect.VariantHasuraGraphQLRepository,
|
|
448
|
+
useFactory: (hasuraConfig) => {
|
|
449
|
+
return new connect.VariantHasuraGraphQLRepository(hasuraConfig);
|
|
450
|
+
},
|
|
451
|
+
inject: ['HasuraConfig'],
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
provide: 'CategoryFilterRepository',
|
|
455
|
+
useExisting: connect.CategoryFilterHasuraGraphQLRepository,
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
provide: connect.CategoryFilterHasuraGraphQLRepository,
|
|
459
|
+
useFactory: (options) => {
|
|
460
|
+
return new connect.CategoryFilterHasuraGraphQLRepository(options);
|
|
461
|
+
},
|
|
462
|
+
inject: ['HasuraConfig'],
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
provide: 'FilterOptionRepository',
|
|
466
|
+
useExisting: connect.FilterOptionHasuraGraphQLRepository,
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
provide: connect.FilterOptionHasuraGraphQLRepository,
|
|
470
|
+
useFactory: (options) => {
|
|
471
|
+
return new connect.FilterOptionHasuraGraphQLRepository(options);
|
|
472
|
+
},
|
|
473
|
+
inject: ['HasuraConfig'],
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
provide: 'FilterRepository',
|
|
477
|
+
useExisting: connect.FilterHasuraGraphQLRepository,
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
provide: connect.FilterHasuraGraphQLRepository,
|
|
481
|
+
useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
|
|
482
|
+
return new connect.FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
|
|
483
|
+
},
|
|
484
|
+
inject: ['HasuraConfig', connect.FilterOptionHasuraGraphQLRepository, connect.CategoryFilterHasuraGraphQLRepository],
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
provide: connect.CategoryCollectionChildrenHasuraGraphQLRepository,
|
|
488
|
+
useFactory: (options) => new connect.CategoryCollectionChildrenHasuraGraphQLRepository(options),
|
|
489
|
+
inject: ['HasuraConfig'],
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
provide: 'CategoryCollectionChildrenRepository',
|
|
493
|
+
useExisting: connect.CategoryCollectionChildrenHasuraGraphQLRepository,
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
provide: connect.WishlistHasuraGraphQLRepository,
|
|
497
|
+
useFactory: (options, categoryFilterRepository) => {
|
|
498
|
+
return new connect.WishlistHasuraGraphQLRepository(options, categoryFilterRepository);
|
|
499
|
+
},
|
|
500
|
+
inject: ['HasuraConfig', connect.CategoryFilterHasuraGraphQLRepository],
|
|
501
|
+
},
|
|
502
|
+
{
|
|
503
|
+
provide: 'WishlistRepository',
|
|
504
|
+
useExisting: connect.WishlistHasuraGraphQLRepository,
|
|
505
|
+
},
|
|
506
|
+
],
|
|
507
|
+
})
|
|
508
|
+
], exports.NestHasuraGraphQLModule);
|
|
509
|
+
|
|
510
|
+
var NestConnectModule_1;
|
|
511
|
+
exports.NestConnectModule = NestConnectModule_1 = class NestConnectModule {
|
|
512
|
+
static initializeApp(defaultShop, options) {
|
|
513
|
+
return {
|
|
514
|
+
module: NestConnectModule_1,
|
|
515
|
+
imports: [
|
|
516
|
+
nestjsFirebase.FirebaseModule.forRoot({
|
|
517
|
+
googleApplicationCredential: options.firebase.googleApplicationCredential,
|
|
518
|
+
}),
|
|
519
|
+
],
|
|
520
|
+
};
|
|
521
|
+
}
|
|
522
|
+
};
|
|
523
|
+
exports.NestConnectModule = NestConnectModule_1 = __decorate([
|
|
524
|
+
common.Module({
|
|
525
|
+
imports: [exports.NestFirestoreModule, exports.NestHasuraGraphQLModule],
|
|
526
|
+
})
|
|
527
|
+
], exports.NestConnectModule);
|
|
528
|
+
|
|
529
|
+
exports.ConnectCollectionService = ConnectCollectionService;
|
|
530
|
+
exports.ConnectDocumentService = ConnectDocumentService;
|
|
531
|
+
exports.ConnectFirestoreService = ConnectFirestoreService;
|
package/index.cjs.mjs
ADDED
package/index.esm.js
ADDED
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
import { isEmpty, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, SubscriptionMaterializationFirestoreRepository, SubscriptionSummaryFirestoreRepository, ProductVariantFirestoreRepository, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, ProductReviewsHasuraGraphQLRepository, VariantHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository, CategoryCollectionChildrenHasuraGraphQLRepository, WishlistHasuraGraphQLRepository } from '@infrab4a/connect';
|
|
2
|
+
import { Module } from '@nestjs/common';
|
|
3
|
+
import { FirebaseConstants, FirebaseModule } from 'nestjs-firebase';
|
|
4
|
+
|
|
5
|
+
class ConnectBaseDocumentSnapshot {
|
|
6
|
+
constructor(connectDocumentSnapshot) {
|
|
7
|
+
this.connectDocumentSnapshot = connectDocumentSnapshot;
|
|
8
|
+
this.id = connectDocumentSnapshot.id;
|
|
9
|
+
}
|
|
10
|
+
isNotEmpty() {
|
|
11
|
+
return this.connectDocumentSnapshot.exists;
|
|
12
|
+
}
|
|
13
|
+
data(options) {
|
|
14
|
+
return this.connectDocumentSnapshot.data();
|
|
15
|
+
}
|
|
16
|
+
get(fieldPath) {
|
|
17
|
+
return this.connectDocumentSnapshot.get(fieldPath);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
class ConnectDocumentService {
|
|
22
|
+
constructor(path, firestore) {
|
|
23
|
+
this.path = path;
|
|
24
|
+
this.firestore = firestore;
|
|
25
|
+
this.reference = this.firestore.doc(this.path).withConverter({
|
|
26
|
+
toFirestore: (data) => data,
|
|
27
|
+
fromFirestore: (snapshot) => {
|
|
28
|
+
return Object.assign({ id: snapshot.id }, snapshot.data());
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async get() {
|
|
33
|
+
return new ConnectBaseDocumentSnapshot(await this.reference.get());
|
|
34
|
+
}
|
|
35
|
+
getId() {
|
|
36
|
+
return this.reference.id;
|
|
37
|
+
}
|
|
38
|
+
async save(data) {
|
|
39
|
+
if (this.reference)
|
|
40
|
+
this.reference.update(data);
|
|
41
|
+
else
|
|
42
|
+
await this.reference.create(data);
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
async delete() {
|
|
46
|
+
await this.reference.delete();
|
|
47
|
+
}
|
|
48
|
+
withConverter(params) {
|
|
49
|
+
this.reference = this.reference.withConverter({
|
|
50
|
+
toFirestore: (data) => params.toFirestore(data),
|
|
51
|
+
fromFirestore: (snapshot, options) => params.fromFirestore(new ConnectBaseDocumentSnapshot(snapshot), options),
|
|
52
|
+
});
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
class ConnectCollectionService {
|
|
58
|
+
constructor(path, firestore) {
|
|
59
|
+
this.firestore = firestore;
|
|
60
|
+
this.reference = firestore.collection(path).withConverter({
|
|
61
|
+
toFirestore: (data) => data,
|
|
62
|
+
fromFirestore: (snapshot) => {
|
|
63
|
+
return Object.assign({ id: snapshot.id }, snapshot.data());
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
async add(data, id) {
|
|
68
|
+
const newDoc = await this.save(data, id);
|
|
69
|
+
return new ConnectDocumentService(newDoc.path, this.firestore).withConverter(this.converter);
|
|
70
|
+
}
|
|
71
|
+
async getDocs() {
|
|
72
|
+
let query = this.query ? this.query : this.reference;
|
|
73
|
+
query = this.orderBy ? query.orderBy(this.orderBy.fieldPath, this.orderBy.directionStr) : query;
|
|
74
|
+
query = this.statingAt ? query.startAt(this.statingAt) : query;
|
|
75
|
+
query = this.startingAfter ? query.startAfter(this.startingAfter) : query;
|
|
76
|
+
query = this.offsetBy ? query.offset(this.offsetBy) : query;
|
|
77
|
+
query = this.limitBy ? query.limit(this.limitBy) : query;
|
|
78
|
+
return query.get().then((docs) => ({
|
|
79
|
+
empty: docs.empty,
|
|
80
|
+
size: docs.size,
|
|
81
|
+
docs: docs.docs.map((doc) => new ConnectBaseDocumentSnapshot(doc)),
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
getDoc(id) {
|
|
85
|
+
return new ConnectDocumentService(`${this.reference.path}/${id}`, this.firestore).withConverter(this.converter);
|
|
86
|
+
}
|
|
87
|
+
where(fieldPath, opStr, value) {
|
|
88
|
+
this.query = this.query ? this.query.where(fieldPath, opStr, value) : this.reference.where(fieldPath, opStr, value);
|
|
89
|
+
return this;
|
|
90
|
+
}
|
|
91
|
+
order(attribute, order) {
|
|
92
|
+
this.orderBy = { fieldPath: attribute, directionStr: order };
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
limit(quantity) {
|
|
96
|
+
this.limitBy = quantity;
|
|
97
|
+
return this;
|
|
98
|
+
}
|
|
99
|
+
offset(offsetBy) {
|
|
100
|
+
this.offsetBy = offsetBy;
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
fromStartAt(startingAt) {
|
|
104
|
+
this.statingAt = startingAt;
|
|
105
|
+
return this;
|
|
106
|
+
}
|
|
107
|
+
fromStartAfter(startingAt) {
|
|
108
|
+
this.startingAfter = startingAt;
|
|
109
|
+
return this;
|
|
110
|
+
}
|
|
111
|
+
withConverter(params) {
|
|
112
|
+
this.converter = params;
|
|
113
|
+
this.reference = this.reference.withConverter({
|
|
114
|
+
toFirestore: (data) => params.toFirestore(data),
|
|
115
|
+
fromFirestore: (snapshot, options) => params.fromFirestore(new ConnectBaseDocumentSnapshot(snapshot), options),
|
|
116
|
+
});
|
|
117
|
+
return this;
|
|
118
|
+
}
|
|
119
|
+
async save(data, id) {
|
|
120
|
+
if (isEmpty(id))
|
|
121
|
+
return this.reference.add(data);
|
|
122
|
+
const docRef = this.reference.doc(id);
|
|
123
|
+
await docRef.update(data);
|
|
124
|
+
return docRef;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
class ConnectFirestoreService {
|
|
129
|
+
constructor(firestore) {
|
|
130
|
+
this.firestore = firestore;
|
|
131
|
+
}
|
|
132
|
+
getCollection(path) {
|
|
133
|
+
return new ConnectCollectionService(path, this.firestore);
|
|
134
|
+
}
|
|
135
|
+
getDocument(path) {
|
|
136
|
+
return new ConnectDocumentService(path, this.firestore);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/******************************************************************************
|
|
141
|
+
Copyright (c) Microsoft Corporation.
|
|
142
|
+
|
|
143
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
144
|
+
purpose with or without fee is hereby granted.
|
|
145
|
+
|
|
146
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
147
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
148
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
149
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
150
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
151
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
152
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
153
|
+
***************************************************************************** */
|
|
154
|
+
|
|
155
|
+
function __decorate(decorators, target, key, desc) {
|
|
156
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
157
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
158
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
159
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
163
|
+
var e = new Error(message);
|
|
164
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
var NestFirestoreModule_1;
|
|
168
|
+
let NestFirestoreModule = NestFirestoreModule_1 = class NestFirestoreModule {
|
|
169
|
+
static initializeApp(options) {
|
|
170
|
+
return {
|
|
171
|
+
module: NestFirestoreModule_1,
|
|
172
|
+
imports: [
|
|
173
|
+
FirebaseModule.forRoot({
|
|
174
|
+
googleApplicationCredential: options.firebase.googleApplicationCredential,
|
|
175
|
+
}),
|
|
176
|
+
],
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
NestFirestoreModule = NestFirestoreModule_1 = __decorate([
|
|
181
|
+
Module({
|
|
182
|
+
providers: [
|
|
183
|
+
{
|
|
184
|
+
provide: 'FirestoreOptions',
|
|
185
|
+
useFactory: (firestore) => ({
|
|
186
|
+
firestore: new ConnectFirestoreService(firestore),
|
|
187
|
+
}),
|
|
188
|
+
inject: [FirebaseConstants.FIREBASE_TOKEN],
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
provide: 'BeautyProfileRepository',
|
|
192
|
+
useFactory: (config, userRepository) => {
|
|
193
|
+
return new UserBeautyProfileFirestoreRepository(config, userRepository);
|
|
194
|
+
},
|
|
195
|
+
inject: ['FirestoreOptions', 'UserRepository'],
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
provide: 'Buy2WinRepository',
|
|
199
|
+
useFactory: (options) => {
|
|
200
|
+
return new Buy2WinFirestoreRepository(options);
|
|
201
|
+
},
|
|
202
|
+
inject: ['FirestoreOptions'],
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
provide: CategoryFirestoreRepository,
|
|
206
|
+
useFactory: (options) => {
|
|
207
|
+
return new CategoryFirestoreRepository(options);
|
|
208
|
+
},
|
|
209
|
+
inject: ['FirestoreOptions'],
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
provide: 'CheckoutRepository',
|
|
213
|
+
useFactory: (options) => {
|
|
214
|
+
return new CheckoutFirestoreRepository(options);
|
|
215
|
+
},
|
|
216
|
+
inject: ['FirestoreOptions'],
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
provide: 'CheckoutSubscriptionRepository',
|
|
220
|
+
useFactory: (options) => {
|
|
221
|
+
return new CheckoutSubscriptionFirestoreRepository(options);
|
|
222
|
+
},
|
|
223
|
+
inject: ['FirestoreOptions'],
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
provide: 'CouponRepository',
|
|
227
|
+
useFactory: (options) => {
|
|
228
|
+
return new CouponFirestoreRepository(options);
|
|
229
|
+
},
|
|
230
|
+
inject: ['FirestoreOptions'],
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
provide: 'CampaignHashtagRepository',
|
|
234
|
+
useFactory: (options) => {
|
|
235
|
+
return new CampaignHashtagFirestoreRepository(options);
|
|
236
|
+
},
|
|
237
|
+
inject: ['FirestoreOptions'],
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
provide: 'CampaignDashboardRepository',
|
|
241
|
+
useFactory: (options) => {
|
|
242
|
+
return new CampaignDashboardFirestoreRepository(options);
|
|
243
|
+
},
|
|
244
|
+
inject: ['FirestoreOptions'],
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
provide: 'EditionRepository',
|
|
248
|
+
useFactory: (options, subscriptionRepository) => {
|
|
249
|
+
return new SubscriptionEditionFirestoreRepository(options, subscriptionRepository);
|
|
250
|
+
},
|
|
251
|
+
inject: ['FirestoreOptions', 'SubscriptionRepository'],
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
provide: 'HomeRepository',
|
|
255
|
+
useFactory: (options) => {
|
|
256
|
+
return new HomeFirestoreRepository(options);
|
|
257
|
+
},
|
|
258
|
+
inject: ['FirestoreOptions'],
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
provide: 'LeadRepository',
|
|
262
|
+
useFactory: (options) => {
|
|
263
|
+
return new LeadFirestoreRepository(options);
|
|
264
|
+
},
|
|
265
|
+
inject: ['FirestoreOptions'],
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
provide: 'LegacyOrderRepository',
|
|
269
|
+
useFactory: (options) => {
|
|
270
|
+
return new LegacyOrderFirestoreRepository(options);
|
|
271
|
+
},
|
|
272
|
+
inject: ['FirestoreOptions'],
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
provide: 'ShopMenuRepository',
|
|
276
|
+
useFactory: (options) => {
|
|
277
|
+
return new ShopMenuFirestoreRepository(options);
|
|
278
|
+
},
|
|
279
|
+
inject: ['FirestoreOptions'],
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
provide: 'OrderRepository',
|
|
283
|
+
useFactory: (options) => {
|
|
284
|
+
return new OrderFirestoreRepository(options);
|
|
285
|
+
},
|
|
286
|
+
inject: ['FirestoreOptions'],
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
provide: 'PaymentRepository',
|
|
290
|
+
useFactory: (options) => {
|
|
291
|
+
return new PaymentFirestoreRepository(options);
|
|
292
|
+
},
|
|
293
|
+
inject: ['FirestoreOptions'],
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
provide: ProductFirestoreRepository,
|
|
297
|
+
useFactory: (options) => {
|
|
298
|
+
return new ProductFirestoreRepository(options);
|
|
299
|
+
},
|
|
300
|
+
inject: ['FirestoreOptions'],
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
provide: 'ShopSettingsRepository',
|
|
304
|
+
useFactory: (options) => {
|
|
305
|
+
return new ShopSettingsFirestoreRepository(options);
|
|
306
|
+
},
|
|
307
|
+
inject: ['FirestoreOptions'],
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
provide: 'SubscriptionPaymentRepository',
|
|
311
|
+
useFactory: (options, subscriptionRepository) => {
|
|
312
|
+
return new SubscriptionPaymentFirestoreRepository(options, subscriptionRepository);
|
|
313
|
+
},
|
|
314
|
+
inject: ['FirestoreOptions', 'SubscriptionRepository'],
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
provide: 'SubscriptionPlanRepository',
|
|
318
|
+
useFactory: (options) => {
|
|
319
|
+
return new SubscriptionPlanFirestoreRepository(options);
|
|
320
|
+
},
|
|
321
|
+
inject: ['FirestoreOptions'],
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
provide: 'SubscriptionProductRepository',
|
|
325
|
+
useFactory: (options) => {
|
|
326
|
+
return new SubscriptionProductFirestoreRepository(options);
|
|
327
|
+
},
|
|
328
|
+
inject: ['FirestoreOptions'],
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
provide: 'SubscriptionRepository',
|
|
332
|
+
useFactory: (options) => {
|
|
333
|
+
return new SubscriptionFirestoreRepository(options);
|
|
334
|
+
},
|
|
335
|
+
inject: ['FirestoreOptions'],
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
provide: 'UserRepository',
|
|
339
|
+
useFactory: (options) => {
|
|
340
|
+
return new UserFirestoreRepository(options);
|
|
341
|
+
},
|
|
342
|
+
inject: ['FirestoreOptions'],
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
provide: 'UserAddressRepository',
|
|
346
|
+
useFactory: (options, userRepository) => {
|
|
347
|
+
return new UserAddressFirestoreRepository(options, userRepository);
|
|
348
|
+
},
|
|
349
|
+
inject: ['FirestoreOptions', 'UserRepository'],
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
provide: 'UserPaymentMethodRepository',
|
|
353
|
+
useFactory: (options, userRepository) => {
|
|
354
|
+
return new UserPaymentMethodFirestoreRepository(options, userRepository);
|
|
355
|
+
},
|
|
356
|
+
inject: ['FirestoreOptions', 'UserRepository'],
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
provide: 'SubscriptionMaterializationRepository',
|
|
360
|
+
useFactory: (options) => {
|
|
361
|
+
return new SubscriptionMaterializationFirestoreRepository(options);
|
|
362
|
+
},
|
|
363
|
+
inject: ['FirestoreOptions'],
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
provide: 'SubscriptionSummaryRepository',
|
|
367
|
+
useFactory: (options) => {
|
|
368
|
+
return new SubscriptionSummaryFirestoreRepository(options);
|
|
369
|
+
},
|
|
370
|
+
inject: ['FirestoreOptions'],
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
provide: ProductVariantFirestoreRepository,
|
|
374
|
+
useFactory: (options, productRepository) => {
|
|
375
|
+
return new ProductVariantFirestoreRepository(options, productRepository);
|
|
376
|
+
},
|
|
377
|
+
inject: ['FirestoreOptions', ProductFirestoreRepository],
|
|
378
|
+
},
|
|
379
|
+
],
|
|
380
|
+
})
|
|
381
|
+
], NestFirestoreModule);
|
|
382
|
+
|
|
383
|
+
const HASURA_OPTIONS = 'HASURA_OPTIONS';
|
|
384
|
+
|
|
385
|
+
var NestHasuraGraphQLModule_1;
|
|
386
|
+
let NestHasuraGraphQLModule = NestHasuraGraphQLModule_1 = class NestHasuraGraphQLModule {
|
|
387
|
+
static initializeApp(options) {
|
|
388
|
+
return {
|
|
389
|
+
module: NestHasuraGraphQLModule_1,
|
|
390
|
+
providers: [{ provide: HASURA_OPTIONS, useValue: options }],
|
|
391
|
+
};
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
NestHasuraGraphQLModule = NestHasuraGraphQLModule_1 = __decorate([
|
|
395
|
+
Module({
|
|
396
|
+
providers: [
|
|
397
|
+
{
|
|
398
|
+
provide: 'HasuraConfig',
|
|
399
|
+
useFactory: (options) => ({
|
|
400
|
+
endpoint: options.endpoint,
|
|
401
|
+
authOptions: options.credentials,
|
|
402
|
+
}),
|
|
403
|
+
inject: [HASURA_OPTIONS],
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
provide: 'CategoryRepository',
|
|
407
|
+
useExisting: CategoryHasuraGraphQLRepository,
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
provide: CategoryHasuraGraphQLRepository,
|
|
411
|
+
useFactory: (options, productRepository, categoryFilterRepository) => {
|
|
412
|
+
return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
|
|
413
|
+
},
|
|
414
|
+
inject: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
provide: 'ProductRepository',
|
|
418
|
+
useExisting: ProductHasuraGraphQLRepository,
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
provide: ProductHasuraGraphQLRepository,
|
|
422
|
+
useFactory: (hasuraConfig) => {
|
|
423
|
+
return new ProductHasuraGraphQLRepository(hasuraConfig);
|
|
424
|
+
},
|
|
425
|
+
inject: ['HasuraConfig'],
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
provide: 'ProductReviewsRepository',
|
|
429
|
+
useExisting: ProductReviewsHasuraGraphQLRepository,
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
provide: ProductReviewsHasuraGraphQLRepository,
|
|
433
|
+
useFactory: (hasuraConfig) => {
|
|
434
|
+
return new ProductReviewsHasuraGraphQLRepository(hasuraConfig);
|
|
435
|
+
},
|
|
436
|
+
inject: ['HasuraConfig'],
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
provide: 'VariantRepository',
|
|
440
|
+
useExisting: VariantHasuraGraphQLRepository,
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
provide: VariantHasuraGraphQLRepository,
|
|
444
|
+
useFactory: (hasuraConfig) => {
|
|
445
|
+
return new VariantHasuraGraphQLRepository(hasuraConfig);
|
|
446
|
+
},
|
|
447
|
+
inject: ['HasuraConfig'],
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
provide: 'CategoryFilterRepository',
|
|
451
|
+
useExisting: CategoryFilterHasuraGraphQLRepository,
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
provide: CategoryFilterHasuraGraphQLRepository,
|
|
455
|
+
useFactory: (options) => {
|
|
456
|
+
return new CategoryFilterHasuraGraphQLRepository(options);
|
|
457
|
+
},
|
|
458
|
+
inject: ['HasuraConfig'],
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
provide: 'FilterOptionRepository',
|
|
462
|
+
useExisting: FilterOptionHasuraGraphQLRepository,
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
provide: FilterOptionHasuraGraphQLRepository,
|
|
466
|
+
useFactory: (options) => {
|
|
467
|
+
return new FilterOptionHasuraGraphQLRepository(options);
|
|
468
|
+
},
|
|
469
|
+
inject: ['HasuraConfig'],
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
provide: 'FilterRepository',
|
|
473
|
+
useExisting: FilterHasuraGraphQLRepository,
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
provide: FilterHasuraGraphQLRepository,
|
|
477
|
+
useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
|
|
478
|
+
return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
|
|
479
|
+
},
|
|
480
|
+
inject: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
provide: CategoryCollectionChildrenHasuraGraphQLRepository,
|
|
484
|
+
useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
|
|
485
|
+
inject: ['HasuraConfig'],
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
provide: 'CategoryCollectionChildrenRepository',
|
|
489
|
+
useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
provide: WishlistHasuraGraphQLRepository,
|
|
493
|
+
useFactory: (options, categoryFilterRepository) => {
|
|
494
|
+
return new WishlistHasuraGraphQLRepository(options, categoryFilterRepository);
|
|
495
|
+
},
|
|
496
|
+
inject: ['HasuraConfig', CategoryFilterHasuraGraphQLRepository],
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
provide: 'WishlistRepository',
|
|
500
|
+
useExisting: WishlistHasuraGraphQLRepository,
|
|
501
|
+
},
|
|
502
|
+
],
|
|
503
|
+
})
|
|
504
|
+
], NestHasuraGraphQLModule);
|
|
505
|
+
|
|
506
|
+
var NestConnectModule_1;
|
|
507
|
+
let NestConnectModule = NestConnectModule_1 = class NestConnectModule {
|
|
508
|
+
static initializeApp(defaultShop, options) {
|
|
509
|
+
return {
|
|
510
|
+
module: NestConnectModule_1,
|
|
511
|
+
imports: [
|
|
512
|
+
FirebaseModule.forRoot({
|
|
513
|
+
googleApplicationCredential: options.firebase.googleApplicationCredential,
|
|
514
|
+
}),
|
|
515
|
+
],
|
|
516
|
+
};
|
|
517
|
+
}
|
|
518
|
+
};
|
|
519
|
+
NestConnectModule = NestConnectModule_1 = __decorate([
|
|
520
|
+
Module({
|
|
521
|
+
imports: [NestFirestoreModule, NestHasuraGraphQLModule],
|
|
522
|
+
})
|
|
523
|
+
], NestConnectModule);
|
|
524
|
+
|
|
525
|
+
export { ConnectCollectionService, ConnectDocumentService, ConnectFirestoreService, NestConnectModule, NestFirestoreModule, NestHasuraGraphQLModule };
|
package/package.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@infrab4a/connect-nestjs",
|
|
3
|
+
"version": "1.0.0-beta.0",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"registry": "https://registry.npmjs.org"
|
|
6
|
+
},
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/B4AGroup/b4a-firebase-libs"
|
|
10
|
+
},
|
|
11
|
+
"peerDependencies": {
|
|
12
|
+
"@infrab4a/connect": "4.4.0-beta.9",
|
|
13
|
+
"@nestjs/common": "^10.3.3",
|
|
14
|
+
"@nestjs/core": "^10.3.3",
|
|
15
|
+
"firebase-admin": "^12.0.0"
|
|
16
|
+
},
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"nestjs-firebase": "^10.4.0"
|
|
19
|
+
},
|
|
20
|
+
"exports": {
|
|
21
|
+
"./package.json": "./package.json",
|
|
22
|
+
".": {
|
|
23
|
+
"module": "./index.esm.js",
|
|
24
|
+
"import": "./index.cjs.mjs",
|
|
25
|
+
"default": "./index.cjs.js"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"module": "./index.esm.js",
|
|
29
|
+
"main": "./index.cjs.js"
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const HASURA_OPTIONS = "HASURA_OPTIONS";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './hasura-options.const';
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ConnectDocumentData, ConnectDocumentSnapshot, ConnectQuerySnapshot, ConnectSnapshotOptions, ConnectWhereOption } from '@infrab4a/connect';
|
|
2
|
+
import { ConnectDocumentReference } from './connect-document-reference';
|
|
3
|
+
export interface ConnectCollectionReference<T extends ConnectDocumentData> {
|
|
4
|
+
add(data: Partial<T>, id?: string): Promise<ConnectDocumentReference<T>>;
|
|
5
|
+
where(attribute: string, operator: ConnectWhereOption, value: any): ConnectCollectionReference<T>;
|
|
6
|
+
order(attribute: string, order: 'asc' | 'desc'): ConnectCollectionReference<T>;
|
|
7
|
+
limit(quantity: number): ConnectCollectionReference<T>;
|
|
8
|
+
offset(offset: number): ConnectCollectionReference<T>;
|
|
9
|
+
fromStartAt(startAt: number): ConnectCollectionReference<T>;
|
|
10
|
+
fromStartAt(startAt: ConnectDocumentReference<T>): ConnectCollectionReference<T>;
|
|
11
|
+
fromStartAfter(startAt: number): ConnectCollectionReference<T>;
|
|
12
|
+
fromStartAfter(startAt: ConnectDocumentReference<T>): ConnectCollectionReference<T>;
|
|
13
|
+
withConverter(converter: {
|
|
14
|
+
toFirestore: (data: T) => ConnectDocumentData<T>;
|
|
15
|
+
fromFirestore: (snapshot: ConnectDocumentSnapshot<T>, options?: ConnectSnapshotOptions) => T;
|
|
16
|
+
}): ConnectCollectionReference<T>;
|
|
17
|
+
getDoc(id?: string): ConnectDocumentReference<T>;
|
|
18
|
+
getDocs(): Promise<ConnectQuerySnapshot<T>>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Firestore } from 'firebase-admin/firestore';
|
|
2
|
+
import { ConnectDocumentData, ConnectDocumentSnapshot, ConnectQuerySnapshot, ConnectSnapshotOptions, ConnectWhereOption } from '@infrab4a/connect';
|
|
3
|
+
import { ConnectCollectionReference } from './connect-collection-reference';
|
|
4
|
+
import { ConnectDocumentReference } from './connect-document-reference';
|
|
5
|
+
export declare class ConnectCollectionService<T extends ConnectDocumentData> implements ConnectCollectionReference<T> {
|
|
6
|
+
private readonly firestore;
|
|
7
|
+
private reference;
|
|
8
|
+
private query;
|
|
9
|
+
private orderBy;
|
|
10
|
+
private limitBy;
|
|
11
|
+
private offsetBy;
|
|
12
|
+
private statingAt;
|
|
13
|
+
private startingAfter;
|
|
14
|
+
private converter;
|
|
15
|
+
constructor(path: string, firestore: Firestore);
|
|
16
|
+
add(data: T, id?: string): Promise<ConnectDocumentReference<T>>;
|
|
17
|
+
getDocs(): Promise<ConnectQuerySnapshot<T>>;
|
|
18
|
+
getDoc(id?: string): ConnectDocumentReference<T>;
|
|
19
|
+
where(fieldPath: string, opStr: ConnectWhereOption, value: any): ConnectCollectionReference<T>;
|
|
20
|
+
order(attribute: string, order: 'asc' | 'desc'): ConnectCollectionReference<T>;
|
|
21
|
+
limit(quantity: number): ConnectCollectionReference<T>;
|
|
22
|
+
offset(offsetBy: number): ConnectCollectionReference<T>;
|
|
23
|
+
fromStartAt(startingAt: number): ConnectCollectionReference<T>;
|
|
24
|
+
fromStartAt(startingAt: ConnectDocumentReference<T>): ConnectCollectionReference<T>;
|
|
25
|
+
fromStartAfter(startingAt: number): ConnectCollectionReference<T>;
|
|
26
|
+
fromStartAfter(startingAt: ConnectDocumentReference<T>): ConnectCollectionReference<T>;
|
|
27
|
+
withConverter(params: {
|
|
28
|
+
toFirestore: (data: T) => ConnectDocumentData<T>;
|
|
29
|
+
fromFirestore: (snapshot: ConnectDocumentSnapshot<T>, options?: ConnectSnapshotOptions) => T;
|
|
30
|
+
}): ConnectCollectionReference<T>;
|
|
31
|
+
private save;
|
|
32
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ConnectDocumentData, ConnectDocumentSnapshot, ConnectSnapshotOptions } from '@infrab4a/connect';
|
|
2
|
+
export interface ConnectDocumentReference<T extends ConnectDocumentData> {
|
|
3
|
+
get(): Promise<ConnectDocumentSnapshot<T>>;
|
|
4
|
+
getId(): string;
|
|
5
|
+
save(data: T): Promise<ConnectDocumentReference<T>>;
|
|
6
|
+
delete(): Promise<void>;
|
|
7
|
+
withConverter(converter: {
|
|
8
|
+
toFirestore: (data: T) => ConnectDocumentData<T>;
|
|
9
|
+
fromFirestore: (snapshot: ConnectDocumentSnapshot<T>, options?: ConnectSnapshotOptions) => T;
|
|
10
|
+
}): ConnectDocumentReference<T>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ConnectDocumentData, ConnectDocumentSnapshot, ConnectSnapshotOptions } from '@infrab4a/connect';
|
|
2
|
+
import { Firestore } from 'firebase-admin/firestore';
|
|
3
|
+
import { ConnectDocumentReference } from './connect-document-reference';
|
|
4
|
+
export declare class ConnectDocumentService<T extends ConnectDocumentData> implements ConnectDocumentReference<T> {
|
|
5
|
+
private path;
|
|
6
|
+
private firestore;
|
|
7
|
+
private reference;
|
|
8
|
+
constructor(path: string, firestore: Firestore);
|
|
9
|
+
get(): Promise<ConnectDocumentSnapshot<T>>;
|
|
10
|
+
getId(): string;
|
|
11
|
+
save(data: T): Promise<ConnectDocumentReference<T>>;
|
|
12
|
+
delete(): Promise<void>;
|
|
13
|
+
withConverter(params: {
|
|
14
|
+
toFirestore: (data: T) => ConnectDocumentData<T>;
|
|
15
|
+
fromFirestore: (snapshot: ConnectDocumentSnapshot<T>, options?: ConnectSnapshotOptions) => T;
|
|
16
|
+
}): ConnectDocumentReference<T>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ConnectDocumentData } from '@infrab4a/connect';
|
|
2
|
+
import { ConnectCollectionReference } from './connect-collection-reference';
|
|
3
|
+
import { ConnectDocumentReference } from './connect-document-reference';
|
|
4
|
+
export interface ConnectFirestore {
|
|
5
|
+
getCollection<T extends ConnectDocumentData>(path: string): ConnectCollectionReference<T>;
|
|
6
|
+
getDocument<T extends ConnectDocumentData>(path: string): ConnectDocumentReference<T>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Firestore } from 'firebase-admin/firestore';
|
|
2
|
+
import { ConnectDocumentData } from '@infrab4a/connect';
|
|
3
|
+
import { ConnectCollectionReference } from './connect-collection-reference';
|
|
4
|
+
import { ConnectDocumentReference } from './connect-document-reference';
|
|
5
|
+
import { ConnectFirestore } from './connect-firestore';
|
|
6
|
+
export declare class ConnectFirestoreService implements ConnectFirestore {
|
|
7
|
+
private firestore;
|
|
8
|
+
constructor(firestore: Firestore);
|
|
9
|
+
getCollection<T extends ConnectDocumentData>(path: string): ConnectCollectionReference<T>;
|
|
10
|
+
getDocument<T extends ConnectDocumentData>(path: string): ConnectDocumentReference<T>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './connect-collection-reference';
|
|
2
|
+
export * from './connect-collection.service';
|
|
3
|
+
export * from './connect-document-reference';
|
|
4
|
+
export * from './connect-document.service';
|
|
5
|
+
export * from './connect-firestore';
|
|
6
|
+
export * from './connect-firestore.service';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './connect-query-snapshot.type';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ConnectDocumentData, ConnectSnapshotOptions } from '@infrab4a/connect';
|
|
2
|
+
import { DocumentSnapshot } from 'firebase-admin/firestore';
|
|
3
|
+
import { ConnectDocumentSnapshot } from '../types';
|
|
4
|
+
export declare class ConnectBaseDocumentSnapshot<T extends ConnectDocumentData = ConnectDocumentData> implements ConnectDocumentSnapshot<T> {
|
|
5
|
+
private readonly connectDocumentSnapshot;
|
|
6
|
+
id: string;
|
|
7
|
+
exists: boolean;
|
|
8
|
+
constructor(connectDocumentSnapshot: DocumentSnapshot<T>);
|
|
9
|
+
isNotEmpty(): boolean;
|
|
10
|
+
data(options?: ConnectSnapshotOptions): T;
|
|
11
|
+
get(fieldPath: string): any;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './connect-base-document-snapshot.vo';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './firestore';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './firebase';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Shops } from '@infrab4a/connect';
|
|
2
|
+
import { DynamicModule } from '@nestjs/common';
|
|
3
|
+
export declare class NestConnectModule {
|
|
4
|
+
static initializeApp(defaultShop: Shops, options: {
|
|
5
|
+
firebase: {
|
|
6
|
+
googleApplicationCredential: string;
|
|
7
|
+
};
|
|
8
|
+
}): DynamicModule;
|
|
9
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FirestoreConstructorParams } from '@infrab4a/connect';
|
|
2
|
+
import { DynamicModule } from '@nestjs/common';
|
|
3
|
+
export type FirestoreOptions = Pick<FirestoreConstructorParams<any>, 'firestore' | 'interceptors'>;
|
|
4
|
+
export declare class NestFirestoreModule {
|
|
5
|
+
static initializeApp(options: {
|
|
6
|
+
firebase: {
|
|
7
|
+
googleApplicationCredential: string;
|
|
8
|
+
};
|
|
9
|
+
}): DynamicModule;
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HasuraGraphQLAuthOptions } from '@infrab4a/connect';
|
|
2
|
+
import { DynamicModule } from '@nestjs/common';
|
|
3
|
+
export type HasuraGraphQLOptions = {
|
|
4
|
+
endpoint: string;
|
|
5
|
+
credentials: HasuraGraphQLAuthOptions;
|
|
6
|
+
};
|
|
7
|
+
export declare class NestHasuraGraphQLModule {
|
|
8
|
+
static initializeApp(options: {
|
|
9
|
+
endpoint: string;
|
|
10
|
+
credentials: HasuraGraphQLAuthOptions;
|
|
11
|
+
}): DynamicModule;
|
|
12
|
+
}
|