@opra/angular 0.13.0 → 0.14.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,16 +1,27 @@
1
1
  /* eslint-disable import/extensions */
2
- import { HttpClient } from '@angular/common/http';
3
2
  import { APP_INITIALIZER, NgModule } from '@angular/core';
4
3
  import { OpraHttpClient } from '@opra/client';
5
4
  import { OPRA_CLIENT_MODULE_OPTIONS } from './constants';
6
5
  import * as i0 from "@angular/core";
7
6
  export class OpraClientModule {
8
7
  static forRoot(options) {
9
- const CLIENT_TOKEN = options.token || OpraHttpClient;
8
+ const serviceClass = options.serviceClass;
9
+ const CLIENT_TOKEN = options.clientToken || OpraHttpClient;
10
+ const SERVICE_TOKEN = options.serviceToken || serviceClass;
10
11
  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
+ });
11
21
  return {
12
22
  ngModule: OpraClientModule,
13
23
  providers: [
24
+ ...serviceProviders,
14
25
  {
15
26
  provide: OPRA_CLIENT_MODULE_OPTIONS,
16
27
  useValue: options,
@@ -30,16 +41,28 @@ export class OpraClientModule {
30
41
  };
31
42
  }
32
43
  static forRootAsync(options) {
33
- const CLIENT_TOKEN = options.token || OpraHttpClient;
44
+ const serviceClass = options.serviceClass;
45
+ const CLIENT_TOKEN = options.clientToken || OpraHttpClient;
46
+ const SERVICE_TOKEN = options.serviceToken || serviceClass;
34
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);
55
+ }
56
+ });
35
57
  return {
36
58
  ngModule: OpraClientModule,
37
59
  providers: [
38
60
  ...asyncProviders,
61
+ ...serviceProviders,
39
62
  {
40
63
  provide: CLIENT_TOKEN,
41
- deps: [HttpClient, OPRA_CLIENT_MODULE_OPTIONS],
42
- useFactory: (httpClient, opts) => new OpraHttpClient(opts.serviceUrl, opts)
64
+ deps: [OPRA_CLIENT_MODULE_OPTIONS],
65
+ useFactory: (opts) => new OpraHttpClient(opts.serviceUrl, opts)
43
66
  },
44
67
  {
45
68
  provide: APP_INITIALIZER,
@@ -91,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
91
114
  type: NgModule,
92
115
  args: [{}]
93
116
  }] });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvc3JjL2NsaWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0NBQXNDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUF1QixRQUFRLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBS3pELE1BQU0sT0FBTyxnQkFBZ0I7SUFFcEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFnQztRQUNwRCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLGNBQWMsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9ELE9BQU87WUFDTCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsMEJBQTBCO29CQUNuQyxRQUFRLEVBQUUsT0FBTztpQkFDbEI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLFlBQVk7b0JBQ3JCLFFBQVEsRUFBRSxNQUFNO2lCQUNqQjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsZUFBZTtvQkFDeEIsVUFBVSxFQUFFLEdBQUcsRUFBRTt3QkFDZixPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtvQkFDNUIsQ0FBQztvQkFDRCxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUN0QixPQUFxQztRQUV2QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLGNBQWMsQ0FBQztRQUNyRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUQsT0FBTztZQUNMLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFO2dCQUNULEdBQUcsY0FBYztnQkFDakI7b0JBQ0UsT0FBTyxFQUFFLFlBQVk7b0JBQ3JCLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSwwQkFBMEIsQ0FBQztvQkFDOUMsVUFBVSxFQUFFLENBQUMsVUFBc0IsRUFBRSxJQUE2QixFQUFFLEVBQUUsQ0FDbEUsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7aUJBQzlDO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxlQUFlO29CQUN4QixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3BCLFVBQVUsRUFBRSxDQUFDLE1BQXNCLEVBQUUsRUFBRTt3QkFDckMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7b0JBQzVCLENBQUM7b0JBQ0QsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLG9CQUFvQixDQUFDLE9BQXFDO1FBQ3ZFLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsVUFBVTtZQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFcEQsSUFBSSxPQUFPLENBQUMsUUFBUTtZQUNsQixPQUFPO2dCQUNMLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUM7Z0JBQ3hDO29CQUNFLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUTtvQkFDekIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO2lCQUMzQjthQUNGLENBQUM7UUFFSixNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVPLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxPQUFxQztRQUM3RSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDdEIsT0FBTztnQkFDTCxPQUFPLEVBQUUsMEJBQTBCO2dCQUNuQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7Z0JBQzlCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUU7YUFDekIsQ0FBQztTQUNIO1FBQ0QsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3pELElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTztnQkFDTCxPQUFPLEVBQUUsMEJBQTBCO2dCQUNuQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNqQixDQUFDO1NBQ0g7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7SUFDN0YsQ0FBQzs7NkdBeEZVLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFGNUIsUUFBUTttQkFBQyxFQUNUIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L2V4dGVuc2lvbnMgKi9cbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ByYUh0dHBDbGllbnQgfSBmcm9tICdAb3ByYS9jbGllbnQnO1xuaW1wb3J0IHsgT1BSQV9DTElFTlRfTU9EVUxFX09QVElPTlMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPcHJhQ2xpZW50TW9kdWxlQXN5bmNPcHRpb25zLCBPcHJhQ2xpZW50TW9kdWxlT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcy9tb2R1bGUtb3B0aW9ucy5pbnRlcmZhY2UnO1xuXG5ATmdNb2R1bGUoe1xufSlcbmV4cG9ydCBjbGFzcyBPcHJhQ2xpZW50TW9kdWxlIHtcblxuICBwdWJsaWMgc3RhdGljIGZvclJvb3Qob3B0aW9uczogT3ByYUNsaWVudE1vZHVsZU9wdGlvbnMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE9wcmFDbGllbnRNb2R1bGU+IHtcbiAgICBjb25zdCBDTElFTlRfVE9LRU4gPSBvcHRpb25zLnRva2VuIHx8IE9wcmFIdHRwQ2xpZW50O1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBPcHJhSHR0cENsaWVudChvcHRpb25zLnNlcnZpY2VVcmwsIG9wdGlvbnMpO1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogT3ByYUNsaWVudE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogT1BSQV9DTElFTlRfTU9EVUxFX09QVElPTlMsXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBDTElFTlRfVE9LRU4sXG4gICAgICAgICAgdXNlVmFsdWU6IGNsaWVudFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiBjbGllbnQuaW5pdCgpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZvclJvb3RBc3luYyhcbiAgICAgIG9wdGlvbnM6IE9wcmFDbGllbnRNb2R1bGVBc3luY09wdGlvbnNcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxPcHJhQ2xpZW50TW9kdWxlPiB7XG4gICAgY29uc3QgQ0xJRU5UX1RPS0VOID0gb3B0aW9ucy50b2tlbiB8fCBPcHJhSHR0cENsaWVudDtcbiAgICBjb25zdCBhc3luY1Byb3ZpZGVycyA9IHRoaXMuY3JlYXRlQXN5bmNQcm92aWRlcnMob3B0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE9wcmFDbGllbnRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgLi4uYXN5bmNQcm92aWRlcnMsXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBDTElFTlRfVE9LRU4sXG4gICAgICAgICAgZGVwczogW0h0dHBDbGllbnQsIE9QUkFfQ0xJRU5UX01PRFVMRV9PUFRJT05TXSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAoaHR0cENsaWVudDogSHR0cENsaWVudCwgb3B0czogT3ByYUNsaWVudE1vZHVsZU9wdGlvbnMpID0+XG4gICAgICAgICAgICAgIG5ldyBPcHJhSHR0cENsaWVudChvcHRzLnNlcnZpY2VVcmwsIG9wdHMpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgZGVwczogW0NMSUVOVF9UT0tFTl0sXG4gICAgICAgICAgdXNlRmFjdG9yeTogKGNsaWVudDogT3ByYUh0dHBDbGllbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiBjbGllbnQuaW5pdCgpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZUFzeW5jUHJvdmlkZXJzKG9wdGlvbnM6IE9wcmFDbGllbnRNb2R1bGVBc3luY09wdGlvbnMpOiBQcm92aWRlcltdIHtcbiAgICBpZiAob3B0aW9ucy51c2VFeGlzdGluZyB8fCBvcHRpb25zLnVzZUZhY3RvcnkpXG4gICAgICByZXR1cm4gW3RoaXMuY3JlYXRlQXN5bmNPcHRpb25zUHJvdmlkZXIob3B0aW9ucyldO1xuXG4gICAgaWYgKG9wdGlvbnMudXNlQ2xhc3MpXG4gICAgICByZXR1cm4gW1xuICAgICAgICB0aGlzLmNyZWF0ZUFzeW5jT3B0aW9uc1Byb3ZpZGVyKG9wdGlvbnMpLFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogb3B0aW9ucy51c2VDbGFzcyxcbiAgICAgICAgICB1c2VDbGFzczogb3B0aW9ucy51c2VDbGFzc1xuICAgICAgICB9XG4gICAgICBdO1xuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbmZpZ3VyYXRpb24uIE11c3QgcHJvdmlkZSB1c2VGYWN0b3J5LCB1c2VDbGFzcyBvciB1c2VFeGlzdGluZycpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlQXN5bmNPcHRpb25zUHJvdmlkZXIob3B0aW9uczogT3ByYUNsaWVudE1vZHVsZUFzeW5jT3B0aW9ucyk6IFByb3ZpZGVyIHtcbiAgICBpZiAob3B0aW9ucy51c2VGYWN0b3J5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlOiBPUFJBX0NMSUVOVF9NT0RVTEVfT1BUSU9OUyxcbiAgICAgICAgdXNlRmFjdG9yeTogb3B0aW9ucy51c2VGYWN0b3J5LFxuICAgICAgICBkZXBzOiBvcHRpb25zLmRlcHMgfHwgW10sXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCB1c2VDbGFzcyA9IG9wdGlvbnMudXNlQ2xhc3MgfHwgb3B0aW9ucy51c2VFeGlzdGluZztcbiAgICBpZiAodXNlQ2xhc3MpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IE9QUkFfQ0xJRU5UX01PRFVMRV9PUFRJT05TLFxuICAgICAgICB1c2VGYWN0b3J5OiAobykgPT4gbyxcbiAgICAgICAgZGVwczogW3VzZUNsYXNzXSxcbiAgICAgIH07XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb25maWd1cmF0aW9uLiBNdXN0IHByb3ZpZGUgdXNlRmFjdG9yeSwgdXNlQ2xhc3Mgb3IgdXNlRXhpc3RpbmcnKTtcbiAgfVxuXG5cbn1cbiJdfQ==
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvc3JjL2NsaWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0NBQXNDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQXVCLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFJekQsTUFBTSxPQUFPLGdCQUFnQjtJQUVwQixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQWdDO1FBQ3BELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDMUMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxjQUFjLENBQUM7UUFDM0QsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUM7UUFDM0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvRCxNQUFNLGdCQUFnQixHQUFRLEVBQUUsQ0FBQztRQUNqQyxJQUFJLFlBQVk7WUFDZCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3BCLFVBQVUsRUFBRSxDQUFDLGNBQThCLEVBQUUsRUFBRTtvQkFDN0MsT0FBTyxJQUFJLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDMUMsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLE9BQU87WUFDTCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDVCxHQUFHLGdCQUFnQjtnQkFDbkI7b0JBQ0UsT0FBTyxFQUFFLDBCQUEwQjtvQkFDbkMsUUFB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QkFDTCxPQUFPLEVBQUUsMEJBQTBCO2dCQUNuQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNqQixDQUFDO1NBQ0g7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7SUFDN0YsQ0FBQzs7NkdBaEhVLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsUUFBUTttQkFBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L2V4dGVuc2lvbnMgKi9cbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPcHJhSHR0cENsaWVudCB9IGZyb20gJ0BvcHJhL2NsaWVudCc7XG5pbXBvcnQgeyBPUFJBX0NMSUVOVF9NT0RVTEVfT1BUSU9OUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IE9wcmFDbGllbnRNb2R1bGVBc3luY09wdGlvbnMsIE9wcmFDbGllbnRNb2R1bGVPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL21vZHVsZS1vcHRpb25zLmludGVyZmFjZSc7XG5cbkBOZ01vZHVsZSh7fSlcbmV4cG9ydCBjbGFzcyBPcHJhQ2xpZW50TW9kdWxlIHtcblxuICBwdWJsaWMgc3RhdGljIGZvclJvb3Qob3B0aW9uczogT3ByYUNsaWVudE1vZHVsZU9wdGlvbnMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE9wcmFDbGllbnRNb2R1bGU+IHtcbiAgICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBvcHRpb25zLnNlcnZpY2VDbGFzcztcbiAgICBjb25zdCBDTElFTlRfVE9LRU4gPSBvcHRpb25zLmNsaWVudFRva2VuIHx8IE9wcmFIdHRwQ2xpZW50O1xuICAgIGNvbnN0IFNFUlZJQ0VfVE9LRU4gPSBvcHRpb25zLnNlcnZpY2VUb2tlbiB8fCBzZXJ2aWNlQ2xhc3M7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IE9wcmFIdHRwQ2xpZW50KG9wdGlvbnMuc2VydmljZVVybCwgb3B0aW9ucyk7XG4gICAgY29uc3Qgc2VydmljZVByb3ZpZGVyczogYW55ID0gW107XG4gICAgaWYgKHNlcnZpY2VDbGFzcylcbiAgICAgIHNlcnZpY2VQcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IFNFUlZJQ0VfVE9LRU4sXG4gICAgICAgIGRlcHM6IFtDTElFTlRfVE9LRU5dLFxuICAgICAgICB1c2VGYWN0b3J5OiAob3ByYUh0dHBDbGllbnQ6IE9wcmFIdHRwQ2xpZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBzZXJ2aWNlQ2xhc3Mob3ByYUh0dHBDbGllbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE9wcmFDbGllbnRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgLi4uc2VydmljZVByb3ZpZGVycyxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE9QUkFfQ0xJRU5UX01PRFVMRV9PUFRJT05TLFxuICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQ0xJRU5UX1RPS0VOLFxuICAgICAgICAgIHVzZVZhbHVlOiBjbGllbnRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4gY2xpZW50LmluaXQoKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmb3JSb290QXN5bmMoXG4gICAgICBvcHRpb25zOiBPcHJhQ2xpZW50TW9kdWxlQXN5bmNPcHRpb25zXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8T3ByYUNsaWVudE1vZHVsZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VDbGFzcyA9IG9wdGlvbnMuc2VydmljZUNsYXNzO1xuICAgIGNvbnN0IENMSUVOVF9UT0tFTiA9IG9wdGlvbnMuY2xpZW50VG9rZW4gfHwgT3ByYUh0dHBDbGllbnQ7XG4gICAgY29uc3QgU0VSVklDRV9UT0tFTiA9IG9wdGlvbnMuc2VydmljZVRva2VuIHx8IHNlcnZpY2VDbGFzcztcbiAgICBjb25zdCBhc3luY1Byb3ZpZGVycyA9IHRoaXMuY3JlYXRlQXN5bmNQcm92aWRlcnMob3B0aW9ucyk7XG4gICAgY29uc3Qgc2VydmljZVByb3ZpZGVyczogYW55ID0gW107XG4gICAgaWYgKHNlcnZpY2VDbGFzcylcbiAgICAgIHNlcnZpY2VQcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IFNFUlZJQ0VfVE9LRU4sXG4gICAgICAgIGRlcHM6IFtDTElFTlRfVE9LRU5dLFxuICAgICAgICB1c2VGYWN0b3J5OiAob3ByYUh0dHBDbGllbnQ6IE9wcmFIdHRwQ2xpZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBzZXJ2aWNlQ2xhc3Mob3ByYUh0dHBDbGllbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogT3ByYUNsaWVudE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAuLi5hc3luY1Byb3ZpZGVycyxcbiAgICAgICAgLi4uc2VydmljZVByb3ZpZGVycyxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IENMSUVOVF9UT0tFTixcbiAgICAgICAgICBkZXBzOiBbT1BSQV9DTElFTlRfTU9EVUxFX09QVElPTlNdLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IChvcHRzOiBPcHJhQ2xpZW50TW9kdWxlT3B0aW9ucykgPT5cbiAgICAgICAgICAgICAgbmV3IE9wcmFIdHRwQ2xpZW50KG9wdHMuc2VydmljZVVybCwgb3B0cylcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICBkZXBzOiBbQ0xJRU5UX1RPS0VOXSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAoY2xpZW50OiBPcHJhSHR0cENsaWVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IGNsaWVudC5pbml0KClcbiAgICAgICAgICB9LFxuICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlQXN5bmNQcm92aWRlcnMob3B0aW9uczogT3ByYUNsaWVudE1vZHVsZUFzeW5jT3B0aW9ucyk6IFByb3ZpZGVyW10ge1xuICAgIGlmIChvcHRpb25zLnVzZUV4aXN0aW5nIHx8IG9wdGlvbnMudXNlRmFjdG9yeSlcbiAgICAgIHJldHVybiBbdGhpcy5jcmVhdGVBc3luY09wdGlvbnNQcm92aWRlcihvcHRpb25zKV07XG5cbiAgICBpZiAob3B0aW9ucy51c2VDbGFzcylcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHRoaXMuY3JlYXRlQXN5bmNPcHRpb25zUHJvdmlkZXIob3B0aW9ucyksXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBvcHRpb25zLnVzZUNsYXNzLFxuICAgICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLnVzZUNsYXNzXG4gICAgICAgIH1cbiAgICAgIF07XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29uZmlndXJhdGlvbi4gTXVzdCBwcm92aWRlIHVzZUZhY3RvcnksIHVzZUNsYXNzIG9yIHVzZUV4aXN0aW5nJyk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVBc3luY09wdGlvbnNQcm92aWRlcihvcHRpb25zOiBPcHJhQ2xpZW50TW9kdWxlQXN5bmNPcHRpb25zKTogUHJvdmlkZXIge1xuICAgIGlmIChvcHRpb25zLnVzZUZhY3RvcnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IE9QUkFfQ0xJRU5UX01PRFVMRV9PUFRJT05TLFxuICAgICAgICB1c2VGYWN0b3J5OiBvcHRpb25zLnVzZUZhY3RvcnksXG4gICAgICAgIGRlcHM6IG9wdGlvbnMuZGVwcyB8fCBbXSxcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHVzZUNsYXNzID0gb3B0aW9ucy51c2VDbGFzcyB8fCBvcHRpb25zLnVzZUV4aXN0aW5nO1xuICAgIGlmICh1c2VDbGFzcykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogT1BSQV9DTElFTlRfTU9EVUxFX09QVElPTlMsXG4gICAgICAgIHVzZUZhY3Rvcnk6IChvKSA9PiBvLFxuICAgICAgICBkZXBzOiBbdXNlQ2xhc3NdLFxuICAgICAgfTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbmZpZ3VyYXRpb24uIE11c3QgcHJvdmlkZSB1c2VGYWN0b3J5LCB1c2VDbGFzcyBvciB1c2VFeGlzdGluZycpO1xuICB9XG5cblxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLW9wdGlvbnMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9zcmMvaW50ZXJmYWNlcy9tb2R1bGUtb3B0aW9ucy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBOZ01vZHVsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ByYUh0dHBDbGllbnRPcHRpb25zIH0gZnJvbSAnQG9wcmEvY2xpZW50JztcblxuZXhwb3J0IHR5cGUgT3ByYUNsaWVudE1vZHVsZU9wdGlvbnMgPSBPcHJhSHR0cENsaWVudE9wdGlvbnMgJiB7XG4gIHNlcnZpY2VVcmw6IHN0cmluZztcbiAgdG9rZW4/OiBzdHJpbmcgfCBJbmplY3Rpb25Ub2tlbjxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wcmFNb2R1bGVPcHRpb25zRmFjdG9yeSB7XG4gIGNyZWF0ZU9wdGlvbnMoKTogUHJvbWlzZTxPcHJhQ2xpZW50TW9kdWxlT3B0aW9ucz4gfCBPcHJhQ2xpZW50TW9kdWxlT3B0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHJhQ2xpZW50TW9kdWxlQXN5bmNPcHRpb25zXG4gICAgZXh0ZW5kcyBQaWNrPE5nTW9kdWxlLCAnaW1wb3J0cycgfCAncHJvdmlkZXJzJz4ge1xuICB0b2tlbj86IHN0cmluZyB8IEluamVjdGlvblRva2VuPGFueT47XG4gIHVzZUV4aXN0aW5nPzogVHlwZTxPcHJhTW9kdWxlT3B0aW9uc0ZhY3Rvcnk+O1xuICB1c2VDbGFzcz86IFR5cGU8YW55PjtcbiAgdXNlRmFjdG9yeT86ICguLi5hcmdzOiBhbnlbXSkgPT4gUHJvbWlzZTxPcHJhQ2xpZW50TW9kdWxlT3B0aW9ucz4gfCBPcHJhQ2xpZW50TW9kdWxlT3B0aW9ucztcbiAgZGVwcz86IGFueVtdO1xufVxuXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLW9wdGlvbnMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9zcmMvaW50ZXJmYWNlcy9tb2R1bGUtb3B0aW9ucy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBOZ01vZHVsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ByYUh0dHBDbGllbnRPcHRpb25zIH0gZnJvbSAnQG9wcmEvY2xpZW50JztcblxuZXhwb3J0IHR5cGUgT3ByYUNsaWVudE1vZHVsZU9wdGlvbnMgPSBPcHJhSHR0cENsaWVudE9wdGlvbnMgJiB7XG4gIHNlcnZpY2VVcmw6IHN0cmluZztcbiAgY2xpZW50VG9rZW4/OiBzdHJpbmcgfCBJbmplY3Rpb25Ub2tlbjxhbnk+O1xuICBzZXJ2aWNlVG9rZW4/OiBzdHJpbmcgfCBJbmplY3Rpb25Ub2tlbjxhbnk+O1xuICBzZXJ2aWNlQ2xhc3M/OiBUeXBlPGFueT47XG59XG5cbnR5cGUgX09wcmFDbGllbnRNb2R1bGVPcHRpb25zID0gT21pdDxPcHJhQ2xpZW50TW9kdWxlT3B0aW9ucywgJ2NsaWVudFRva2VuJyB8ICdzZXJ2aWNlVG9rZW4nIHwgJ3NlcnZpY2VDbGFzcyc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wcmFNb2R1bGVPcHRpb25zRmFjdG9yeSB7XG4gIGNyZWF0ZU9wdGlvbnMoKTogUHJvbWlzZTxfT3ByYUNsaWVudE1vZHVsZU9wdGlvbnM+IHwgX09wcmFDbGllbnRNb2R1bGVPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wcmFDbGllbnRNb2R1bGVBc3luY09wdGlvbnNcbiAgICBleHRlbmRzIFBpY2s8TmdNb2R1bGUsICdpbXBvcnRzJyB8ICdwcm92aWRlcnMnPiB7XG4gIGNsaWVudFRva2VuPzogc3RyaW5nIHwgSW5qZWN0aW9uVG9rZW48YW55PjtcbiAgc2VydmljZVRva2VuPzogc3RyaW5nIHwgSW5qZWN0aW9uVG9rZW48YW55PjtcbiAgc2VydmljZUNsYXNzPzogVHlwZTxhbnk+O1xuICB1c2VFeGlzdGluZz86IFR5cGU8T3ByYU1vZHVsZU9wdGlvbnNGYWN0b3J5PjtcbiAgdXNlQ2xhc3M/OiBUeXBlPGFueT47XG4gIHVzZUZhY3Rvcnk/OiAoLi4uYXJnczogYW55W10pID0+IFByb21pc2U8X09wcmFDbGllbnRNb2R1bGVPcHRpb25zPiB8IF9PcHJhQ2xpZW50TW9kdWxlT3B0aW9ucztcbiAgZGVwcz86IGFueVtdO1xufVxuXG4iXX0=
@@ -1,4 +1,3 @@
1
- import { HttpClient } from '@angular/common/http';
2
1
  import * as i0 from '@angular/core';
3
2
  import { APP_INITIALIZER, NgModule } from '@angular/core';
4
3
  import { OpraHttpClient } from '@opra/client';
@@ -8,11 +7,23 @@ const OPRA_CLIENT_MODULE_OPTIONS = 'OPRA_CLIENT_MODULE_OPTIONS';
8
7
  /* eslint-disable import/extensions */
9
8
  class OpraClientModule {
10
9
  static forRoot(options) {
11
- const CLIENT_TOKEN = options.token || OpraHttpClient;
10
+ const serviceClass = options.serviceClass;
11
+ const CLIENT_TOKEN = options.clientToken || OpraHttpClient;
12
+ const SERVICE_TOKEN = options.serviceToken || serviceClass;
12
13
  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
+ });
13
23
  return {
14
24
  ngModule: OpraClientModule,
15
25
  providers: [
26
+ ...serviceProviders,
16
27
  {
17
28
  provide: OPRA_CLIENT_MODULE_OPTIONS,
18
29
  useValue: options,
@@ -32,16 +43,28 @@ class OpraClientModule {
32
43
  };
33
44
  }
34
45
  static forRootAsync(options) {
35
- const CLIENT_TOKEN = options.token || OpraHttpClient;
46
+ const serviceClass = options.serviceClass;
47
+ const CLIENT_TOKEN = options.clientToken || OpraHttpClient;
48
+ const SERVICE_TOKEN = options.serviceToken || serviceClass;
36
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);
57
+ }
58
+ });
37
59
  return {
38
60
  ngModule: OpraClientModule,
39
61
  providers: [
40
62
  ...asyncProviders,
63
+ ...serviceProviders,
41
64
  {
42
65
  provide: CLIENT_TOKEN,
43
- deps: [HttpClient, OPRA_CLIENT_MODULE_OPTIONS],
44
- useFactory: (httpClient, opts) => new OpraHttpClient(opts.serviceUrl, opts)
66
+ deps: [OPRA_CLIENT_MODULE_OPTIONS],
67
+ useFactory: (opts) => new OpraHttpClient(opts.serviceUrl, opts)
45
68
  },
46
69
  {
47
70
  provide: APP_INITIALIZER,
@@ -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 { HttpClient } from '@angular/common/http';\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({\n})\nexport class OpraClientModule {\n\n public static forRoot(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: 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 CLIENT_TOKEN = options.token || OpraHttpClient;\n const asyncProviders = this.createAsyncProviders(options);\n\n return {\n ngModule: OpraClientModule,\n providers: [\n ...asyncProviders,\n {\n provide: CLIENT_TOKEN,\n deps: [HttpClient, OPRA_CLIENT_MODULE_OPTIONS],\n useFactory: (httpClient: HttpClient, 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 { 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,4 +1,3 @@
1
- import { HttpClient } from '@angular/common/http';
2
1
  import * as i0 from '@angular/core';
3
2
  import { APP_INITIALIZER, NgModule } from '@angular/core';
4
3
  import { OpraHttpClient } from '@opra/client';
@@ -8,11 +7,23 @@ const OPRA_CLIENT_MODULE_OPTIONS = 'OPRA_CLIENT_MODULE_OPTIONS';
8
7
  /* eslint-disable import/extensions */
9
8
  class OpraClientModule {
10
9
  static forRoot(options) {
11
- const CLIENT_TOKEN = options.token || OpraHttpClient;
10
+ const serviceClass = options.serviceClass;
11
+ const CLIENT_TOKEN = options.clientToken || OpraHttpClient;
12
+ const SERVICE_TOKEN = options.serviceToken || serviceClass;
12
13
  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
+ });
13
23
  return {
14
24
  ngModule: OpraClientModule,
15
25
  providers: [
26
+ ...serviceProviders,
16
27
  {
17
28
  provide: OPRA_CLIENT_MODULE_OPTIONS,
18
29
  useValue: options,
@@ -32,16 +43,28 @@ class OpraClientModule {
32
43
  };
33
44
  }
34
45
  static forRootAsync(options) {
35
- const CLIENT_TOKEN = options.token || OpraHttpClient;
46
+ const serviceClass = options.serviceClass;
47
+ const CLIENT_TOKEN = options.clientToken || OpraHttpClient;
48
+ const SERVICE_TOKEN = options.serviceToken || serviceClass;
36
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);
57
+ }
58
+ });
37
59
  return {
38
60
  ngModule: OpraClientModule,
39
61
  providers: [
40
62
  ...asyncProviders,
63
+ ...serviceProviders,
41
64
  {
42
65
  provide: CLIENT_TOKEN,
43
- deps: [HttpClient, OPRA_CLIENT_MODULE_OPTIONS],
44
- useFactory: (httpClient, opts) => new OpraHttpClient(opts.serviceUrl, opts)
66
+ deps: [OPRA_CLIENT_MODULE_OPTIONS],
67
+ useFactory: (opts) => new OpraHttpClient(opts.serviceUrl, opts)
45
68
  },
46
69
  {
47
70
  provide: APP_INITIALIZER,
@@ -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 { HttpClient } from '@angular/common/http';\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({\n})\nexport class OpraClientModule {\n\n public static forRoot(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: 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 CLIENT_TOKEN = options.token || OpraHttpClient;\n const asyncProviders = this.createAsyncProviders(options);\n\n return {\n ngModule: OpraClientModule,\n providers: [\n ...asyncProviders,\n {\n provide: CLIENT_TOKEN,\n deps: [HttpClient, OPRA_CLIENT_MODULE_OPTIONS],\n useFactory: (httpClient: HttpClient, 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":";;;;;AAAO,MAAM,0BAA0B,GAAG;;ACA1C;MASa,gBAAgB,CAAA;IAEpB,OAAO,OAAO,CAAC,OAAgC,EAAA;AACpD,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,cAAc,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC/D,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,0BAA0B;AACnC,oBAAA,QAAQ,EAAE,OAAO;AAClB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,YAAY;AACrB,oBAAA,QAAQ,EAAE,MAAM;AACjB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,eAAe;oBACxB,UAAU,EAAE,MAAK;AACf,wBAAA,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;qBAC3B;AACD,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF,CAAC;KACH;IAEM,OAAO,YAAY,CACtB,OAAqC,EAAA;AAEvC,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,cAAc,CAAC;QACrD,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAE1D,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;AACT,gBAAA,GAAG,cAAc;AACjB,gBAAA;AACE,oBAAA,OAAO,EAAE,YAAY;AACrB,oBAAA,IAAI,EAAE,CAAC,UAAU,EAAE,0BAA0B,CAAC;AAC9C,oBAAA,UAAU,EAAE,CAAC,UAAsB,EAAE,IAA6B,KAC9D,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;AAC9C,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,eAAe;oBACxB,IAAI,EAAE,CAAC,YAAY,CAAC;AACpB,oBAAA,UAAU,EAAE,CAAC,MAAsB,KAAI;AACrC,wBAAA,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;qBAC3B;AACD,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF,CAAC;KACH;IAEO,OAAO,oBAAoB,CAAC,OAAqC,EAAA;AACvE,QAAA,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU;YAC3C,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;QAEpD,IAAI,OAAO,CAAC,QAAQ;YAClB,OAAO;AACL,gBAAA,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;AACxC,gBAAA;oBACE,OAAO,EAAE,OAAO,CAAC,QAAQ;oBACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC3B,iBAAA;aACF,CAAC;AAEJ,QAAA,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;KAC5F;IAEO,OAAO,0BAA0B,CAAC,OAAqC,EAAA;QAC7E,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,OAAO;AACL,gBAAA,OAAO,EAAE,0BAA0B;gBACnC,UAAU,EAAE,OAAO,CAAC,UAAU;AAC9B,gBAAA,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;aACzB,CAAC;AACH,SAAA;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;AACzD,QAAA,IAAI,QAAQ,EAAE;YACZ,OAAO;AACL,gBAAA,OAAO,EAAE,0BAA0B;AACnC,gBAAA,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC;gBACpB,IAAI,EAAE,CAAC,QAAQ,CAAC;aACjB,CAAC;AACH,SAAA;AACD,QAAA,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;KAC5F;;6GAxFU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;8GAAhB,gBAAgB,EAAA,CAAA,CAAA;8GAAhB,gBAAgB,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAF5B,QAAQ;mBAAC,EACT,CAAA;;;ACRD;;ACAA;;AAEG;;;;"}
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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"}
@@ -2,15 +2,21 @@ import { InjectionToken, NgModule, Type } from '@angular/core';
2
2
  import { OpraHttpClientOptions } from '@opra/client';
3
3
  export type OpraClientModuleOptions = OpraHttpClientOptions & {
4
4
  serviceUrl: string;
5
- token?: string | InjectionToken<any>;
5
+ clientToken?: string | InjectionToken<any>;
6
+ serviceToken?: string | InjectionToken<any>;
7
+ serviceClass?: Type<any>;
6
8
  };
9
+ type _OpraClientModuleOptions = Omit<OpraClientModuleOptions, 'clientToken' | 'serviceToken' | 'serviceClass'>;
7
10
  export interface OpraModuleOptionsFactory {
8
- createOptions(): Promise<OpraClientModuleOptions> | OpraClientModuleOptions;
11
+ createOptions(): Promise<_OpraClientModuleOptions> | _OpraClientModuleOptions;
9
12
  }
10
13
  export interface OpraClientModuleAsyncOptions extends Pick<NgModule, 'imports' | 'providers'> {
11
- token?: string | InjectionToken<any>;
14
+ clientToken?: string | InjectionToken<any>;
15
+ serviceToken?: string | InjectionToken<any>;
16
+ serviceClass?: Type<any>;
12
17
  useExisting?: Type<OpraModuleOptionsFactory>;
13
18
  useClass?: Type<any>;
14
- useFactory?: (...args: any[]) => Promise<OpraClientModuleOptions> | OpraClientModuleOptions;
19
+ useFactory?: (...args: any[]) => Promise<_OpraClientModuleOptions> | _OpraClientModuleOptions;
15
20
  deps?: any[];
16
21
  }
22
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opra/angular",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "Opra internationalization package",
5
5
  "author": "Panates",
6
6
  "license": "MIT",
@@ -12,7 +12,7 @@
12
12
  "peerDependencies": {
13
13
  "@angular/common": "^14.2.12 || 15.x.x",
14
14
  "@angular/core": "^14.2.12 || 15.x.x",
15
- "@opra/client": "^0.13.0",
15
+ "@opra/client": "^0.14.0",
16
16
  "ts-gems": "^2.3.0"
17
17
  },
18
18
  "engines": {