@infrab4a/connect-nestjs 2.9.3 → 2.9.4

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.
Files changed (97) hide show
  1. package/index.cjs.d.ts +1 -0
  2. package/index.cjs.default.js +1 -0
  3. package/index.cjs.js +1417 -0
  4. package/index.cjs.mjs +2 -0
  5. package/index.esm.js +1400 -0
  6. package/package.json +13 -3
  7. package/src/consts/es-config.const.d.ts +1 -0
  8. package/src/consts/hasura-options.const.d.ts +1 -0
  9. package/src/consts/index.d.ts +4 -0
  10. package/src/consts/storage.const.d.ts +1 -0
  11. package/src/consts/vertex-config.const.d.ts +1 -0
  12. package/src/index.d.ts +7 -0
  13. package/src/infra/elasticsearch/adapters/index.d.ts +1 -0
  14. package/src/infra/elasticsearch/adapters/native-elasticsearch-adapter.d.ts +19 -0
  15. package/src/infra/elasticsearch/index.d.ts +1 -0
  16. package/src/infra/firebase/firestore/index.d.ts +2 -0
  17. package/src/infra/firebase/firestore/services/connect-collection-reference.d.ts +19 -0
  18. package/src/infra/firebase/firestore/services/connect-collection.service.d.ts +32 -0
  19. package/src/infra/firebase/firestore/services/connect-document-reference.d.ts +11 -0
  20. package/src/infra/firebase/firestore/services/connect-document.service.d.ts +17 -0
  21. package/src/infra/firebase/firestore/services/connect-firestore.d.ts +7 -0
  22. package/src/infra/firebase/firestore/services/connect-firestore.service.d.ts +8 -0
  23. package/src/infra/firebase/firestore/services/index.d.ts +6 -0
  24. package/src/infra/firebase/firestore/types/connect-query-snapshot.type.d.ts +4 -0
  25. package/src/infra/firebase/firestore/types/index.d.ts +1 -0
  26. package/src/infra/firebase/firestore/vo/connect-base-document-snapshot.vo.d.ts +12 -0
  27. package/src/infra/firebase/firestore/vo/index.d.ts +1 -0
  28. package/src/infra/firebase/index.d.ts +1 -0
  29. package/src/infra/index.d.ts +4 -0
  30. package/src/infra/pagarme/adapters/index.d.ts +3 -0
  31. package/src/infra/pagarme/adapters/pagarme-bank-slip-api.adapter.d.ts +9 -0
  32. package/src/infra/pagarme/adapters/pagarme-card-api.adapter.d.ts +21 -0
  33. package/src/infra/pagarme/adapters/pagarme-pix-api.adapter.d.ts +8 -0
  34. package/src/infra/pagarme/index.d.ts +1 -0
  35. package/src/infra/vertex-ai/adapters/discovery-engine-adapter.d.ts +17 -0
  36. package/src/infra/vertex-ai/adapters/index.d.ts +1 -0
  37. package/src/infra/vertex-ai/helpers/index.d.ts +1 -0
  38. package/src/infra/vertex-ai/helpers/product-vertex-ai.helper.d.ts +7 -0
  39. package/src/infra/vertex-ai/index.d.ts +3 -0
  40. package/src/infra/vertex-ai/types/index.d.ts +2 -0
  41. package/src/infra/vertex-ai/types/vertex-config.d.ts +9 -0
  42. package/src/infra/vertex-ai/types/vertex-search-result.d.ts +18 -0
  43. package/src/nest-connect.module.d.ts +13 -0
  44. package/src/nest-elastic-search.module.d.ts +5 -0
  45. package/src/nest-firestore.module.d.ts +10 -0
  46. package/src/nest-hasura-graphql.module.d.ts +13 -0
  47. package/src/nest-storage.module.d.ts +2 -0
  48. package/src/nest-vertex-ai-search.module.d.ts +5 -0
  49. package/eslint.config.js +0 -17
  50. package/project.json +0 -45
  51. package/src/consts/es-config.const.ts +0 -1
  52. package/src/consts/hasura-options.const.ts +0 -1
  53. package/src/consts/index.ts +0 -4
  54. package/src/consts/storage.const.ts +0 -1
  55. package/src/consts/vertex-config.const.ts +0 -1
  56. package/src/index.ts +0 -7
  57. package/src/infra/elasticsearch/adapters/index.ts +0 -1
  58. package/src/infra/elasticsearch/adapters/native-elasticsearch-adapter.ts +0 -137
  59. package/src/infra/elasticsearch/index.ts +0 -1
  60. package/src/infra/firebase/firestore/index.ts +0 -2
  61. package/src/infra/firebase/firestore/services/connect-collection-reference.ts +0 -27
  62. package/src/infra/firebase/firestore/services/connect-collection.service.ts +0 -137
  63. package/src/infra/firebase/firestore/services/connect-document-reference.ts +0 -12
  64. package/src/infra/firebase/firestore/services/connect-document.service.ts +0 -51
  65. package/src/infra/firebase/firestore/services/connect-firestore.service.ts +0 -24
  66. package/src/infra/firebase/firestore/services/connect-firestore.ts +0 -9
  67. package/src/infra/firebase/firestore/services/index.ts +0 -6
  68. package/src/infra/firebase/firestore/types/connect-query-snapshot.type.ts +0 -6
  69. package/src/infra/firebase/firestore/types/index.ts +0 -1
  70. package/src/infra/firebase/firestore/vo/connect-base-document-snapshot.vo.ts +0 -27
  71. package/src/infra/firebase/firestore/vo/index.ts +0 -1
  72. package/src/infra/firebase/index.ts +0 -1
  73. package/src/infra/index.ts +0 -4
  74. package/src/infra/pagarme/adapters/index.ts +0 -3
  75. package/src/infra/pagarme/adapters/pagarme-bank-slip-api.adapter.ts +0 -97
  76. package/src/infra/pagarme/adapters/pagarme-card-api.adapter.ts +0 -221
  77. package/src/infra/pagarme/adapters/pagarme-pix-api.adapter.ts +0 -70
  78. package/src/infra/pagarme/index.ts +0 -1
  79. package/src/infra/vertex-ai/adapters/discovery-engine-adapter.ts +0 -146
  80. package/src/infra/vertex-ai/adapters/index.ts +0 -1
  81. package/src/infra/vertex-ai/helpers/index.ts +0 -1
  82. package/src/infra/vertex-ai/helpers/product-vertex-ai.helper.ts +0 -52
  83. package/src/infra/vertex-ai/index.ts +0 -3
  84. package/src/infra/vertex-ai/types/index.ts +0 -2
  85. package/src/infra/vertex-ai/types/vertex-config.ts +0 -9
  86. package/src/infra/vertex-ai/types/vertex-search-result.ts +0 -17
  87. package/src/nest-connect.module.ts +0 -36
  88. package/src/nest-elastic-search.module.ts +0 -26
  89. package/src/nest-firestore.module.ts +0 -413
  90. package/src/nest-hasura-graphql.module.ts +0 -285
  91. package/src/nest-storage.module.ts +0 -16
  92. package/src/nest-vertex-ai-search.module.ts +0 -26
  93. package/src/types/pagarme.d.ts +0 -24
  94. package/tsconfig.json +0 -15
  95. package/tsconfig.lib.json +0 -7
  96. package/tsconfig.lib.prod.json +0 -10
  97. package/tsconfig.spec.json +0 -17
@@ -1,413 +0,0 @@
1
- import {
2
- BeautyProfileRepository,
3
- BrandCategoryFirestoreRepository,
4
- BrandCategoryRepository,
5
- Buy2WinFirestoreRepository,
6
- Buy2WinRepository,
7
- CampaignDashboardFirestoreRepository,
8
- CampaignDashboardRepository,
9
- CampaignHashtagFirestoreRepository,
10
- CampaignHashtagRepository,
11
- CategoryFirestoreRepository,
12
- CategoryRepository,
13
- CheckoutFirestoreRepository,
14
- CheckoutRepository,
15
- CheckoutSubscriptionFirestoreRepository,
16
- CheckoutSubscriptionRepository,
17
- CouponFirestoreRepository,
18
- CouponRepository,
19
- EditionRepository,
20
- FirestoreConstructorParams,
21
- GroupFirestoreRepository,
22
- GroupRepository,
23
- HomeFirestoreRepository,
24
- HomeRepository,
25
- LeadFirestoreRepository,
26
- LeadRepository,
27
- LegacyOrderFirestoreRepository,
28
- LegacyOrderRepository,
29
- LogFirestoreRepository,
30
- LogRepository,
31
- OrderBlockedFirestoreRepository,
32
- OrderBlockedRepository,
33
- OrderFirestoreRepository,
34
- OrderRepository,
35
- PaymentFirestoreRepository,
36
- PaymentRepository,
37
- ProductFirestoreRepository,
38
- ProductRepository,
39
- ProductVariantFirestoreRepository,
40
- SequenceFirestoreRepository,
41
- ShopConfigsFirestoreRepository,
42
- ShopConfigsRepository,
43
- ShopMenuFirestoreRepository,
44
- ShopMenuRepository,
45
- ShoppingRecurrenceEditionFirestoreRepository,
46
- ShoppingRecurrenceEditionRepository,
47
- ShoppingRecurrenceErrorLogFirestoreRepository,
48
- ShoppingRecurrenceErrorLogRepository,
49
- ShoppingRecurrenceFirestoreRepository,
50
- ShoppingRecurrenceRepository,
51
- ShopSettingsFirestoreRepository,
52
- ShopSettingsRepository,
53
- SubscriptionEditionFirestoreRepository,
54
- SubscriptionFirestoreRepository,
55
- SubscriptionMaterializationFirestoreRepository,
56
- SubscriptionMaterializationRepository,
57
- SubscriptionPaymentFirestoreRepository,
58
- SubscriptionPaymentRepository,
59
- SubscriptionPlanFirestoreRepository,
60
- SubscriptionPlanRepository,
61
- SubscriptionProductFirestoreRepository,
62
- SubscriptionProductRepository,
63
- SubscriptionRepository,
64
- SubscriptionSummaryFirestoreRepository,
65
- SubscriptionSummaryRepository,
66
- UserAddressFirestoreRepository,
67
- UserAddressRepository,
68
- UserBeautyProfileFirestoreRepository,
69
- UserFirestoreRepository,
70
- UserPaymentMethodFirestoreRepository,
71
- UserPaymentMethodRepository,
72
- UserRepository,
73
- VariantRepository,
74
- } from '@infrab4a/connect'
75
- import { DynamicModule, Module } from '@nestjs/common'
76
- import { FirebaseAdmin, FirebaseConstants, FirebaseModule } from 'nestjs-firebase'
77
-
78
- import { ConnectFirestoreService } from './infra'
79
- import { NestStorageModule } from './nest-storage.module'
80
-
81
- export type FirestoreOptions = Pick<FirestoreConstructorParams<any>, 'firestore' | 'interceptors'>
82
-
83
- @Module({
84
- providers: [
85
- {
86
- provide: ConnectFirestoreService,
87
- useFactory: (firebaseAdmin: FirebaseAdmin) => new ConnectFirestoreService(firebaseAdmin.firestore),
88
- inject: [FirebaseConstants.FIREBASE_TOKEN],
89
- },
90
- {
91
- provide: 'FirestoreOptions',
92
- useFactory: (connectFirestoreService: ConnectFirestoreService): FirestoreOptions => ({
93
- firestore: connectFirestoreService,
94
- }),
95
- inject: [ConnectFirestoreService],
96
- },
97
- {
98
- provide: 'BeautyProfileRepository',
99
- useFactory: (config: FirestoreOptions, userRepository: UserFirestoreRepository): BeautyProfileRepository => {
100
- return new UserBeautyProfileFirestoreRepository(config, userRepository)
101
- },
102
- inject: ['FirestoreOptions', 'UserRepository'],
103
- },
104
- {
105
- provide: 'Buy2WinRepository',
106
- useFactory: (options: FirestoreOptions): Buy2WinRepository => {
107
- return new Buy2WinFirestoreRepository(options)
108
- },
109
- inject: ['FirestoreOptions'],
110
- },
111
- {
112
- provide: CategoryFirestoreRepository,
113
- useFactory: (options: FirestoreOptions): CategoryRepository => {
114
- return new CategoryFirestoreRepository(options)
115
- },
116
- inject: ['FirestoreOptions'],
117
- },
118
- {
119
- provide: 'CheckoutRepository',
120
- useFactory: (options: FirestoreOptions): CheckoutRepository => {
121
- return new CheckoutFirestoreRepository(options)
122
- },
123
- inject: ['FirestoreOptions'],
124
- },
125
- {
126
- provide: 'CheckoutSubscriptionRepository',
127
- useFactory: (options: FirestoreOptions): CheckoutSubscriptionRepository => {
128
- return new CheckoutSubscriptionFirestoreRepository(options)
129
- },
130
- inject: ['FirestoreOptions'],
131
- },
132
- {
133
- provide: 'CouponRepository',
134
- useFactory: (options: FirestoreOptions): CouponRepository => {
135
- return new CouponFirestoreRepository(options)
136
- },
137
- inject: ['FirestoreOptions'],
138
- },
139
- {
140
- provide: 'CampaignHashtagRepository',
141
- useFactory: (options: FirestoreOptions): CampaignHashtagRepository => {
142
- return new CampaignHashtagFirestoreRepository(options)
143
- },
144
- inject: ['FirestoreOptions'],
145
- },
146
- {
147
- provide: 'CampaignDashboardRepository',
148
- useFactory: (options: FirestoreOptions): CampaignDashboardRepository => {
149
- return new CampaignDashboardFirestoreRepository(options)
150
- },
151
- inject: ['FirestoreOptions'],
152
- },
153
- {
154
- provide: 'EditionRepository',
155
- useFactory: (
156
- options: FirestoreOptions,
157
- subscriptionRepository: SubscriptionFirestoreRepository,
158
- ): EditionRepository => {
159
- return new SubscriptionEditionFirestoreRepository(options, subscriptionRepository)
160
- },
161
- inject: ['FirestoreOptions', 'SubscriptionRepository'],
162
- },
163
- {
164
- provide: 'GroupRepository',
165
- useFactory: (options: FirestoreOptions): GroupRepository => {
166
- return new GroupFirestoreRepository(options)
167
- },
168
- inject: ['FirestoreOptions'],
169
- },
170
- {
171
- provide: 'HomeRepository',
172
- useFactory: (options: FirestoreOptions): HomeRepository => {
173
- return new HomeFirestoreRepository(options)
174
- },
175
- inject: ['FirestoreOptions'],
176
- },
177
- {
178
- provide: 'LeadRepository',
179
- useFactory: (options: FirestoreOptions): LeadRepository => {
180
- return new LeadFirestoreRepository(options)
181
- },
182
- inject: ['FirestoreOptions'],
183
- },
184
- {
185
- provide: 'LegacyOrderRepository',
186
- useFactory: (options: FirestoreOptions): LegacyOrderRepository => {
187
- return new LegacyOrderFirestoreRepository(options)
188
- },
189
- inject: ['FirestoreOptions'],
190
- },
191
- {
192
- provide: 'ShopMenuRepository',
193
- useFactory: (options: FirestoreOptions): ShopMenuRepository => {
194
- return new ShopMenuFirestoreRepository(options)
195
- },
196
- inject: ['FirestoreOptions'],
197
- },
198
- {
199
- provide: 'OrderRepository',
200
- useFactory: (options: FirestoreOptions): OrderRepository => {
201
- return new OrderFirestoreRepository(options)
202
- },
203
- inject: ['FirestoreOptions'],
204
- },
205
- {
206
- provide: 'PaymentRepository',
207
- useFactory: (options: FirestoreOptions): PaymentRepository => {
208
- return new PaymentFirestoreRepository(options)
209
- },
210
- inject: ['FirestoreOptions'],
211
- },
212
- {
213
- provide: 'ShoppingRecurrenceRepository',
214
- useFactory: (options: FirestoreOptions): ShoppingRecurrenceRepository => {
215
- return new ShoppingRecurrenceFirestoreRepository(options)
216
- },
217
- inject: ['FirestoreOptions'],
218
- },
219
- {
220
- provide: 'ShoppingRecurrenceEditionRepository',
221
- useFactory: (options: FirestoreOptions): ShoppingRecurrenceEditionRepository => {
222
- return new ShoppingRecurrenceEditionFirestoreRepository(options)
223
- },
224
- inject: ['FirestoreOptions'],
225
- },
226
- {
227
- provide: 'ShoppingRecurrenceErrorLogRepository',
228
- useFactory: (options: FirestoreOptions): ShoppingRecurrenceErrorLogRepository => {
229
- return new ShoppingRecurrenceErrorLogFirestoreRepository(options)
230
- },
231
- inject: ['FirestoreOptions'],
232
- },
233
- {
234
- provide: ProductFirestoreRepository,
235
- useFactory: (options: FirestoreOptions): ProductRepository => {
236
- return new ProductFirestoreRepository(options)
237
- },
238
- inject: ['FirestoreOptions'],
239
- },
240
- {
241
- provide: 'ShopSettingsRepository',
242
- useFactory: (options: FirestoreOptions): ShopSettingsRepository => {
243
- return new ShopSettingsFirestoreRepository(options)
244
- },
245
- inject: ['FirestoreOptions'],
246
- },
247
- {
248
- provide: 'SubscriptionPaymentRepository',
249
- useFactory: (
250
- options: FirestoreOptions,
251
- subscriptionRepository: SubscriptionFirestoreRepository,
252
- ): SubscriptionPaymentRepository => {
253
- return new SubscriptionPaymentFirestoreRepository(options, subscriptionRepository)
254
- },
255
- inject: ['FirestoreOptions', 'SubscriptionRepository'],
256
- },
257
- {
258
- provide: 'SubscriptionPlanRepository',
259
- useFactory: (options: FirestoreOptions): SubscriptionPlanRepository => {
260
- return new SubscriptionPlanFirestoreRepository(options)
261
- },
262
- inject: ['FirestoreOptions'],
263
- },
264
- {
265
- provide: 'SubscriptionProductRepository',
266
- useFactory: (options: FirestoreOptions): SubscriptionProductRepository => {
267
- return new SubscriptionProductFirestoreRepository(options)
268
- },
269
- inject: ['FirestoreOptions'],
270
- },
271
- {
272
- provide: 'SubscriptionRepository',
273
- useFactory: (options: FirestoreOptions): SubscriptionRepository => {
274
- return new SubscriptionFirestoreRepository(options)
275
- },
276
- inject: ['FirestoreOptions'],
277
- },
278
- {
279
- provide: 'UserRepository',
280
- useFactory: (options: FirestoreOptions): UserRepository => {
281
- return new UserFirestoreRepository(options)
282
- },
283
- inject: ['FirestoreOptions'],
284
- },
285
- {
286
- provide: 'UserAddressRepository',
287
- useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserAddressRepository => {
288
- return new UserAddressFirestoreRepository(options, userRepository)
289
- },
290
- inject: ['FirestoreOptions', 'UserRepository'],
291
- },
292
- {
293
- provide: 'UserPaymentMethodRepository',
294
- useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserPaymentMethodRepository => {
295
- return new UserPaymentMethodFirestoreRepository(options, userRepository)
296
- },
297
- inject: ['FirestoreOptions', 'UserRepository'],
298
- },
299
- {
300
- provide: 'SubscriptionMaterializationRepository',
301
- useFactory: (options: FirestoreOptions): SubscriptionMaterializationRepository => {
302
- return new SubscriptionMaterializationFirestoreRepository(options)
303
- },
304
- inject: ['FirestoreOptions'],
305
- },
306
- {
307
- provide: 'SubscriptionSummaryRepository',
308
- useFactory: (options: FirestoreOptions): SubscriptionSummaryRepository => {
309
- return new SubscriptionSummaryFirestoreRepository(options)
310
- },
311
- inject: ['FirestoreOptions'],
312
- },
313
- {
314
- provide: ProductVariantFirestoreRepository,
315
- useFactory: (options: FirestoreOptions, productRepository: ProductFirestoreRepository): VariantRepository => {
316
- return new ProductVariantFirestoreRepository(options, productRepository)
317
- },
318
- inject: ['FirestoreOptions', ProductFirestoreRepository],
319
- },
320
- {
321
- provide: 'OrderBlockedRepository',
322
- useFactory: (options: FirestoreOptions): OrderBlockedRepository => {
323
- return new OrderBlockedFirestoreRepository(options)
324
- },
325
- inject: ['FirestoreOptions'],
326
- },
327
- {
328
- provide: 'LogRepository',
329
- useFactory: (options: FirestoreOptions): LogRepository => {
330
- return new LogFirestoreRepository(options)
331
- },
332
- inject: ['FirestoreOptions'],
333
- },
334
- {
335
- provide: 'SequenceRepository',
336
- useFactory: (options: FirestoreOptions): SequenceFirestoreRepository => {
337
- return new SequenceFirestoreRepository(options)
338
- },
339
- inject: ['FirestoreOptions'],
340
- },
341
- {
342
- provide: 'BrandCategoryRepository',
343
- useFactory: (options: FirestoreOptions): BrandCategoryRepository => {
344
- return new BrandCategoryFirestoreRepository(options)
345
- },
346
- inject: ['FirestoreOptions'],
347
- },
348
- {
349
- provide: 'ShopConfigsRepository',
350
- useFactory: (options: FirestoreOptions): ShopConfigsRepository => {
351
- return new ShopConfigsFirestoreRepository(options)
352
- },
353
- inject: ['FirestoreOptions'],
354
- },
355
- ],
356
- exports: [
357
- 'BeautyProfileRepository',
358
- 'Buy2WinRepository',
359
- CategoryFirestoreRepository,
360
- 'CheckoutRepository',
361
- 'CheckoutSubscriptionRepository',
362
- 'CouponRepository',
363
- 'CampaignHashtagRepository',
364
- 'CampaignDashboardRepository',
365
- 'EditionRepository',
366
- 'GroupRepository',
367
- 'HomeRepository',
368
- 'LeadRepository',
369
- 'LegacyOrderRepository',
370
- 'ShopMenuRepository',
371
- 'OrderRepository',
372
- 'OrderBlockedRepository',
373
- 'PaymentRepository',
374
- 'ShoppingRecurrenceRepository',
375
- 'ShoppingRecurrenceEditionRepository',
376
- 'ShoppingRecurrenceErrorLogRepository',
377
- 'SequenceRepository',
378
- 'LogRepository',
379
- ProductFirestoreRepository,
380
- 'ShopSettingsRepository',
381
- 'SubscriptionPaymentRepository',
382
- 'SubscriptionPlanRepository',
383
- 'SubscriptionProductRepository',
384
- 'SubscriptionRepository',
385
- 'UserRepository',
386
- 'UserAddressRepository',
387
- 'UserPaymentMethodRepository',
388
- 'SubscriptionMaterializationRepository',
389
- 'SubscriptionSummaryRepository',
390
- ProductVariantFirestoreRepository,
391
- ConnectFirestoreService,
392
- 'BrandCategoryRepository',
393
- 'ShopConfigsRepository',
394
- ],
395
- })
396
- export class NestFirestoreModule {
397
- public static initializeApp(options: {
398
- firebase: {
399
- googleApplicationCredential: string
400
- }
401
- }): DynamicModule {
402
- return {
403
- module: NestFirestoreModule,
404
- imports: [
405
- FirebaseModule.forRoot({
406
- googleApplicationCredential: options?.firebase?.googleApplicationCredential,
407
- }),
408
- NestStorageModule,
409
- ],
410
- exports: [FirebaseModule, NestStorageModule],
411
- }
412
- }
413
- }
@@ -1,285 +0,0 @@
1
- import {
2
- CacheConfig,
3
- CategoryCollectionChildrenHasuraGraphQLRepository,
4
- CategoryFilterHasuraGraphQLRepository,
5
- CategoryFilterRepository,
6
- CategoryHasuraGraphQLRepository,
7
- CategoryProductHasuraGraphQLRepository,
8
- CategoryRepository,
9
- FilterHasuraGraphQLRepository,
10
- FilterOptionHasuraGraphQLRepository,
11
- FilterOptionRepository,
12
- FilterRepository,
13
- HasuraConstructorParams,
14
- HasuraGraphQLAuthOptions,
15
- ProductCatalogHasuraGraphQLRepository,
16
- ProductErrors,
17
- ProductErrorsHasuraGraphQLRepository,
18
- ProductErrorsRepository,
19
- ProductGroupHasuraGraphQLRepository,
20
- ProductHasuraGraphQLRepository,
21
- ProductPriceLogHasuraGraphQLRepository,
22
- ProductRepository,
23
- ProductReviewHasuraGraphQLRepository,
24
- ProductReviewRepository,
25
- ProductStockEntryHasuraGraphQLRepository,
26
- ProductStockEntryRepository,
27
- ProductStockNotificationHasuraGraphQLRepository,
28
- ProductStockNotificationRepository,
29
- resolveCacheConfig,
30
- VariantHasuraGraphQLRepository,
31
- VariantRepository,
32
- WishlistHasuraGraphQLRepository,
33
- } from '@infrab4a/connect'
34
- import { DynamicModule, Module } from '@nestjs/common'
35
-
36
- import { HASURA_OPTIONS } from './consts'
37
-
38
- export type HasuraGraphQLOptions = { endpoint: string; credentials: HasuraGraphQLAuthOptions; cache?: CacheConfig }
39
-
40
- @Module({
41
- providers: [
42
- {
43
- provide: 'HasuraConfig',
44
- useFactory: (options: HasuraGraphQLOptions) => ({
45
- endpoint: options.endpoint,
46
- authOptions: options.credentials,
47
- cache: resolveCacheConfig(options.cache),
48
- }),
49
- inject: [HASURA_OPTIONS],
50
- },
51
- {
52
- provide: 'CategoryRepository',
53
- useExisting: CategoryHasuraGraphQLRepository,
54
- },
55
- {
56
- provide: CategoryHasuraGraphQLRepository,
57
- useFactory: (
58
- options: any,
59
- productRepository: ProductHasuraGraphQLRepository,
60
- categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,
61
- ): CategoryRepository => {
62
- return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository)
63
- },
64
- inject: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
65
- },
66
- {
67
- provide: 'ProductRepository',
68
- useExisting: ProductHasuraGraphQLRepository,
69
- },
70
- {
71
- provide: ProductHasuraGraphQLRepository,
72
- useFactory: (hasuraConfig: any): ProductRepository => {
73
- return new ProductHasuraGraphQLRepository(hasuraConfig)
74
- },
75
- inject: ['HasuraConfig'],
76
- },
77
- {
78
- provide: 'ProductReviewRepository',
79
- useExisting: ProductReviewHasuraGraphQLRepository,
80
- },
81
- {
82
- provide: ProductReviewHasuraGraphQLRepository,
83
- useFactory: (hasuraConfig: any): ProductReviewRepository => {
84
- return new ProductReviewHasuraGraphQLRepository(hasuraConfig)
85
- },
86
- inject: ['HasuraConfig'],
87
- },
88
- {
89
- provide: 'VariantRepository',
90
- useExisting: VariantHasuraGraphQLRepository,
91
- },
92
- {
93
- provide: VariantHasuraGraphQLRepository,
94
- useFactory: (hasuraConfig: any): VariantRepository => {
95
- return new VariantHasuraGraphQLRepository(hasuraConfig)
96
- },
97
- inject: ['HasuraConfig'],
98
- },
99
- {
100
- provide: 'ProductStockNotificationRepository',
101
- useExisting: ProductStockNotificationHasuraGraphQLRepository,
102
- },
103
- {
104
- provide: ProductStockNotificationHasuraGraphQLRepository,
105
- useFactory: (hasuraConfig: any): ProductStockNotificationRepository => {
106
- return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig)
107
- },
108
- inject: ['HasuraConfig'],
109
- },
110
- {
111
- provide: 'CategoryFilterRepository',
112
- useExisting: CategoryFilterHasuraGraphQLRepository,
113
- },
114
- {
115
- provide: CategoryFilterHasuraGraphQLRepository,
116
- useFactory: (options: any): CategoryFilterRepository => {
117
- return new CategoryFilterHasuraGraphQLRepository(options)
118
- },
119
- inject: ['HasuraConfig'],
120
- },
121
-
122
- {
123
- provide: 'FilterOptionRepository',
124
- useExisting: FilterOptionHasuraGraphQLRepository,
125
- },
126
- {
127
- provide: FilterOptionHasuraGraphQLRepository,
128
- useFactory: (options: any): FilterOptionRepository => {
129
- return new FilterOptionHasuraGraphQLRepository(options)
130
- },
131
- inject: ['HasuraConfig'],
132
- },
133
- {
134
- provide: 'FilterRepository',
135
- useExisting: FilterHasuraGraphQLRepository,
136
- },
137
- {
138
- provide: FilterHasuraGraphQLRepository,
139
- useFactory: (
140
- options: any,
141
- filterOptionRepository: FilterOptionHasuraGraphQLRepository,
142
- categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,
143
- ): FilterRepository => {
144
- return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository)
145
- },
146
- inject: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
147
- },
148
- {
149
- provide: CategoryCollectionChildrenHasuraGraphQLRepository,
150
- useFactory: (options: any): CategoryCollectionChildrenHasuraGraphQLRepository =>
151
- new CategoryCollectionChildrenHasuraGraphQLRepository(options),
152
- inject: ['HasuraConfig'],
153
- },
154
- {
155
- provide: 'CategoryCollectionChildrenRepository',
156
- useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
157
- },
158
- {
159
- provide: CategoryProductHasuraGraphQLRepository,
160
- useFactory: (options: any): CategoryProductHasuraGraphQLRepository => {
161
- return new CategoryProductHasuraGraphQLRepository(options)
162
- },
163
- inject: ['HasuraConfig'],
164
- },
165
- {
166
- provide: 'CategoryProductRepository',
167
- useExisting: CategoryProductHasuraGraphQLRepository,
168
- },
169
- {
170
- provide: WishlistHasuraGraphQLRepository,
171
- useFactory: (
172
- options: any,
173
- categoryProductRepository: CategoryProductHasuraGraphQLRepository,
174
- ): WishlistHasuraGraphQLRepository => {
175
- return new WishlistHasuraGraphQLRepository(options, categoryProductRepository)
176
- },
177
- inject: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],
178
- },
179
- {
180
- provide: 'WishlistRepository',
181
- useExisting: WishlistHasuraGraphQLRepository,
182
- },
183
- {
184
- provide: ProductErrorsHasuraGraphQLRepository,
185
- useFactory: (
186
- options: HasuraConstructorParams<ProductErrors>,
187
- productRepository: ProductHasuraGraphQLRepository,
188
- ): ProductErrorsRepository => {
189
- return new ProductErrorsHasuraGraphQLRepository(options, productRepository)
190
- },
191
- inject: ['HasuraConfig', ProductHasuraGraphQLRepository],
192
- },
193
- {
194
- provide: 'ProductErrorsRepository',
195
- useExisting: ProductErrorsHasuraGraphQLRepository,
196
- },
197
- {
198
- provide: ProductCatalogHasuraGraphQLRepository,
199
- useFactory: (options: any): ProductCatalogHasuraGraphQLRepository => {
200
- return new ProductCatalogHasuraGraphQLRepository(options)
201
- },
202
- inject: ['HasuraConfig'],
203
- },
204
- {
205
- provide: 'ProductCatalogRepository',
206
- useExisting: ProductCatalogHasuraGraphQLRepository,
207
- },
208
- {
209
- provide: ProductStockEntryHasuraGraphQLRepository,
210
- useFactory: (options: any): ProductStockEntryRepository => {
211
- return new ProductStockEntryHasuraGraphQLRepository(options)
212
- },
213
- inject: ['HasuraConfig'],
214
- },
215
- {
216
- provide: 'ProductStockEntryRepository',
217
- useExisting: ProductStockEntryHasuraGraphQLRepository,
218
- },
219
- {
220
- provide: ProductGroupHasuraGraphQLRepository,
221
- useFactory: (options: any): ProductGroupHasuraGraphQLRepository => {
222
- return new ProductGroupHasuraGraphQLRepository(options)
223
- },
224
- inject: ['HasuraConfig'],
225
- },
226
- {
227
- provide: 'ProductGroupRepository',
228
- useExisting: ProductGroupHasuraGraphQLRepository,
229
- },
230
- {
231
- provide: ProductPriceLogHasuraGraphQLRepository,
232
- useFactory: (options: any): ProductPriceLogHasuraGraphQLRepository => {
233
- return new ProductPriceLogHasuraGraphQLRepository(options)
234
- },
235
- inject: ['HasuraConfig'],
236
- },
237
- {
238
- provide: 'ProductPriceLogRepository',
239
- useExisting: ProductPriceLogHasuraGraphQLRepository,
240
- },
241
- ],
242
- exports: [
243
- 'CategoryRepository',
244
- CategoryHasuraGraphQLRepository,
245
- 'ProductRepository',
246
- ProductHasuraGraphQLRepository,
247
- 'ProductReviewRepository',
248
- ProductReviewHasuraGraphQLRepository,
249
- 'VariantRepository',
250
- VariantHasuraGraphQLRepository,
251
- 'ProductStockNotificationRepository',
252
- ProductStockNotificationHasuraGraphQLRepository,
253
- 'CategoryFilterRepository',
254
- CategoryFilterHasuraGraphQLRepository,
255
- 'FilterOptionRepository',
256
- FilterOptionHasuraGraphQLRepository,
257
- 'FilterRepository',
258
- FilterHasuraGraphQLRepository,
259
- 'CategoryCollectionChildrenRepository',
260
- CategoryCollectionChildrenHasuraGraphQLRepository,
261
- 'WishlistRepository',
262
- WishlistHasuraGraphQLRepository,
263
- 'CategoryProductRepository',
264
- CategoryProductHasuraGraphQLRepository,
265
- 'ProductErrorsRepository',
266
- ProductErrorsHasuraGraphQLRepository,
267
- 'ProductCatalogRepository',
268
- ProductCatalogHasuraGraphQLRepository,
269
- 'ProductStockEntryRepository',
270
- ProductStockEntryHasuraGraphQLRepository,
271
- 'ProductGroupRepository',
272
- ProductGroupHasuraGraphQLRepository,
273
- 'ProductPriceLogRepository',
274
- ProductPriceLogHasuraGraphQLRepository,
275
- ],
276
- })
277
- export class NestHasuraGraphQLModule {
278
- public static initializeApp(options: { endpoint: string; credentials: HasuraGraphQLAuthOptions }): DynamicModule {
279
- return {
280
- module: NestHasuraGraphQLModule,
281
- providers: [{ provide: HASURA_OPTIONS, useValue: options }],
282
- exports: [HASURA_OPTIONS],
283
- }
284
- }
285
- }