@nathapp/nestjs-notification 2.2.0 → 3.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.
Files changed (92) hide show
  1. package/CLAUDE.md +21 -0
  2. package/dist/email/email.interface.d.ts +1 -1
  3. package/dist/email/email.provider.d.ts +2 -2
  4. package/dist/email/email.provider.js +7 -5
  5. package/dist/email/email.provider.js.map +1 -1
  6. package/dist/email/index.d.ts +1 -3
  7. package/dist/email/index.js +1 -6
  8. package/dist/email/index.js.map +1 -1
  9. package/dist/index.d.ts +4 -4
  10. package/dist/index.js +9 -8
  11. package/dist/index.js.map +1 -1
  12. package/dist/interface/index.d.ts +1 -1
  13. package/dist/interface/message.interface.d.ts +1 -2
  14. package/dist/interface/{payload.inteface.d.ts → payload.interface.d.ts} +3 -5
  15. package/dist/interface/{payload.inteface.js → payload.interface.js} +1 -1
  16. package/dist/interface/payload.interface.js.map +1 -0
  17. package/dist/interface/result.interface.d.ts +2 -1
  18. package/dist/notification/notification-provider.factory.js +2 -2
  19. package/dist/notification/notification-provider.factory.js.map +1 -1
  20. package/dist/notification/notification.module.d.ts +1 -1
  21. package/dist/notification/notification.module.js +33 -21
  22. package/dist/notification/notification.module.js.map +1 -1
  23. package/dist/notification/notification.service.js +5 -5
  24. package/dist/notification/notification.service.js.map +1 -1
  25. package/dist/notification/provider-config.d.ts +4 -4
  26. package/dist/push-notification/fcm-push-notification.provider.d.ts +3 -0
  27. package/dist/push-notification/fcm-push-notification.provider.js +17 -2
  28. package/dist/push-notification/fcm-push-notification.provider.js.map +1 -1
  29. package/dist/push-notification/firebase.interface.d.ts +1 -0
  30. package/dist/push-notification/index.d.ts +1 -4
  31. package/dist/push-notification/index.js +1 -5
  32. package/dist/push-notification/index.js.map +1 -1
  33. package/dist/push-notification/push-notification-provider.manager.d.ts +8 -3
  34. package/dist/push-notification/push-notification-provider.manager.js +12 -3
  35. package/dist/push-notification/push-notification-provider.manager.js.map +1 -1
  36. package/dist/push-notification/push-notification.provider.d.ts +1 -0
  37. package/dist/push-notification/push-notification.provider.js.map +1 -1
  38. package/dist/push-notification/push-notification.service.js +1 -1
  39. package/dist/push-notification/push-notification.service.js.map +1 -1
  40. package/dist/push-notification/user-token.store.js +7 -7
  41. package/dist/push-notification/user-token.store.js.map +1 -1
  42. package/dist/sms/constant.d.ts +1 -0
  43. package/dist/sms/constant.js +5 -0
  44. package/dist/sms/constant.js.map +1 -0
  45. package/dist/sms/index.d.ts +3 -2
  46. package/dist/sms/index.js +6 -2
  47. package/dist/sms/index.js.map +1 -1
  48. package/dist/sms/sms.provider.d.ts +9 -0
  49. package/dist/sms/sms.provider.js +7 -0
  50. package/dist/sms/sms.provider.js.map +1 -0
  51. package/dist/sms/sms.service.d.ts +8 -7
  52. package/dist/sms/sms.service.js +30 -2
  53. package/dist/sms/sms.service.js.map +1 -1
  54. package/dist/template/fake-template.loader.js +14 -18
  55. package/dist/template/fake-template.loader.js.map +1 -1
  56. package/dist/whatsapp/constant.d.ts +1 -0
  57. package/dist/whatsapp/constant.js +2 -1
  58. package/dist/whatsapp/constant.js.map +1 -1
  59. package/dist/whatsapp/index.d.ts +3 -2
  60. package/dist/whatsapp/index.js +8 -16
  61. package/dist/whatsapp/index.js.map +1 -1
  62. package/dist/whatsapp/whatsapp.provider.d.ts +9 -0
  63. package/dist/whatsapp/whatsapp.provider.js +7 -0
  64. package/dist/whatsapp/whatsapp.provider.js.map +1 -0
  65. package/dist/whatsapp/whatsapp.service.d.ts +7 -5
  66. package/dist/whatsapp/whatsapp.service.js +30 -2
  67. package/dist/whatsapp/whatsapp.service.js.map +1 -1
  68. package/docs/20260214-fix-plan-notification.md +149 -0
  69. package/docs/20260214-fix-plan-post-refactor.md +118 -0
  70. package/docs/20260214-nestjs-notification-review.md +390 -0
  71. package/docs/20260214-review-post-refactor.md +285 -0
  72. package/docs/20260215-review-notification-post-fix.md +933 -0
  73. package/package.json +1 -1
  74. package/dist/email/email-provider.factory.d.ts +0 -5
  75. package/dist/email/email-provider.factory.js +0 -18
  76. package/dist/email/email-provider.factory.js.map +0 -1
  77. package/dist/email/email.module.d.ts +0 -27
  78. package/dist/email/email.module.js +0 -110
  79. package/dist/email/email.module.js.map +0 -1
  80. package/dist/interface/payload.inteface.js.map +0 -1
  81. package/dist/push-notification/push-notification-module.interface.d.ts +0 -33
  82. package/dist/push-notification/push-notification-module.interface.js +0 -4
  83. package/dist/push-notification/push-notification-module.interface.js.map +0 -1
  84. package/dist/push-notification/push-notification-provider-module.factory.d.ts +0 -5
  85. package/dist/push-notification/push-notification-provider-module.factory.js +0 -13
  86. package/dist/push-notification/push-notification-provider-module.factory.js.map +0 -1
  87. package/dist/push-notification/push-notification-provider.factory.d.ts +0 -5
  88. package/dist/push-notification/push-notification-provider.factory.js +0 -16
  89. package/dist/push-notification/push-notification-provider.factory.js.map +0 -1
  90. package/dist/push-notification/push-notification.module.d.ts +0 -15
  91. package/dist/push-notification/push-notification.module.js +0 -189
  92. package/dist/push-notification/push-notification.module.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nathapp/nestjs-notification",
3
- "version": "2.2.0",
3
+ "version": "3.0.0",
4
4
  "description": "Notification Module",
5
5
  "scripts": {
6
6
  "clean": "rimraf dist/ .turbo/",
@@ -1,5 +0,0 @@
1
- import { EmailModuleOptions, EmailModuleOptionsWithoutProvider } from "./email.module";
2
- import { EmailProvider } from "./email.provider";
3
- export declare class EmailProviderFactory {
4
- static createProvider(options: EmailModuleOptions | EmailModuleOptionsWithoutProvider): EmailProvider;
5
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EmailProviderFactory = void 0;
4
- const email_provider_1 = require("./email.provider");
5
- class EmailProviderFactory {
6
- static createProvider(options) {
7
- const { option: emailOption } = options;
8
- const { type } = emailOption;
9
- switch (type) {
10
- case "smtp":
11
- return new email_provider_1.SmtpEmailProvider(emailOption["options"]);
12
- default:
13
- throw new Error(`Invalid emailOption.type ${type}`);
14
- }
15
- }
16
- }
17
- exports.EmailProviderFactory = EmailProviderFactory;
18
- //# sourceMappingURL=email-provider.factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"email-provider.factory.js","sourceRoot":"","sources":["../../lib/email/email-provider.factory.ts"],"names":[],"mappings":";;;AACA,qDAAoE;AAEpE,MAAa,oBAAoB;IAE/B,MAAM,CAAC,cAAc,CAAC,OAA+D;QACnF,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAExC,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;QAE7B,QAAO,IAAI,EAAE,CAAC;YACZ,KAAK,MAAM;gBACT,OAAO,IAAI,kCAAiB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACvD;gBACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF;AAdD,oDAcC"}
@@ -1,27 +0,0 @@
1
- import { DynamicModule, ModuleMetadata, Type } from '@nestjs/common';
2
- import { EmailOption } from './email.interface';
3
- export declare class EmailModule {
4
- static forRoot(options: EmailModuleOptions): DynamicModule;
5
- static forRootAsync(options: EmailModuleAsyncOptions): DynamicModule;
6
- private static santitizeOptions;
7
- private static createEmailProvider;
8
- private static createAsyncOptionsProviders;
9
- private static createAsyncOptionsProvider;
10
- }
11
- export type EmailModuleOptionsWithoutProvider = Omit<EmailModuleOptions, 'emailProvider'>;
12
- export interface EmailModuleOptions {
13
- option: EmailOption;
14
- }
15
- export interface EmailModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
16
- name?: string;
17
- useExisting?: Type<EmailModuleOptionsFactory>;
18
- useClass?: Type<EmailModuleOptionsFactory>;
19
- useFactory?: (...args: any[]) => Promise<EmailModuleOptionsWithoutProvider> | EmailModuleOptionsWithoutProvider;
20
- inject?: any[];
21
- }
22
- export interface EmailModuleOptionsFactory {
23
- createOptions(): EmailModuleOptionsWithoutProvider | Promise<EmailModuleOptionsWithoutProvider>;
24
- }
25
- export declare class DefaultSmtpEmailModuleOptionsFactory implements EmailModuleOptionsFactory {
26
- createOptions(): EmailModuleOptionsWithoutProvider;
27
- }
@@ -1,110 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var EmailModule_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.DefaultSmtpEmailModuleOptionsFactory = exports.EmailModule = void 0;
11
- const common_1 = require("@nestjs/common");
12
- const email_service_1 = require("./email.service");
13
- const constant_1 = require("./constant");
14
- const email_provider_factory_1 = require("./email-provider.factory");
15
- let EmailModule = EmailModule_1 = class EmailModule {
16
- static forRoot(options) {
17
- options = this.santitizeOptions(options);
18
- const emailProvider = this.createEmailProvider(options);
19
- const emailOptions = {
20
- provide: constant_1.EMAIL_OPTIONS,
21
- useValue: options,
22
- };
23
- const emailService = {
24
- provide: email_service_1.EmailService,
25
- useClass: email_service_1.EmailService,
26
- };
27
- return {
28
- module: EmailModule_1,
29
- providers: [emailOptions, emailProvider, emailService],
30
- exports: [constant_1.EMAIL_OPTIONS, emailService],
31
- };
32
- }
33
- static forRootAsync(options) {
34
- options = this.santitizeOptions(options);
35
- const asyncOptionsProviders = this.createAsyncOptionsProviders(options);
36
- const emailProvider = this.createEmailProvider(options);
37
- const emailService = {
38
- provide: email_service_1.EmailService,
39
- useClass: email_service_1.EmailService,
40
- };
41
- return {
42
- module: EmailModule_1,
43
- imports: options.imports || [],
44
- providers: [...asyncOptionsProviders, emailProvider, emailService],
45
- exports: [constant_1.EMAIL_OPTIONS, emailService],
46
- };
47
- }
48
- static santitizeOptions(options) {
49
- return options;
50
- }
51
- static createEmailProvider(options) {
52
- return {
53
- provide: constant_1.EMAIL_PROVIDER,
54
- useFactory: (moduleOption) => {
55
- if (moduleOption.option.type == "custom") {
56
- return moduleOption.option.provider;
57
- }
58
- return email_provider_factory_1.EmailProviderFactory.createProvider(moduleOption);
59
- },
60
- inject: [constant_1.EMAIL_OPTIONS],
61
- };
62
- }
63
- static createAsyncOptionsProviders(options) {
64
- if (options.useExisting || options.useFactory) {
65
- return [this.createAsyncOptionsProvider(options)];
66
- }
67
- return [
68
- this.createAsyncOptionsProvider(options),
69
- {
70
- provide: options.useClass,
71
- useClass: options.useClass,
72
- },
73
- ];
74
- }
75
- static createAsyncOptionsProvider(options) {
76
- if (options.useFactory) {
77
- return {
78
- provide: constant_1.EMAIL_OPTIONS,
79
- useFactory: async (...args) => {
80
- return this.santitizeOptions((await options.useFactory(...args)));
81
- },
82
- inject: options.inject || [],
83
- };
84
- }
85
- return {
86
- provide: constant_1.EMAIL_OPTIONS,
87
- useFactory: async (optionsFactory) => this.santitizeOptions((await optionsFactory.createOptions())),
88
- inject: [options.useClass || options.useExisting],
89
- };
90
- }
91
- };
92
- exports.EmailModule = EmailModule;
93
- exports.EmailModule = EmailModule = EmailModule_1 = __decorate([
94
- (0, common_1.Module)({})
95
- ], EmailModule);
96
- class DefaultSmtpEmailModuleOptionsFactory {
97
- createOptions() {
98
- return {
99
- option: {
100
- type: 'smtp',
101
- options: {
102
- url: process.env.EMAIL_URL,
103
- from: process.env.EMAIL_FROM,
104
- },
105
- }
106
- };
107
- }
108
- }
109
- exports.DefaultSmtpEmailModuleOptionsFactory = DefaultSmtpEmailModuleOptionsFactory;
110
- //# sourceMappingURL=email.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"email.module.js","sourceRoot":"","sources":["../../lib/email/email.module.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"payload.inteface.js","sourceRoot":"","sources":["../../lib/interface/payload.inteface.ts"],"names":[],"mappings":""}
@@ -1,33 +0,0 @@
1
- import { ModuleMetadata, Type } from "@nestjs/common";
2
- import { PushNotificationOption } from "./push-notification.interface";
3
- import { ProviderManager } from "./push-notification-provider.manager";
4
- import { UserTokenStore } from "./user-token.store";
5
- export type PushNotificationProviderOptions = PushNotificationOption;
6
- export type PushNotificationModuleOptions = {
7
- name?: string;
8
- providers: Array<PushNotificationProviderOptions>;
9
- providerManager?: Type<ProviderManager>;
10
- userTokenStore?: Type<UserTokenStore>;
11
- };
12
- export interface PushNotificationProviderModuleOptionsFactory {
13
- createProviderOptions(): Promise<PushNotificationProviderOptions> | PushNotificationProviderOptions;
14
- }
15
- export interface PushNotificationProviderAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
16
- useExisting?: Type<PushNotificationProviderModuleOptionsFactory>;
17
- useClass?: Type<PushNotificationProviderModuleOptionsFactory>;
18
- useFactory?: (...args: any[]) => Promise<PushNotificationProviderOptions> | PushNotificationProviderOptions;
19
- inject?: any[];
20
- name: string | symbol;
21
- }
22
- export interface ProviderAsyncOptions<T = any> extends Pick<ModuleMetadata, 'imports'> {
23
- useExisting?: Type<T>;
24
- useClass?: Type<T>;
25
- useFactory?: (...args: any[]) => T | Promise<T>;
26
- inject?: any[];
27
- }
28
- export interface PushNotificationModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
29
- name?: string;
30
- providers: Array<PushNotificationProviderAsyncOptions>;
31
- providerManager?: Type<ProviderManager> | ProviderAsyncOptions<ProviderManager>;
32
- userTokenStore?: Type<UserTokenStore> | ProviderAsyncOptions<UserTokenStore>;
33
- }
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- ;
4
- //# sourceMappingURL=push-notification-module.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push-notification-module.interface.js","sourceRoot":"","sources":["../../lib/push-notification/push-notification-module.interface.ts"],"names":[],"mappings":";;AA6CG,CAAC"}
@@ -1,5 +0,0 @@
1
- import { PushNotificationProviderModuleOptionsFactory } from "./push-notification-module.interface";
2
- import { FCMPushNotificationOption } from "./push-notification.interface";
3
- export declare class DefaultFirebasePushNotificationProviderModuleOptionsFactory implements PushNotificationProviderModuleOptionsFactory {
4
- createProviderOptions(): FCMPushNotificationOption | Promise<FCMPushNotificationOption>;
5
- }
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultFirebasePushNotificationProviderModuleOptionsFactory = void 0;
4
- class DefaultFirebasePushNotificationProviderModuleOptionsFactory {
5
- createProviderOptions() {
6
- return {
7
- type: "firebase",
8
- serviceAccount: process.env.PUSH_FIREBASE_SERVICE_ACCOUNT
9
- };
10
- }
11
- }
12
- exports.DefaultFirebasePushNotificationProviderModuleOptionsFactory = DefaultFirebasePushNotificationProviderModuleOptionsFactory;
13
- //# sourceMappingURL=push-notification-provider-module.factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push-notification-provider-module.factory.js","sourceRoot":"","sources":["../../lib/push-notification/push-notification-provider-module.factory.ts"],"names":[],"mappings":";;;AAGA,MAAa,2DAA2D;IACtE,qBAAqB;QACnB,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B;SAC1D,CAAA;IACH,CAAC;CAEF;AARD,kIAQC"}
@@ -1,5 +0,0 @@
1
- import { PushNotificationOption } from "./push-notification.interface";
2
- import { PushNotificationProvider } from "./push-notification.provider";
3
- export declare class PushNotificationProviderFactory {
4
- static create(option: PushNotificationOption): PushNotificationProvider;
5
- }
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PushNotificationProviderFactory = void 0;
4
- const fcm_push_notification_provider_1 = require("./fcm-push-notification.provider");
5
- class PushNotificationProviderFactory {
6
- static create(option) {
7
- switch (option.type) {
8
- case "firebase":
9
- return new fcm_push_notification_provider_1.FCMPushNotificationProvider(option);
10
- default:
11
- throw new Error(`type ${option.type} not supported`);
12
- }
13
- }
14
- }
15
- exports.PushNotificationProviderFactory = PushNotificationProviderFactory;
16
- //# sourceMappingURL=push-notification-provider.factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push-notification-provider.factory.js","sourceRoot":"","sources":["../../lib/push-notification/push-notification-provider.factory.ts"],"names":[],"mappings":";;;AAAA,qFAA+E;AAI/E,MAAa,+BAA+B;IACnC,MAAM,CAAC,MAAM,CAClB,MAA8B;QAG9B,QAAO,MAAM,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,UAAU;gBACb,OAAO,IAAI,4DAA2B,CAAC,MAAM,CAAC,CAAC;YACjD;gBACE,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC;QACzD,CAAC;IAEH,CAAC;CACF;AAbD,0EAaC"}
@@ -1,15 +0,0 @@
1
- import { DynamicModule } from '@nestjs/common';
2
- import { PushNotificationModuleAsyncOptions, PushNotificationModuleOptions } from './push-notification-module.interface';
3
- export declare class PushNotificationModule {
4
- static register(options: PushNotificationModuleOptions): DynamicModule;
5
- static registerAsync(options: PushNotificationModuleAsyncOptions): DynamicModule;
6
- private static sanitizeModuleOptions;
7
- private static createProviderManager;
8
- private static createDefaultProviderManager;
9
- private static createUserTokenStore;
10
- private static createDefaultUserTokenStore;
11
- private static createPushNotificationService;
12
- private static createAsyncProviders;
13
- private static createAsyncOptionsProvider;
14
- private static createFactoryWrapper;
15
- }
@@ -1,189 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var PushNotificationModule_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.PushNotificationModule = void 0;
11
- const common_1 = require("@nestjs/common");
12
- const push_notification_provider_factory_1 = require("./push-notification-provider.factory");
13
- const push_notification_provider_manager_1 = require("./push-notification-provider.manager");
14
- const push_notification_service_1 = require("./push-notification.service");
15
- const constant_1 = require("./constant");
16
- const user_token_store_1 = require("./user-token.store");
17
- const defaultOptions = {};
18
- let PushNotificationModule = PushNotificationModule_1 = class PushNotificationModule {
19
- static register(options) {
20
- options = this.sanitizeModuleOptions(options);
21
- const providerOptions = options.providers;
22
- const pushProviders = (providerOptions || []).map(item => {
23
- return push_notification_provider_factory_1.PushNotificationProviderFactory.create(item);
24
- });
25
- const providers = {
26
- provide: constant_1.PUSH_NOTIFICATION_PROVIDERS,
27
- useValue: pushProviders,
28
- };
29
- const provideProviderManager = this.createProviderManager(options);
30
- const userTokenStore = this.createUserTokenStore(options);
31
- const provideService = this.createPushNotificationService();
32
- return {
33
- module: PushNotificationModule_1,
34
- providers: [providers, provideProviderManager, provideService, userTokenStore],
35
- exports: [providers, provideProviderManager, provideService, userTokenStore],
36
- };
37
- }
38
- static registerAsync(options) {
39
- options = this.sanitizeModuleOptions(options);
40
- const providersOptions = options.providers;
41
- const innerProviders = providersOptions.reduce((accProviders, item) => accProviders
42
- .concat(this.createAsyncProviders(item)), []);
43
- const imports = providersOptions.reduce((accImports, option) => option.imports && !accImports.includes(option.imports)
44
- ? accImports.concat(option.imports)
45
- : accImports, []);
46
- const providers = {
47
- provide: constant_1.PUSH_NOTIFICATION_PROVIDERS,
48
- useFactory(...args) {
49
- return args;
50
- },
51
- inject: [...options.providers.map(item => item.name)]
52
- };
53
- const provideProviderManager = this.createProviderManager(options);
54
- const userTokenStore = this.createUserTokenStore(options);
55
- const provideService = this.createPushNotificationService();
56
- return {
57
- module: PushNotificationModule_1,
58
- imports,
59
- providers: [...innerProviders, providers, provideProviderManager, provideService, userTokenStore],
60
- exports: [providers, provideProviderManager, provideService, userTokenStore],
61
- };
62
- }
63
- static sanitizeModuleOptions(options) {
64
- options = { ...defaultOptions, ...options };
65
- return options;
66
- }
67
- static createProviderManager(options) {
68
- const providerOptions = options.providerManager;
69
- if (!providerOptions) {
70
- return this.createDefaultProviderManager();
71
- }
72
- if (!isProviderAsyncOptions(providerOptions)) {
73
- return {
74
- provide: push_notification_provider_manager_1.ProviderManager,
75
- useClass: options.providerManager,
76
- };
77
- }
78
- if (providerOptions.useFactory) {
79
- return {
80
- provide: push_notification_provider_manager_1.ProviderManager,
81
- useFactory(...args) {
82
- return providerOptions.useFactory(...args);
83
- },
84
- inject: providerOptions.inject || [],
85
- };
86
- }
87
- return {
88
- provide: push_notification_provider_manager_1.ProviderManager,
89
- useFactory(manager) {
90
- return manager;
91
- },
92
- inject: [providerOptions.useClass || providerOptions.useExisting],
93
- };
94
- }
95
- static createDefaultProviderManager() {
96
- return {
97
- provide: push_notification_provider_manager_1.ProviderManager,
98
- useFactory(providers) {
99
- return new push_notification_provider_manager_1.DefaultProviderManager(providers);
100
- },
101
- inject: [constant_1.PUSH_NOTIFICATION_PROVIDERS],
102
- };
103
- }
104
- static createUserTokenStore(options) {
105
- const providerOptions = options.userTokenStore;
106
- if (!providerOptions) {
107
- return this.createDefaultUserTokenStore();
108
- }
109
- if (!isProviderAsyncOptions(providerOptions)) {
110
- return {
111
- provide: user_token_store_1.UserTokenStore,
112
- useClass: options.userTokenStore,
113
- };
114
- }
115
- if (providerOptions.useFactory) {
116
- return {
117
- provide: user_token_store_1.UserTokenStore,
118
- useFactory(...args) {
119
- return providerOptions.useFactory(...args);
120
- },
121
- inject: providerOptions.inject || [],
122
- };
123
- }
124
- return {
125
- provide: user_token_store_1.UserTokenStore,
126
- useFactory(store) {
127
- return store;
128
- },
129
- inject: [providerOptions.useClass || providerOptions.useExisting],
130
- };
131
- }
132
- static createDefaultUserTokenStore() {
133
- return {
134
- provide: user_token_store_1.UserTokenStore,
135
- useFactory() {
136
- return new user_token_store_1.InMemoryUserTokenStore();
137
- },
138
- };
139
- }
140
- static createPushNotificationService() {
141
- return {
142
- provide: push_notification_service_1.PushNotificationService,
143
- useFactory(manager, userTokenStore) {
144
- return new push_notification_service_1.PushNotificationService(manager, userTokenStore);
145
- },
146
- inject: [push_notification_provider_manager_1.ProviderManager, user_token_store_1.UserTokenStore],
147
- };
148
- }
149
- static createAsyncProviders(options) {
150
- if (options.useExisting || options.useFactory) {
151
- return [this.createAsyncOptionsProvider(options)];
152
- }
153
- return [
154
- this.createAsyncOptionsProvider(options),
155
- {
156
- provide: options.useClass,
157
- useClass: options.useClass,
158
- },
159
- ];
160
- }
161
- static createAsyncOptionsProvider(options) {
162
- if (options.useFactory) {
163
- return {
164
- provide: options.name,
165
- useFactory: this.createFactoryWrapper(options.useFactory),
166
- inject: options.inject || [],
167
- };
168
- }
169
- return {
170
- provide: options.name,
171
- useFactory: this.createFactoryWrapper((optionsFactory) => optionsFactory.createProviderOptions()),
172
- inject: [options.useExisting || options.useClass],
173
- };
174
- }
175
- static createFactoryWrapper(useFactory) {
176
- return async (...args) => {
177
- const clientOptions = await useFactory(...args);
178
- return push_notification_provider_factory_1.PushNotificationProviderFactory.create(clientOptions);
179
- };
180
- }
181
- };
182
- exports.PushNotificationModule = PushNotificationModule;
183
- exports.PushNotificationModule = PushNotificationModule = PushNotificationModule_1 = __decorate([
184
- (0, common_1.Module)({})
185
- ], PushNotificationModule);
186
- const isProviderAsyncOptions = (options) => {
187
- return 'useExisting' in options || 'useClass' in options || 'useFactory' in options;
188
- };
189
- //# sourceMappingURL=push-notification.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push-notification.module.js","sourceRoot":"","sources":["../../lib/push-notification/push-notification.module.ts"],"names":[],"mappings":"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"}