@opra/angular 0.14.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,14 @@
1
- import { ModuleWithProviders } from '@angular/core';
1
+ import { ModuleWithProviders, Type } from '@angular/core';
2
+ import { HttpServiceBase } from '@opra/client';
2
3
  import { OpraClientModuleAsyncOptions, OpraClientModuleOptions } from './interfaces/module-options.interface';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class OpraClientModule {
5
- static forRoot(options: OpraClientModuleOptions): ModuleWithProviders<OpraClientModule>;
6
- static forRootAsync(options: OpraClientModuleAsyncOptions): ModuleWithProviders<OpraClientModule>;
7
- private static createAsyncProviders;
8
- private static createAsyncOptionsProvider;
6
+ static registerClient(options: OpraClientModuleOptions): ModuleWithProviders<OpraClientModule>;
7
+ static registerService<T extends HttpServiceBase>(serviceClass: Type<T>, options: OpraClientModuleOptions): ModuleWithProviders<OpraClientModule>;
8
+ static registerClientAsync(options: OpraClientModuleAsyncOptions): ModuleWithProviders<OpraClientModule>;
9
+ static registerServiceAsync<T extends HttpServiceBase>(serviceClass: Type<T>, options: OpraClientModuleAsyncOptions): ModuleWithProviders<OpraClientModule>;
10
+ private static _createAsyncProviders;
11
+ private static _createAsyncOptionsProvider;
9
12
  static ɵfac: i0.ɵɵFactoryDeclaration<OpraClientModule, never>;
10
13
  static ɵmod: i0.ɵɵNgModuleDeclaration<OpraClientModule, never, never, never>;
11
14
  static ɵinj: i0.ɵɵInjectorDeclaration<OpraClientModule>;
@@ -1,86 +1,75 @@
1
1
  /* eslint-disable import/extensions */
2
- import { APP_INITIALIZER, NgModule } from '@angular/core';
2
+ import { NgModule } from '@angular/core';
3
3
  import { OpraHttpClient } from '@opra/client';
4
4
  import { OPRA_CLIENT_MODULE_OPTIONS } from './constants';
5
5
  import * as i0 from "@angular/core";
6
6
  export class OpraClientModule {
7
- static forRoot(options) {
8
- const serviceClass = options.serviceClass;
9
- const CLIENT_TOKEN = options.clientToken || OpraHttpClient;
10
- const SERVICE_TOKEN = options.serviceToken || serviceClass;
7
+ static registerClient(options) {
8
+ const CLIENT_TOKEN = options.token || OpraHttpClient;
11
9
  const client = new OpraHttpClient(options.serviceUrl, options);
12
- const serviceProviders = [];
13
- if (serviceClass)
14
- serviceProviders.push({
15
- provide: SERVICE_TOKEN,
16
- deps: [CLIENT_TOKEN],
17
- useFactory: (opraHttpClient) => {
18
- return new serviceClass(opraHttpClient);
19
- }
20
- });
21
10
  return {
22
11
  ngModule: OpraClientModule,
23
12
  providers: [
24
- ...serviceProviders,
25
- {
26
- provide: OPRA_CLIENT_MODULE_OPTIONS,
27
- useValue: options,
28
- },
29
13
  {
30
14
  provide: CLIENT_TOKEN,
31
15
  useValue: client
32
- },
33
- {
34
- provide: APP_INITIALIZER,
35
- useFactory: () => {
36
- return () => client.init();
37
- },
38
- multi: true
39
- },
16
+ }
40
17
  ]
41
18
  };
42
19
  }
43
- static forRootAsync(options) {
44
- const serviceClass = options.serviceClass;
45
- const CLIENT_TOKEN = options.clientToken || OpraHttpClient;
46
- const SERVICE_TOKEN = options.serviceToken || serviceClass;
47
- const asyncProviders = this.createAsyncProviders(options);
48
- const serviceProviders = [];
49
- if (serviceClass)
50
- serviceProviders.push({
51
- provide: SERVICE_TOKEN,
52
- deps: [CLIENT_TOKEN],
53
- useFactory: (opraHttpClient) => {
54
- return new serviceClass(opraHttpClient);
20
+ static registerService(serviceClass, options) {
21
+ const SERVICE_TOKEN = options.token || serviceClass;
22
+ const client = new OpraHttpClient(options.serviceUrl, options);
23
+ const service = new serviceClass(client);
24
+ return {
25
+ ngModule: OpraClientModule,
26
+ providers: [
27
+ {
28
+ provide: SERVICE_TOKEN,
29
+ useValue: service
55
30
  }
56
- });
31
+ ]
32
+ };
33
+ }
34
+ static registerClientAsync(options) {
35
+ const CLIENT_TOKEN = options.token || OpraHttpClient;
36
+ const asyncProviders = this._createAsyncProviders(options);
57
37
  return {
58
38
  ngModule: OpraClientModule,
59
39
  providers: [
60
40
  ...asyncProviders,
61
- ...serviceProviders,
62
41
  {
63
42
  provide: CLIENT_TOKEN,
64
43
  deps: [OPRA_CLIENT_MODULE_OPTIONS],
65
44
  useFactory: (opts) => new OpraHttpClient(opts.serviceUrl, opts)
66
- },
45
+ }
46
+ ]
47
+ };
48
+ }
49
+ static registerServiceAsync(serviceClass, options) {
50
+ const SERVICE_TOKEN = options.token || serviceClass;
51
+ const asyncProviders = this._createAsyncProviders(options);
52
+ return {
53
+ ngModule: OpraClientModule,
54
+ providers: [
55
+ ...asyncProviders,
67
56
  {
68
- provide: APP_INITIALIZER,
69
- deps: [CLIENT_TOKEN],
70
- useFactory: (client) => {
71
- return () => client.init();
72
- },
73
- multi: true
57
+ provide: SERVICE_TOKEN,
58
+ deps: [OPRA_CLIENT_MODULE_OPTIONS],
59
+ useFactory: (opts) => {
60
+ const client = new OpraHttpClient(opts.serviceUrl, opts);
61
+ return new serviceClass(client);
62
+ }
74
63
  }
75
64
  ]
76
65
  };
77
66
  }
78
- static createAsyncProviders(options) {
67
+ static _createAsyncProviders(options) {
79
68
  if (options.useExisting || options.useFactory)
80
- return [this.createAsyncOptionsProvider(options)];
69
+ return [this._createAsyncOptionsProvider(options)];
81
70
  if (options.useClass)
82
71
  return [
83
- this.createAsyncOptionsProvider(options),
72
+ this._createAsyncOptionsProvider(options),
84
73
  {
85
74
  provide: options.useClass,
86
75
  useClass: options.useClass
@@ -88,7 +77,7 @@ export class OpraClientModule {
88
77
  ];
89
78
  throw new Error('Invalid configuration. Must provide useFactory, useClass or useExisting');
90
79
  }
91
- static createAsyncOptionsProvider(options) {
80
+ static _createAsyncOptionsProvider(options) {
92
81
  if (options.useFactory) {
93
82
  return {
94
83
  provide: OPRA_CLIENT_MODULE_OPTIONS,
@@ -107,11 +96,11 @@ export class OpraClientModule {
107
96
  throw new Error('Invalid configuration. Must provide useFactory, useClass or useExisting');
108
97
  }
109
98
  }
110
- OpraClientModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: OpraClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
111
- OpraClientModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: OpraClientModule });
112
- OpraClientModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: OpraClientModule });
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: OpraClientModule, decorators: [{
99
+ OpraClientModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: OpraClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
100
+ OpraClientModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: OpraClientModule });
101
+ OpraClientModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: OpraClientModule });
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: OpraClientModule, decorators: [{
114
103
  type: NgModule,
115
104
  args: [{}]
116
105
  }] });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvc3JjL2NsaWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0NBQXNDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQXVCLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFJekQsTUFBTSxPQUFPLGdCQUFnQjtJQUVwQixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQWdDO1FBQ3BELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDMUMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxjQUFjLENBQUM7UUFDM0QsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUM7UUFDM0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvRCxNQUFNLGdCQUFnQixHQUFRLEVBQUUsQ0FBQztRQUNqQyxJQUFJLFlBQVk7WUFDZCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3BCLFVBQVUsRUFBRSxDQUFDLGNBQThCLEVBQUUsRUFBRTtvQkFDN0MsT0FBTyxJQUFJLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDMUMsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLE9BQU87WUFDTCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDVCxHQUFHLGdCQUFnQjtnQkFDbkI7b0JBQ0UsT0FBTyxFQUFFLDBCQUEwQjtvQkFDbkMsUUFB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QkFDTCxPQUFPLEVBQUUsMEJBQTBCO2dCQUNuQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNqQixDQUFDO1NBQ0g7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7SUFDN0YsQ0FBQzs7NkdBaEhVLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsUUFBUTttQkFBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L2V4dGVuc2lvbnMgKi9cbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPcHJhSHR0cENsaWVudCB9IGZyb20gJ0BvcHJhL2NsaWVudCc7XG5pbXBvcnQgeyBPUFJBX0NMSUVOVF9NT0RVTEVfT1BUSU9OUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IE9wcmFDbGllbnRNb2R1bGVBc3luY09wdGlvbnMsIE9wcmFDbGllbnRNb2R1bGVPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL21vZHVsZS1vcHRpb25zLmludGVyZmFjZSc7XG5cbkBOZ01vZHVsZSh7fSlcbmV4cG9ydCBjbGFzcyBPcHJhQ2xpZW50TW9kdWxlIHtcblxuICBwdWJsaWMgc3RhdGljIGZvclJvb3Qob3B0aW9uczogT3ByYUNsaWVudE1vZHVsZU9wdGlvbnMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE9wcmFDbGllbnRNb2R1bGU+IHtcbiAgICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBvcHRpb25zLnNlcnZpY2VDbGFzcztcbiAgICBjb25zdCBDTElFTlRfVE9LRU4gPSBvcHRpb25zLmNsaWVudFRva2VuIHx8IE9wcmFIdHRwQ2xpZW50O1xuICAgIGNvbnN0IFNFUlZJQ0VfVE9LRU4gPSBvcHRpb25zLnNlcnZpY2VUb2tlbiB8fCBzZXJ2aWNlQ2xhc3M7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IE9wcmFIdHRwQ2xpZW50KG9wdGlvbnMuc2VydmljZVVybCwgb3B0aW9ucyk7XG4gICAgY29uc3Qgc2VydmljZVByb3ZpZGVyczogYW55ID0gW107XG4gICAgaWYgKHNlcnZpY2VDbGFzcylcbiAgICAgIHNlcnZpY2VQcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IFNFUlZJQ0VfVE9LRU4sXG4gICAgICAgIGRlcHM6IFtDTElFTlRfVE9LRU5dLFxuICAgICAgICB1c2VGYWN0b3J5OiAob3ByYUh0dHBDbGllbnQ6IE9wcmFIdHRwQ2xpZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBzZXJ2aWNlQ2xhc3Mob3ByYUh0dHBDbGllbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE9wcmFDbGllbnRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgLi4uc2VydmljZVByb3ZpZGVycyxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE9QUkFfQ0xJRU5UX01PRFVMRV9PUFRJT05TLFxuICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQ0xJRU5UX1RPS0VOLFxuICAgICAgICAgIHVzZVZhbHVlOiBjbGllbnRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4gY2xpZW50LmluaXQoKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmb3JSb290QXN5bmMoXG4gICAgICBvcHRpb25zOiBPcHJhQ2xpZW50TW9kdWxlQXN5bmNPcHRpb25zXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8T3ByYUNsaWVudE1vZHVsZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VDbGFzcyA9IG9wdGlvbnMuc2VydmljZUNsYXNzO1xuICAgIGNvbnN0IENMSUVOVF9UT0tFTiA9IG9wdGlvbnMuY2xpZW50VG9rZW4gfHwgT3ByYUh0dHBDbGllbnQ7XG4gICAgY29uc3QgU0VSVklDRV9UT0tFTiA9IG9wdGlvbnMuc2VydmljZVRva2VuIHx8IHNlcnZpY2VDbGFzcztcbiAgICBjb25zdCBhc3luY1Byb3ZpZGVycyA9IHRoaXMuY3JlYXRlQXN5bmNQcm92aWRlcnMob3B0aW9ucyk7XG4gICAgY29uc3Qgc2VydmljZVByb3ZpZGVyczogYW55ID0gW107XG4gICAgaWYgKHNlcnZpY2VDbGFzcylcbiAgICAgIHNlcnZpY2VQcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IFNFUlZJQ0VfVE9LRU4sXG4gICAgICAgIGRlcHM6IFtDTElFTlRfVE9LRU5dLFxuICAgICAgICB1c2VGYWN0b3J5OiAob3ByYUh0dHBDbGllbnQ6IE9wcmFIdHRwQ2xpZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBzZXJ2aWNlQ2xhc3Mob3ByYUh0dHBDbGllbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogT3ByYUNsaWVudE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAuLi5hc3luY1Byb3ZpZGVycyxcbiAgICAgICAgLi4uc2VydmljZVByb3ZpZGVycyxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IENMSUVOVF9UT0tFTixcbiAgICAgICAgICBkZXBzOiBbT1BSQV9DTElFTlRfTU9EVUxFX09QVElPTlNdLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IChvcHRzOiBPcHJhQ2xpZW50TW9kdWxlT3B0aW9ucykgPT5cbiAgICAgICAgICAgICAgbmV3IE9wcmFIdHRwQ2xpZW50KG9wdHMuc2VydmljZVVybCwgb3B0cylcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICBkZXBzOiBbQ0xJRU5UX1RPS0VOXSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAoY2xpZW50OiBPcHJhSHR0cENsaWVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IGNsaWVudC5pbml0KClcbiAgICAgICAgICB9LFxuICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlQXN5bmNQcm92aWRlcnMob3B0aW9uczogT3ByYUNsaWVudE1vZHVsZUFzeW5jT3B0aW9ucyk6IFByb3ZpZGVyW10ge1xuICAgIGlmIChvcHRpb25zLnVzZUV4aXN0aW5nIHx8IG9wdGlvbnMudXNlRmFjdG9yeSlcbiAgICAgIHJldHVybiBbdGhpcy5jcmVhdGVBc3luY09wdGlvbnNQcm92aWRlcihvcHRpb25zKV07XG5cbiAgICBpZiAob3B0aW9ucy51c2VDbGFzcylcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHRoaXMuY3JlYXRlQXN5bmNPcHRpb25zUHJvdmlkZXIob3B0aW9ucyksXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBvcHRpb25zLnVzZUNsYXNzLFxuICAgICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLnVzZUNsYXNzXG4gICAgICAgIH1cbiAgICAgIF07XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29uZmlndXJhdGlvbi4gTXVzdCBwcm92aWRlIHVzZUZhY3RvcnksIHVzZUNsYXNzIG9yIHVzZUV4aXN0aW5nJyk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVBc3luY09wdGlvbnNQcm92aWRlcihvcHRpb25zOiBPcHJhQ2xpZW50TW9kdWxlQXN5bmNPcHRpb25zKTogUHJvdmlkZXIge1xuICAgIGlmIChvcHRpb25zLnVzZUZhY3RvcnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IE9QUkFfQ0xJRU5UX01PRFVMRV9PUFRJT05TLFxuICAgICAgICB1c2VGYWN0b3J5OiBvcHRpb25zLnVzZUZhY3RvcnksXG4gICAgICAgIGRlcHM6IG9wdGlvbnMuZGVwcyB8fCBbXSxcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHVzZUNsYXNzID0gb3B0aW9ucy51c2VDbGFzcyB8fCBvcHRpb25zLnVzZUV4aXN0aW5nO1xuICAgIGlmICh1c2VDbGFzcykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogT1BSQV9DTElFTlRfTU9EVUxFX09QVElPTlMsXG4gICAgICAgIHVzZUZhY3Rvcnk6IChvKSA9PiBvLFxuICAgICAgICBkZXBzOiBbdXNlQ2xhc3NdLFxuICAgICAgfTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbmZpZ3VyYXRpb24uIE11c3QgcHJvdmlkZSB1c2VGYWN0b3J5LCB1c2VDbGFzcyBvciB1c2VFeGlzdGluZycpO1xuICB9XG5cblxufVxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvc3JjL2NsaWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0NBQXNDO0FBQ3RDLE9BQU8sRUFBdUIsUUFBUSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQW1CLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBT3pELE1BQU0sT0FBTyxnQkFBZ0I7SUFFcEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFnQztRQUMzRCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLGNBQWMsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9ELE9BQU87WUFDTCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLE1BQU07aUJBQ2pCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQ3pCLFlBQXFCLEVBQ3JCLE9BQWdDO1FBRWxDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDO1FBQ3BELE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDL0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsT0FBTztZQUNMLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxhQUFhO29CQUN0QixRQUFRLEVBQUUsT0FB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IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9leHRlbnNpb25zICovXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgUHJvdmlkZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlQmFzZSwgT3ByYUh0dHBDbGllbnQgfSBmcm9tICdAb3ByYS9jbGllbnQnO1xuaW1wb3J0IHsgT1BSQV9DTElFTlRfTU9EVUxFX09QVElPTlMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBPcHJhQ2xpZW50TW9kdWxlQXN5bmNPcHRpb25zLFxuICBPcHJhQ2xpZW50TW9kdWxlT3B0aW9uc1xufSBmcm9tICcuL2ludGVyZmFjZXMvbW9kdWxlLW9wdGlvbnMuaW50ZXJmYWNlJztcblxuQE5nTW9kdWxlKHt9KVxuZXhwb3J0IGNsYXNzIE9wcmFDbGllbnRNb2R1bGUge1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVnaXN0ZXJDbGllbnQob3B0aW9uczogT3ByYUNsaWVudE1vZHVsZU9wdGlvbnMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE9wcmFDbGllbnRNb2R1bGU+IHtcbiAgICBjb25zdCBDTElFTlRfVE9LRU4gPSBvcHRpb25zLnRva2VuIHx8IE9wcmFIdHRwQ2xpZW50O1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBPcHJhSHR0cENsaWVudChvcHRpb25zLnNlcnZpY2VVcmwsIG9wdGlvbnMpO1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogT3ByYUNsaWVudE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQ0xJRU5UX1RPS0VOLFxuICAgICAgICAgIHVzZVZhbHVlOiBjbGllbnRcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlZ2lzdGVyU2VydmljZTxUIGV4dGVuZHMgSHR0cFNlcnZpY2VCYXNlPihcbiAgICAgIHNlcnZpY2VDbGFzczogVHlwZTxUPixcbiAgICAgIG9wdGlvbnM6IE9wcmFDbGllbnRNb2R1bGVPcHRpb25zXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8T3ByYUNsaWVudE1vZHVsZT4ge1xuICAgIGNvbnN0IFNFUlZJQ0VfVE9LRU4gPSBvcHRpb25zLnRva2VuIHx8IHNlcnZpY2VDbGFzcztcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgT3ByYUh0dHBDbGllbnQob3B0aW9ucy5zZXJ2aWNlVXJsLCBvcHRpb25zKTtcbiAgICBjb25zdCBzZXJ2aWNlID0gbmV3IHNlcnZpY2VDbGFzcyhjbGllbnQpO1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogT3ByYUNsaWVudE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogU0VSVklDRV9UT0tFTixcbiAgICAgICAgICB1c2VWYWx1ZTogc2VydmljZVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcmVnaXN0ZXJDbGllbnRBc3luYyhcbiAgICAgIG9wdGlvbnM6IE9wcmFDbGllbnRNb2R1bGVBc3luY09wdGlvbnNcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxPcHJhQ2xpZW50TW9kdWxlPiB7XG4gICAgY29uc3QgQ0xJRU5UX1RPS0VOID0gb3B0aW9ucy50b2tlbiB8fCBPcHJhSHR0cENsaWVudDtcbiAgICBjb25zdCBhc3luY1Byb3ZpZGVycyA9IHRoaXMuX2NyZWF0ZUFzeW5jUHJvdmlkZXJzKG9wdGlvbnMpO1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogT3ByYUNsaWVudE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAuLi5hc3luY1Byb3ZpZGVycyxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IENMSUVOVF9UT0tFTixcbiAgICAgICAgICBkZXBzOiBbT1BSQV9DTElFTlRfTU9EVUxFX09QVElPTlNdLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IChvcHRzOiBPcHJhQ2xpZW50TW9kdWxlT3B0aW9ucykgPT5cbiAgICAgICAgICAgICAgbmV3IE9wcmFIdHRwQ2xpZW50KG9wdHMuc2VydmljZVVybCwgb3B0cylcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlZ2lzdGVyU2VydmljZUFzeW5jPFQgZXh0ZW5kcyBIdHRwU2VydmljZUJhc2U+KFxuICAgICAgc2VydmljZUNsYXNzOiBUeXBlPFQ+LFxuICAgICAgb3B0aW9uczogT3ByYUNsaWVudE1vZHVsZUFzeW5jT3B0aW9uc1xuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE9wcmFDbGllbnRNb2R1bGU+IHtcbiAgICBjb25zdCBTRVJWSUNFX1RPS0VOID0gb3B0aW9ucy50b2tlbiB8fCBzZXJ2aWNlQ2xhc3M7XG4gICAgY29uc3QgYXN5bmNQcm92aWRlcnMgPSB0aGlzLl9jcmVhdGVBc3luY1Byb3ZpZGVycyhvcHRpb25zKTtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE9wcmFDbGllbnRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgLi4uYXN5bmNQcm92aWRlcnMsXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBTRVJWSUNFX1RPS0VOLFxuICAgICAgICAgIGRlcHM6IFtPUFJBX0NMSUVOVF9NT0RVTEVfT1BUSU9OU10sXG4gICAgICAgICAgdXNlRmFjdG9yeTogKG9wdHM6IE9wcmFDbGllbnRNb2R1bGVPcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjbGllbnQgPSBuZXcgT3ByYUh0dHBDbGllbnQob3B0cy5zZXJ2aWNlVXJsLCBvcHRzKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBzZXJ2aWNlQ2xhc3MoY2xpZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2NyZWF0ZUFzeW5jUHJvdmlkZXJzKG9wdGlvbnM6IE9wcmFDbGllbnRNb2R1bGVBc3luY09wdGlvbnMpOiBQcm92aWRlcltdIHtcbiAgICBpZiAob3B0aW9ucy51c2VFeGlzdGluZyB8fCBvcHRpb25zLnVzZUZhY3RvcnkpXG4gICAgICByZXR1cm4gW3RoaXMuX2NyZWF0ZUFzeW5jT3B0aW9uc1Byb3ZpZGVyKG9wdGlvbnMpXTtcblxuICAgIGlmIChvcHRpb25zLnVzZUNsYXNzKVxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgdGhpcy5fY3JlYXRlQXN5bmNPcHRpb25zUHJvdmlkZXIob3B0aW9ucyksXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBvcHRpb25zLnVzZUNsYXNzLFxuICAgICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLnVzZUNsYXNzXG4gICAgICAgIH1cbiAgICAgIF07XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29uZmlndXJhdGlvbi4gTXVzdCBwcm92aWRlIHVzZUZhY3RvcnksIHVzZUNsYXNzIG9yIHVzZUV4aXN0aW5nJyk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfY3JlYXRlQXN5bmNPcHRpb25zUHJvdmlkZXIob3B0aW9uczogT3ByYUNsaWVudE1vZHVsZUFzeW5jT3B0aW9ucyk6IFByb3ZpZGVyIHtcbiAgICBpZiAob3B0aW9ucy51c2VGYWN0b3J5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlOiBPUFJBX0NMSUVOVF9NT0RVTEVfT1BUSU9OUyxcbiAgICAgICAgdXNlRmFjdG9yeTogb3B0aW9ucy51c2VGYWN0b3J5LFxuICAgICAgICBkZXBzOiBvcHRpb25zLmRlcHMgfHwgW10sXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCB1c2VDbGFzcyA9IG9wdGlvbnMudXNlQ2xhc3MgfHwgb3B0aW9ucy51c2VFeGlzdGluZztcbiAgICBpZiAodXNlQ2xhc3MpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IE9QUkFfQ0xJRU5UX01PRFVMRV9PUFRJT05TLFxuICAgICAgICB1c2VGYWN0b3J5OiAobykgPT4gbyxcbiAgICAgICAgZGVwczogW3VzZUNsYXNzXSxcbiAgICAgIH07XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb25maWd1cmF0aW9uLiBNdXN0IHByb3ZpZGUgdXNlRmFjdG9yeSwgdXNlQ2xhc3Mgb3IgdXNlRXhpc3RpbmcnKTtcbiAgfVxuXG5cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLW9wdGlvbnMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9zcmMvaW50ZXJmYWNlcy9tb2R1bGUtb3B0aW9ucy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBOZ01vZHVsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ByYUh0dHBDbGllbnRPcHRpb25zIH0gZnJvbSAnQG9wcmEvY2xpZW50JztcblxuZXhwb3J0IHR5cGUgT3ByYUNsaWVudE1vZHVsZU9wdGlvbnMgPSBPcHJhSHR0cENsaWVudE9wdGlvbnMgJiB7XG4gIHNlcnZpY2VVcmw6IHN0cmluZztcbiAgY2xpZW50VG9rZW4/OiBzdHJpbmcgfCBJbmplY3Rpb25Ub2tlbjxhbnk+O1xuICBzZXJ2aWNlVG9rZW4/OiBzdHJpbmcgfCBJbmplY3Rpb25Ub2tlbjxhbnk+O1xuICBzZXJ2aWNlQ2xhc3M/OiBUeXBlPGFueT47XG59XG5cbnR5cGUgX09wcmFDbGllbnRNb2R1bGVPcHRpb25zID0gT21pdDxPcHJhQ2xpZW50TW9kdWxlT3B0aW9ucywgJ2NsaWVudFRva2VuJyB8ICdzZXJ2aWNlVG9rZW4nIHwgJ3NlcnZpY2VDbGFzcyc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wcmFNb2R1bGVPcHRpb25zRmFjdG9yeSB7XG4gIGNyZWF0ZU9wdGlvbnMoKTogUHJvbWlzZTxfT3ByYUNsaWVudE1vZHVsZU9wdGlvbnM+IHwgX09wcmFDbGllbnRNb2R1bGVPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wcmFDbGllbnRNb2R1bGVBc3luY09wdGlvbnNcbiAgICBleHRlbmRzIFBpY2s8TmdNb2R1bGUsICdpbXBvcnRzJyB8ICdwcm92aWRlcnMnPiB7XG4gIGNsaWVudFRva2VuPzogc3RyaW5nIHwgSW5qZWN0aW9uVG9rZW48YW55PjtcbiAgc2VydmljZVRva2VuPzogc3RyaW5nIHwgSW5qZWN0aW9uVG9rZW48YW55PjtcbiAgc2VydmljZUNsYXNzPzogVHlwZTxhbnk+O1xuICB1c2VFeGlzdGluZz86IFR5cGU8T3ByYU1vZHVsZU9wdGlvbnNGYWN0b3J5PjtcbiAgdXNlQ2xhc3M/OiBUeXBlPGFueT47XG4gIHVzZUZhY3Rvcnk/OiAoLi4uYXJnczogYW55W10pID0+IFByb21pc2U8X09wcmFDbGllbnRNb2R1bGVPcHRpb25zPiB8IF9PcHJhQ2xpZW50TW9kdWxlT3B0aW9ucztcbiAgZGVwcz86IGFueVtdO1xufVxuXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLW9wdGlvbnMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9zcmMvaW50ZXJmYWNlcy9tb2R1bGUtb3B0aW9ucy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RyaWN0T21pdCB9IGZyb20gJ3RzLWdlbXMnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIE5nTW9kdWxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPcHJhSHR0cENsaWVudE9wdGlvbnMgfSBmcm9tICdAb3ByYS9jbGllbnQnO1xuXG5leHBvcnQgdHlwZSBPcHJhQ2xpZW50TW9kdWxlT3B0aW9ucyA9IE9wcmFIdHRwQ2xpZW50T3B0aW9ucyAmIHtcbiAgc2VydmljZVVybDogc3RyaW5nO1xuICB0b2tlbj86IHN0cmluZyB8IEluamVjdGlvblRva2VuPGFueT47XG59XG5cbnR5cGUgX09wcmFDbGllbnRNb2R1bGVPcHRpb25zID0gU3RyaWN0T21pdDxPcHJhQ2xpZW50TW9kdWxlT3B0aW9ucywgJ3Rva2VuJz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ByYU1vZHVsZU9wdGlvbnNGYWN0b3J5IHtcbiAgY3JlYXRlT3B0aW9ucygpOiBQcm9taXNlPF9PcHJhQ2xpZW50TW9kdWxlT3B0aW9ucz4gfCBfT3ByYUNsaWVudE1vZHVsZU9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ByYUNsaWVudE1vZHVsZUFzeW5jT3B0aW9uc1xuICAgIGV4dGVuZHMgUGljazxOZ01vZHVsZSwgJ2ltcG9ydHMnIHwgJ3Byb3ZpZGVycyc+IHtcbiAgdG9rZW4/OiBzdHJpbmcgfCBJbmplY3Rpb25Ub2tlbjxhbnk+O1xuICB1c2VFeGlzdGluZz86IFR5cGU8T3ByYU1vZHVsZU9wdGlvbnNGYWN0b3J5PjtcbiAgdXNlQ2xhc3M/OiBUeXBlPGFueT47XG4gIHVzZUZhY3Rvcnk/OiAoLi4uYXJnczogYW55W10pID0+IFByb21pc2U8X09wcmFDbGllbnRNb2R1bGVPcHRpb25zPiB8IF9PcHJhQ2xpZW50TW9kdWxlT3B0aW9ucztcbiAgZGVwcz86IGFueVtdO1xufVxuXG4iXX0=
@@ -1,88 +1,77 @@
1
1
  import * as i0 from '@angular/core';
2
- import { APP_INITIALIZER, NgModule } from '@angular/core';
2
+ import { NgModule } from '@angular/core';
3
3
  import { OpraHttpClient } from '@opra/client';
4
4
 
5
5
  const OPRA_CLIENT_MODULE_OPTIONS = 'OPRA_CLIENT_MODULE_OPTIONS';
6
6
 
7
7
  /* eslint-disable import/extensions */
8
8
  class OpraClientModule {
9
- static forRoot(options) {
10
- const serviceClass = options.serviceClass;
11
- const CLIENT_TOKEN = options.clientToken || OpraHttpClient;
12
- const SERVICE_TOKEN = options.serviceToken || serviceClass;
9
+ static registerClient(options) {
10
+ const CLIENT_TOKEN = options.token || OpraHttpClient;
13
11
  const client = new OpraHttpClient(options.serviceUrl, options);
14
- const serviceProviders = [];
15
- if (serviceClass)
16
- serviceProviders.push({
17
- provide: SERVICE_TOKEN,
18
- deps: [CLIENT_TOKEN],
19
- useFactory: (opraHttpClient) => {
20
- return new serviceClass(opraHttpClient);
21
- }
22
- });
23
12
  return {
24
13
  ngModule: OpraClientModule,
25
14
  providers: [
26
- ...serviceProviders,
27
- {
28
- provide: OPRA_CLIENT_MODULE_OPTIONS,
29
- useValue: options,
30
- },
31
15
  {
32
16
  provide: CLIENT_TOKEN,
33
17
  useValue: client
34
- },
35
- {
36
- provide: APP_INITIALIZER,
37
- useFactory: () => {
38
- return () => client.init();
39
- },
40
- multi: true
41
- },
18
+ }
42
19
  ]
43
20
  };
44
21
  }
45
- static forRootAsync(options) {
46
- const serviceClass = options.serviceClass;
47
- const CLIENT_TOKEN = options.clientToken || OpraHttpClient;
48
- const SERVICE_TOKEN = options.serviceToken || serviceClass;
49
- const asyncProviders = this.createAsyncProviders(options);
50
- const serviceProviders = [];
51
- if (serviceClass)
52
- serviceProviders.push({
53
- provide: SERVICE_TOKEN,
54
- deps: [CLIENT_TOKEN],
55
- useFactory: (opraHttpClient) => {
56
- return new serviceClass(opraHttpClient);
22
+ static registerService(serviceClass, options) {
23
+ const SERVICE_TOKEN = options.token || serviceClass;
24
+ const client = new OpraHttpClient(options.serviceUrl, options);
25
+ const service = new serviceClass(client);
26
+ return {
27
+ ngModule: OpraClientModule,
28
+ providers: [
29
+ {
30
+ provide: SERVICE_TOKEN,
31
+ useValue: service
57
32
  }
58
- });
33
+ ]
34
+ };
35
+ }
36
+ static registerClientAsync(options) {
37
+ const CLIENT_TOKEN = options.token || OpraHttpClient;
38
+ const asyncProviders = this._createAsyncProviders(options);
59
39
  return {
60
40
  ngModule: OpraClientModule,
61
41
  providers: [
62
42
  ...asyncProviders,
63
- ...serviceProviders,
64
43
  {
65
44
  provide: CLIENT_TOKEN,
66
45
  deps: [OPRA_CLIENT_MODULE_OPTIONS],
67
46
  useFactory: (opts) => new OpraHttpClient(opts.serviceUrl, opts)
68
- },
47
+ }
48
+ ]
49
+ };
50
+ }
51
+ static registerServiceAsync(serviceClass, options) {
52
+ const SERVICE_TOKEN = options.token || serviceClass;
53
+ const asyncProviders = this._createAsyncProviders(options);
54
+ return {
55
+ ngModule: OpraClientModule,
56
+ providers: [
57
+ ...asyncProviders,
69
58
  {
70
- provide: APP_INITIALIZER,
71
- deps: [CLIENT_TOKEN],
72
- useFactory: (client) => {
73
- return () => client.init();
74
- },
75
- multi: true
59
+ provide: SERVICE_TOKEN,
60
+ deps: [OPRA_CLIENT_MODULE_OPTIONS],
61
+ useFactory: (opts) => {
62
+ const client = new OpraHttpClient(opts.serviceUrl, opts);
63
+ return new serviceClass(client);
64
+ }
76
65
  }
77
66
  ]
78
67
  };
79
68
  }
80
- static createAsyncProviders(options) {
69
+ static _createAsyncProviders(options) {
81
70
  if (options.useExisting || options.useFactory)
82
- return [this.createAsyncOptionsProvider(options)];
71
+ return [this._createAsyncOptionsProvider(options)];
83
72
  if (options.useClass)
84
73
  return [
85
- this.createAsyncOptionsProvider(options),
74
+ this._createAsyncOptionsProvider(options),
86
75
  {
87
76
  provide: options.useClass,
88
77
  useClass: options.useClass
@@ -90,7 +79,7 @@ class OpraClientModule {
90
79
  ];
91
80
  throw new Error('Invalid configuration. Must provide useFactory, useClass or useExisting');
92
81
  }
93
- static createAsyncOptionsProvider(options) {
82
+ static _createAsyncOptionsProvider(options) {
94
83
  if (options.useFactory) {
95
84
  return {
96
85
  provide: OPRA_CLIENT_MODULE_OPTIONS,
@@ -109,10 +98,10 @@ class OpraClientModule {
109
98
  throw new Error('Invalid configuration. Must provide useFactory, useClass or useExisting');
110
99
  }
111
100
  }
112
- OpraClientModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: OpraClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
113
- OpraClientModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: OpraClientModule });
114
- OpraClientModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: OpraClientModule });
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: OpraClientModule, decorators: [{
101
+ OpraClientModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: OpraClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
102
+ OpraClientModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: OpraClientModule });
103
+ OpraClientModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: OpraClientModule });
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: OpraClientModule, decorators: [{
116
105
  type: NgModule,
117
106
  args: [{}]
118
107
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"opra-angular.mjs","sources":["../../../packages/angular/src/constants.ts","../../../packages/angular/src/client.module.ts","../../../packages/angular/src/public_api.ts","../../../packages/angular/src/opra-angular.ts"],"sourcesContent":["export const OPRA_CLIENT_MODULE_OPTIONS = 'OPRA_CLIENT_MODULE_OPTIONS';\n","/* eslint-disable import/extensions */\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule, Provider } from '@angular/core';\nimport { OpraHttpClient } from '@opra/client';\nimport { OPRA_CLIENT_MODULE_OPTIONS } from './constants';\nimport { OpraClientModuleAsyncOptions, OpraClientModuleOptions } from './interfaces/module-options.interface';\n\n@NgModule({})\nexport class OpraClientModule {\n\n public static forRoot(options: OpraClientModuleOptions): ModuleWithProviders<OpraClientModule> {\n const serviceClass = options.serviceClass;\n const CLIENT_TOKEN = options.clientToken || OpraHttpClient;\n const SERVICE_TOKEN = options.serviceToken || serviceClass;\n const client = new OpraHttpClient(options.serviceUrl, options);\n const serviceProviders: any = [];\n if (serviceClass)\n serviceProviders.push({\n provide: SERVICE_TOKEN,\n deps: [CLIENT_TOKEN],\n useFactory: (opraHttpClient: OpraHttpClient) => {\n return new serviceClass(opraHttpClient);\n }\n });\n return {\n ngModule: OpraClientModule,\n providers: [\n ...serviceProviders,\n {\n provide: OPRA_CLIENT_MODULE_OPTIONS,\n useValue: options,\n },\n {\n provide: CLIENT_TOKEN,\n useValue: client\n },\n {\n provide: APP_INITIALIZER,\n useFactory: () => {\n return () => client.init()\n },\n multi: true\n },\n ]\n };\n }\n\n public static forRootAsync(\n options: OpraClientModuleAsyncOptions\n ): ModuleWithProviders<OpraClientModule> {\n const serviceClass = options.serviceClass;\n const CLIENT_TOKEN = options.clientToken || OpraHttpClient;\n const SERVICE_TOKEN = options.serviceToken || serviceClass;\n const asyncProviders = this.createAsyncProviders(options);\n const serviceProviders: any = [];\n if (serviceClass)\n serviceProviders.push({\n provide: SERVICE_TOKEN,\n deps: [CLIENT_TOKEN],\n useFactory: (opraHttpClient: OpraHttpClient) => {\n return new serviceClass(opraHttpClient);\n }\n });\n\n return {\n ngModule: OpraClientModule,\n providers: [\n ...asyncProviders,\n ...serviceProviders,\n {\n provide: CLIENT_TOKEN,\n deps: [OPRA_CLIENT_MODULE_OPTIONS],\n useFactory: (opts: OpraClientModuleOptions) =>\n new OpraHttpClient(opts.serviceUrl, opts)\n },\n {\n provide: APP_INITIALIZER,\n deps: [CLIENT_TOKEN],\n useFactory: (client: OpraHttpClient) => {\n return () => client.init()\n },\n multi: true\n }\n ]\n };\n }\n\n private static createAsyncProviders(options: OpraClientModuleAsyncOptions): Provider[] {\n if (options.useExisting || options.useFactory)\n return [this.createAsyncOptionsProvider(options)];\n\n if (options.useClass)\n return [\n this.createAsyncOptionsProvider(options),\n {\n provide: options.useClass,\n useClass: options.useClass\n }\n ];\n\n throw new Error('Invalid configuration. Must provide useFactory, useClass or useExisting');\n }\n\n private static createAsyncOptionsProvider(options: OpraClientModuleAsyncOptions): Provider {\n if (options.useFactory) {\n return {\n provide: OPRA_CLIENT_MODULE_OPTIONS,\n useFactory: options.useFactory,\n deps: options.deps || [],\n };\n }\n const useClass = options.useClass || options.useExisting;\n if (useClass) {\n return {\n provide: OPRA_CLIENT_MODULE_OPTIONS,\n useFactory: (o) => o,\n deps: [useClass],\n };\n }\n throw new Error('Invalid configuration. Must provide useFactory, useClass or useExisting');\n }\n\n\n}\n","/* eslint-disable import/extensions */\nexport * from './client.module';\nexport * from './interfaces/module-options.interface';\nexport * from './constants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opra-angular.mjs","sources":["../../../packages/angular/src/constants.ts","../../../packages/angular/src/client.module.ts","../../../packages/angular/src/public_api.ts","../../../packages/angular/src/opra-angular.ts"],"sourcesContent":["export const OPRA_CLIENT_MODULE_OPTIONS = 'OPRA_CLIENT_MODULE_OPTIONS';\n","/* eslint-disable import/extensions */\nimport { ModuleWithProviders, NgModule, Provider, Type } from '@angular/core';\nimport { HttpServiceBase, OpraHttpClient } from '@opra/client';\nimport { OPRA_CLIENT_MODULE_OPTIONS } from './constants';\nimport {\n OpraClientModuleAsyncOptions,\n OpraClientModuleOptions\n} from './interfaces/module-options.interface';\n\n@NgModule({})\nexport class OpraClientModule {\n\n public static registerClient(options: OpraClientModuleOptions): ModuleWithProviders<OpraClientModule> {\n const CLIENT_TOKEN = options.token || OpraHttpClient;\n const client = new OpraHttpClient(options.serviceUrl, options);\n return {\n ngModule: OpraClientModule,\n providers: [\n {\n provide: CLIENT_TOKEN,\n useValue: client\n }\n ]\n };\n }\n\n public static registerService<T extends HttpServiceBase>(\n serviceClass: Type<T>,\n options: OpraClientModuleOptions\n ): ModuleWithProviders<OpraClientModule> {\n const SERVICE_TOKEN = options.token || serviceClass;\n const client = new OpraHttpClient(options.serviceUrl, options);\n const service = new serviceClass(client);\n return {\n ngModule: OpraClientModule,\n providers: [\n {\n provide: SERVICE_TOKEN,\n useValue: service\n }\n ]\n };\n }\n\n public static registerClientAsync(\n options: OpraClientModuleAsyncOptions\n ): ModuleWithProviders<OpraClientModule> {\n const CLIENT_TOKEN = options.token || OpraHttpClient;\n const asyncProviders = this._createAsyncProviders(options);\n return {\n ngModule: OpraClientModule,\n providers: [\n ...asyncProviders,\n {\n provide: CLIENT_TOKEN,\n deps: [OPRA_CLIENT_MODULE_OPTIONS],\n useFactory: (opts: OpraClientModuleOptions) =>\n new OpraHttpClient(opts.serviceUrl, opts)\n }\n ]\n };\n }\n\n public static registerServiceAsync<T extends HttpServiceBase>(\n serviceClass: Type<T>,\n options: OpraClientModuleAsyncOptions\n ): ModuleWithProviders<OpraClientModule> {\n const SERVICE_TOKEN = options.token || serviceClass;\n const asyncProviders = this._createAsyncProviders(options);\n return {\n ngModule: OpraClientModule,\n providers: [\n ...asyncProviders,\n {\n provide: SERVICE_TOKEN,\n deps: [OPRA_CLIENT_MODULE_OPTIONS],\n useFactory: (opts: OpraClientModuleOptions) => {\n const client = new OpraHttpClient(opts.serviceUrl, opts)\n return new serviceClass(client);\n }\n }\n ]\n };\n }\n\n private static _createAsyncProviders(options: OpraClientModuleAsyncOptions): Provider[] {\n if (options.useExisting || options.useFactory)\n return [this._createAsyncOptionsProvider(options)];\n\n if (options.useClass)\n return [\n this._createAsyncOptionsProvider(options),\n {\n provide: options.useClass,\n useClass: options.useClass\n }\n ];\n\n throw new Error('Invalid configuration. Must provide useFactory, useClass or useExisting');\n }\n\n private static _createAsyncOptionsProvider(options: OpraClientModuleAsyncOptions): Provider {\n if (options.useFactory) {\n return {\n provide: OPRA_CLIENT_MODULE_OPTIONS,\n useFactory: options.useFactory,\n deps: options.deps || [],\n };\n }\n const useClass = options.useClass || options.useExisting;\n if (useClass) {\n return {\n provide: OPRA_CLIENT_MODULE_OPTIONS,\n useFactory: (o) => o,\n deps: [useClass],\n };\n }\n throw new Error('Invalid configuration. Must provide useFactory, useClass or useExisting');\n }\n\n\n}\n","/* eslint-disable import/extensions */\nexport * from './client.module';\nexport * from './interfaces/module-options.interface';\nexport * from './constants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,88 +1,77 @@
1
1
  import * as i0 from '@angular/core';
2
- import { APP_INITIALIZER, NgModule } from '@angular/core';
2
+ import { NgModule } from '@angular/core';
3
3
  import { OpraHttpClient } from '@opra/client';
4
4
 
5
5
  const OPRA_CLIENT_MODULE_OPTIONS = 'OPRA_CLIENT_MODULE_OPTIONS';
6
6
 
7
7
  /* eslint-disable import/extensions */
8
8
  class OpraClientModule {
9
- static forRoot(options) {
10
- const serviceClass = options.serviceClass;
11
- const CLIENT_TOKEN = options.clientToken || OpraHttpClient;
12
- const SERVICE_TOKEN = options.serviceToken || serviceClass;
9
+ static registerClient(options) {
10
+ const CLIENT_TOKEN = options.token || OpraHttpClient;
13
11
  const client = new OpraHttpClient(options.serviceUrl, options);
14
- const serviceProviders = [];
15
- if (serviceClass)
16
- serviceProviders.push({
17
- provide: SERVICE_TOKEN,
18
- deps: [CLIENT_TOKEN],
19
- useFactory: (opraHttpClient) => {
20
- return new serviceClass(opraHttpClient);
21
- }
22
- });
23
12
  return {
24
13
  ngModule: OpraClientModule,
25
14
  providers: [
26
- ...serviceProviders,
27
- {
28
- provide: OPRA_CLIENT_MODULE_OPTIONS,
29
- useValue: options,
30
- },
31
15
  {
32
16
  provide: CLIENT_TOKEN,
33
17
  useValue: client
34
- },
35
- {
36
- provide: APP_INITIALIZER,
37
- useFactory: () => {
38
- return () => client.init();
39
- },
40
- multi: true
41
- },
18
+ }
42
19
  ]
43
20
  };
44
21
  }
45
- static forRootAsync(options) {
46
- const serviceClass = options.serviceClass;
47
- const CLIENT_TOKEN = options.clientToken || OpraHttpClient;
48
- const SERVICE_TOKEN = options.serviceToken || serviceClass;
49
- const asyncProviders = this.createAsyncProviders(options);
50
- const serviceProviders = [];
51
- if (serviceClass)
52
- serviceProviders.push({
53
- provide: SERVICE_TOKEN,
54
- deps: [CLIENT_TOKEN],
55
- useFactory: (opraHttpClient) => {
56
- return new serviceClass(opraHttpClient);
22
+ static registerService(serviceClass, options) {
23
+ const SERVICE_TOKEN = options.token || serviceClass;
24
+ const client = new OpraHttpClient(options.serviceUrl, options);
25
+ const service = new serviceClass(client);
26
+ return {
27
+ ngModule: OpraClientModule,
28
+ providers: [
29
+ {
30
+ provide: SERVICE_TOKEN,
31
+ useValue: service
57
32
  }
58
- });
33
+ ]
34
+ };
35
+ }
36
+ static registerClientAsync(options) {
37
+ const CLIENT_TOKEN = options.token || OpraHttpClient;
38
+ const asyncProviders = this._createAsyncProviders(options);
59
39
  return {
60
40
  ngModule: OpraClientModule,
61
41
  providers: [
62
42
  ...asyncProviders,
63
- ...serviceProviders,
64
43
  {
65
44
  provide: CLIENT_TOKEN,
66
45
  deps: [OPRA_CLIENT_MODULE_OPTIONS],
67
46
  useFactory: (opts) => new OpraHttpClient(opts.serviceUrl, opts)
68
- },
47
+ }
48
+ ]
49
+ };
50
+ }
51
+ static registerServiceAsync(serviceClass, options) {
52
+ const SERVICE_TOKEN = options.token || serviceClass;
53
+ const asyncProviders = this._createAsyncProviders(options);
54
+ return {
55
+ ngModule: OpraClientModule,
56
+ providers: [
57
+ ...asyncProviders,
69
58
  {
70
- provide: APP_INITIALIZER,
71
- deps: [CLIENT_TOKEN],
72
- useFactory: (client) => {
73
- return () => client.init();
74
- },
75
- multi: true
59
+ provide: SERVICE_TOKEN,
60
+ deps: [OPRA_CLIENT_MODULE_OPTIONS],
61
+ useFactory: (opts) => {
62
+ const client = new OpraHttpClient(opts.serviceUrl, opts);
63
+ return new serviceClass(client);
64
+ }
76
65
  }
77
66
  ]
78
67
  };
79
68
  }
80
- static createAsyncProviders(options) {
69
+ static _createAsyncProviders(options) {
81
70
  if (options.useExisting || options.useFactory)
82
- return [this.createAsyncOptionsProvider(options)];
71
+ return [this._createAsyncOptionsProvider(options)];
83
72
  if (options.useClass)
84
73
  return [
85
- this.createAsyncOptionsProvider(options),
74
+ this._createAsyncOptionsProvider(options),
86
75
  {
87
76
  provide: options.useClass,
88
77
  useClass: options.useClass
@@ -90,7 +79,7 @@ class OpraClientModule {
90
79
  ];
91
80
  throw new Error('Invalid configuration. Must provide useFactory, useClass or useExisting');
92
81
  }
93
- static createAsyncOptionsProvider(options) {
82
+ static _createAsyncOptionsProvider(options) {
94
83
  if (options.useFactory) {
95
84
  return {
96
85
  provide: OPRA_CLIENT_MODULE_OPTIONS,
@@ -109,10 +98,10 @@ class OpraClientModule {
109
98
  throw new Error('Invalid configuration. Must provide useFactory, useClass or useExisting');
110
99
  }
111
100
  }
112
- OpraClientModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: OpraClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
113
- OpraClientModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: OpraClientModule });
114
- OpraClientModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: OpraClientModule });
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: OpraClientModule, decorators: [{
101
+ OpraClientModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: OpraClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
102
+ OpraClientModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: OpraClientModule });
103
+ OpraClientModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: OpraClientModule });
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: OpraClientModule, decorators: [{
116
105
  type: NgModule,
117
106
  args: [{}]
118
107
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"opra-angular.mjs","sources":["../../../packages/angular/src/constants.ts","../../../packages/angular/src/client.module.ts","../../../packages/angular/src/public_api.ts","../../../packages/angular/src/opra-angular.ts"],"sourcesContent":["export const OPRA_CLIENT_MODULE_OPTIONS = 'OPRA_CLIENT_MODULE_OPTIONS';\n","/* eslint-disable import/extensions */\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule, Provider } from '@angular/core';\nimport { OpraHttpClient } from '@opra/client';\nimport { OPRA_CLIENT_MODULE_OPTIONS } from './constants';\nimport { OpraClientModuleAsyncOptions, OpraClientModuleOptions } from './interfaces/module-options.interface';\n\n@NgModule({})\nexport class OpraClientModule {\n\n public static forRoot(options: OpraClientModuleOptions): ModuleWithProviders<OpraClientModule> {\n const serviceClass = options.serviceClass;\n const CLIENT_TOKEN = options.clientToken || OpraHttpClient;\n const SERVICE_TOKEN = options.serviceToken || serviceClass;\n const client = new OpraHttpClient(options.serviceUrl, options);\n const serviceProviders: any = [];\n if (serviceClass)\n serviceProviders.push({\n provide: SERVICE_TOKEN,\n deps: [CLIENT_TOKEN],\n useFactory: (opraHttpClient: OpraHttpClient) => {\n return new serviceClass(opraHttpClient);\n }\n });\n return {\n ngModule: OpraClientModule,\n providers: [\n ...serviceProviders,\n {\n provide: OPRA_CLIENT_MODULE_OPTIONS,\n useValue: options,\n },\n {\n provide: CLIENT_TOKEN,\n useValue: client\n },\n {\n provide: APP_INITIALIZER,\n useFactory: () => {\n return () => client.init()\n },\n multi: true\n },\n ]\n };\n }\n\n public static forRootAsync(\n options: OpraClientModuleAsyncOptions\n ): ModuleWithProviders<OpraClientModule> {\n const serviceClass = options.serviceClass;\n const CLIENT_TOKEN = options.clientToken || OpraHttpClient;\n const SERVICE_TOKEN = options.serviceToken || serviceClass;\n const asyncProviders = this.createAsyncProviders(options);\n const serviceProviders: any = [];\n if (serviceClass)\n serviceProviders.push({\n provide: SERVICE_TOKEN,\n deps: [CLIENT_TOKEN],\n useFactory: (opraHttpClient: OpraHttpClient) => {\n return new serviceClass(opraHttpClient);\n }\n });\n\n return {\n ngModule: OpraClientModule,\n providers: [\n ...asyncProviders,\n ...serviceProviders,\n {\n provide: CLIENT_TOKEN,\n deps: [OPRA_CLIENT_MODULE_OPTIONS],\n useFactory: (opts: OpraClientModuleOptions) =>\n new OpraHttpClient(opts.serviceUrl, opts)\n },\n {\n provide: APP_INITIALIZER,\n deps: [CLIENT_TOKEN],\n useFactory: (client: OpraHttpClient) => {\n return () => client.init()\n },\n multi: true\n }\n ]\n };\n }\n\n private static createAsyncProviders(options: OpraClientModuleAsyncOptions): Provider[] {\n if (options.useExisting || options.useFactory)\n return [this.createAsyncOptionsProvider(options)];\n\n if (options.useClass)\n return [\n this.createAsyncOptionsProvider(options),\n {\n provide: options.useClass,\n useClass: options.useClass\n }\n ];\n\n throw new Error('Invalid configuration. Must provide useFactory, useClass or useExisting');\n }\n\n private static createAsyncOptionsProvider(options: OpraClientModuleAsyncOptions): Provider {\n if (options.useFactory) {\n return {\n provide: OPRA_CLIENT_MODULE_OPTIONS,\n useFactory: options.useFactory,\n deps: options.deps || [],\n };\n }\n const useClass = options.useClass || options.useExisting;\n if (useClass) {\n return {\n provide: OPRA_CLIENT_MODULE_OPTIONS,\n useFactory: (o) => o,\n deps: [useClass],\n };\n }\n throw new Error('Invalid configuration. Must provide useFactory, useClass or useExisting');\n }\n\n\n}\n","/* eslint-disable import/extensions */\nexport * from './client.module';\nexport * from './interfaces/module-options.interface';\nexport * from './constants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opra-angular.mjs","sources":["../../../packages/angular/src/constants.ts","../../../packages/angular/src/client.module.ts","../../../packages/angular/src/public_api.ts","../../../packages/angular/src/opra-angular.ts"],"sourcesContent":["export const OPRA_CLIENT_MODULE_OPTIONS = 'OPRA_CLIENT_MODULE_OPTIONS';\n","/* eslint-disable import/extensions */\nimport { ModuleWithProviders, NgModule, Provider, Type } from '@angular/core';\nimport { HttpServiceBase, OpraHttpClient } from '@opra/client';\nimport { OPRA_CLIENT_MODULE_OPTIONS } from './constants';\nimport {\n OpraClientModuleAsyncOptions,\n OpraClientModuleOptions\n} from './interfaces/module-options.interface';\n\n@NgModule({})\nexport class OpraClientModule {\n\n public static registerClient(options: OpraClientModuleOptions): ModuleWithProviders<OpraClientModule> {\n const CLIENT_TOKEN = options.token || OpraHttpClient;\n const client = new OpraHttpClient(options.serviceUrl, options);\n return {\n ngModule: OpraClientModule,\n providers: [\n {\n provide: CLIENT_TOKEN,\n useValue: client\n }\n ]\n };\n }\n\n public static registerService<T extends HttpServiceBase>(\n serviceClass: Type<T>,\n options: OpraClientModuleOptions\n ): ModuleWithProviders<OpraClientModule> {\n const SERVICE_TOKEN = options.token || serviceClass;\n const client = new OpraHttpClient(options.serviceUrl, options);\n const service = new serviceClass(client);\n return {\n ngModule: OpraClientModule,\n providers: [\n {\n provide: SERVICE_TOKEN,\n useValue: service\n }\n ]\n };\n }\n\n public static registerClientAsync(\n options: OpraClientModuleAsyncOptions\n ): ModuleWithProviders<OpraClientModule> {\n const CLIENT_TOKEN = options.token || OpraHttpClient;\n const asyncProviders = this._createAsyncProviders(options);\n return {\n ngModule: OpraClientModule,\n providers: [\n ...asyncProviders,\n {\n provide: CLIENT_TOKEN,\n deps: [OPRA_CLIENT_MODULE_OPTIONS],\n useFactory: (opts: OpraClientModuleOptions) =>\n new OpraHttpClient(opts.serviceUrl, opts)\n }\n ]\n };\n }\n\n public static registerServiceAsync<T extends HttpServiceBase>(\n serviceClass: Type<T>,\n options: OpraClientModuleAsyncOptions\n ): ModuleWithProviders<OpraClientModule> {\n const SERVICE_TOKEN = options.token || serviceClass;\n const asyncProviders = this._createAsyncProviders(options);\n return {\n ngModule: OpraClientModule,\n providers: [\n ...asyncProviders,\n {\n provide: SERVICE_TOKEN,\n deps: [OPRA_CLIENT_MODULE_OPTIONS],\n useFactory: (opts: OpraClientModuleOptions) => {\n const client = new OpraHttpClient(opts.serviceUrl, opts)\n return new serviceClass(client);\n }\n }\n ]\n };\n }\n\n private static _createAsyncProviders(options: OpraClientModuleAsyncOptions): Provider[] {\n if (options.useExisting || options.useFactory)\n return [this._createAsyncOptionsProvider(options)];\n\n if (options.useClass)\n return [\n this._createAsyncOptionsProvider(options),\n {\n provide: options.useClass,\n useClass: options.useClass\n }\n ];\n\n throw new Error('Invalid configuration. Must provide useFactory, useClass or useExisting');\n }\n\n private static _createAsyncOptionsProvider(options: OpraClientModuleAsyncOptions): Provider {\n if (options.useFactory) {\n return {\n provide: OPRA_CLIENT_MODULE_OPTIONS,\n useFactory: options.useFactory,\n deps: options.deps || [],\n };\n }\n const useClass = options.useClass || options.useExisting;\n if (useClass) {\n return {\n provide: OPRA_CLIENT_MODULE_OPTIONS,\n useFactory: (o) => o,\n deps: [useClass],\n };\n }\n throw new Error('Invalid configuration. Must provide useFactory, useClass or useExisting');\n }\n\n\n}\n","/* eslint-disable import/extensions */\nexport * from './client.module';\nexport * from './interfaces/module-options.interface';\nexport * from './constants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,19 +1,16 @@
1
+ import type { StrictOmit } from 'ts-gems';
1
2
  import { InjectionToken, NgModule, Type } from '@angular/core';
2
3
  import { OpraHttpClientOptions } from '@opra/client';
3
4
  export type OpraClientModuleOptions = OpraHttpClientOptions & {
4
5
  serviceUrl: string;
5
- clientToken?: string | InjectionToken<any>;
6
- serviceToken?: string | InjectionToken<any>;
7
- serviceClass?: Type<any>;
6
+ token?: string | InjectionToken<any>;
8
7
  };
9
- type _OpraClientModuleOptions = Omit<OpraClientModuleOptions, 'clientToken' | 'serviceToken' | 'serviceClass'>;
8
+ type _OpraClientModuleOptions = StrictOmit<OpraClientModuleOptions, 'token'>;
10
9
  export interface OpraModuleOptionsFactory {
11
10
  createOptions(): Promise<_OpraClientModuleOptions> | _OpraClientModuleOptions;
12
11
  }
13
12
  export interface OpraClientModuleAsyncOptions extends Pick<NgModule, 'imports' | 'providers'> {
14
- clientToken?: string | InjectionToken<any>;
15
- serviceToken?: string | InjectionToken<any>;
16
- serviceClass?: Type<any>;
13
+ token?: string | InjectionToken<any>;
17
14
  useExisting?: Type<OpraModuleOptionsFactory>;
18
15
  useClass?: Type<any>;
19
16
  useFactory?: (...args: any[]) => Promise<_OpraClientModuleOptions> | _OpraClientModuleOptions;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opra/angular",
3
- "version": "0.14.0",
3
+ "version": "0.16.0",
4
4
  "description": "Opra internationalization package",
5
5
  "author": "Panates",
6
6
  "license": "MIT",
@@ -10,10 +10,9 @@
10
10
  "directory": "packages/angular"
11
11
  },
12
12
  "peerDependencies": {
13
- "@angular/common": "^14.2.12 || 15.x.x",
14
- "@angular/core": "^14.2.12 || 15.x.x",
15
- "@opra/client": "^0.14.0",
16
- "ts-gems": "^2.3.0"
13
+ "@angular/common": "14.x.x || 15.x.x || 16.x.x",
14
+ "@angular/core": "14.x.x || 15.x.x || 16.x.x",
15
+ "@opra/client": "^0.16.0"
17
16
  },
18
17
  "engines": {
19
18
  "node": ">=16.0",