@wertzui/ngx-restworld-client 3.4.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/services/settings.service.mjs +36 -16
- package/fesm2015/wertzui-ngx-restworld-client.mjs +41 -20
- package/fesm2015/wertzui-ngx-restworld-client.mjs.map +1 -1
- package/fesm2020/wertzui-ngx-restworld-client.mjs +41 -20
- package/fesm2020/wertzui-ngx-restworld-client.mjs.map +1 -1
- package/lib/services/settings.service.d.ts +24 -5
- package/package.json +1 -1
|
@@ -1,46 +1,66 @@
|
|
|
1
|
-
import { HttpClient } from "@angular/common/http";
|
|
2
1
|
import { Injectable } from "@angular/core";
|
|
3
2
|
import { RESTworldOptions } from "../models/restworld-options";
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "
|
|
6
|
-
import * as i2 from "./restworld-client-collection";
|
|
4
|
+
import * as i1 from "./restworld-client-collection";
|
|
7
5
|
export class SettingsService {
|
|
8
|
-
constructor(
|
|
6
|
+
constructor(_clients) {
|
|
9
7
|
this._clients = _clients;
|
|
10
8
|
this.initializing = false;
|
|
11
9
|
this.initialized = false;
|
|
12
|
-
this._client = new HttpClient(backend);
|
|
13
10
|
}
|
|
14
11
|
get settings() {
|
|
15
|
-
return
|
|
12
|
+
return SettingsService._settings;
|
|
16
13
|
}
|
|
17
14
|
async ensureInitialized() {
|
|
18
15
|
if (this.initializing || this.initialized)
|
|
19
16
|
return;
|
|
20
17
|
this.initializing = true;
|
|
21
|
-
await
|
|
18
|
+
await SettingsService.ensureSettingsAreLoaded();
|
|
22
19
|
await this.populateRESTworldClientCollectionFromSettings();
|
|
23
20
|
this.initialized = true;
|
|
24
21
|
this.initializing = false;
|
|
25
22
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Call this method in your main.ts before calling bootstrapModule(...)
|
|
25
|
+
*
|
|
26
|
+
* Example:
|
|
27
|
+
* async function main() {
|
|
28
|
+
* try {
|
|
29
|
+
* await SettingsService.ensureSettingsAreLoaded();
|
|
30
|
+
*
|
|
31
|
+
* const providers : StaticProvider[] = [
|
|
32
|
+
* { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }
|
|
33
|
+
* ];
|
|
34
|
+
*
|
|
35
|
+
* await platformBrowserDynamic(providers).bootstrapModule(AppModule);
|
|
36
|
+
* }
|
|
37
|
+
* catch (e) {
|
|
38
|
+
* console.error(e);
|
|
39
|
+
* }
|
|
40
|
+
* }
|
|
41
|
+
*
|
|
42
|
+
* main();
|
|
43
|
+
* */
|
|
44
|
+
static async ensureSettingsAreLoaded() {
|
|
45
|
+
if (SettingsService._settings === undefined) {
|
|
46
|
+
const response = await fetch('/settings');
|
|
47
|
+
const settings = await response.json();
|
|
48
|
+
SettingsService._settings = settings;
|
|
49
|
+
}
|
|
30
50
|
}
|
|
31
51
|
async populateRESTworldClientCollectionFromSettings() {
|
|
32
|
-
if (!this.
|
|
52
|
+
if (!this.settings?.apiUrls)
|
|
33
53
|
return;
|
|
34
|
-
await Promise.all(this.
|
|
54
|
+
await Promise.all(this.settings.apiUrls
|
|
35
55
|
.map(api => this._clients.addOrGetExistingClient(api.name, new RESTworldOptions(api.url, api.version))));
|
|
36
56
|
}
|
|
37
57
|
}
|
|
38
|
-
SettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SettingsService, deps: [{ token: i1.
|
|
58
|
+
SettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SettingsService, deps: [{ token: i1.RESTworldClientCollection }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
39
59
|
SettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SettingsService, providedIn: 'root' });
|
|
40
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SettingsService, decorators: [{
|
|
41
61
|
type: Injectable,
|
|
42
62
|
args: [{
|
|
43
63
|
providedIn: 'root'
|
|
44
64
|
}]
|
|
45
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
}], ctorParameters: function () { return [{ type: i1.RESTworldClientCollection }]; } });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXN0d29ybGQtY2xpZW50L3NyYy9saWIvc2VydmljZXMvc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFNL0QsTUFBTSxPQUFPLGVBQWU7SUFTMUIsWUFDVSxRQUFtQztRQUFuQyxhQUFRLEdBQVIsUUFBUSxDQUEyQjtRQUpyQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixnQkFBVyxHQUFHLEtBQUssQ0FBQztJQUk1QixDQUFDO0lBVEQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sZUFBZSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBU00sS0FBSyxDQUFDLGlCQUFpQjtRQUM1QixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFdBQVc7WUFDdkMsT0FBTztRQUVULElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXpCLE1BQU0sZUFBZSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDaEQsTUFBTSxJQUFJLENBQUMsNkNBQTZDLEVBQUUsQ0FBQztRQUUzRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUU1QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBb0JLO0lBQ0UsTUFBTSxDQUFDLEtBQUssQ0FBQyx1QkFBdUI7UUFDekMsSUFBSSxlQUFlLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRTtZQUMzQyxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxQyxNQUFNLFFBQVEsR0FBbUIsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkQsZUFBZSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLDZDQUE2QztRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPO1lBQ3pCLE9BQU87UUFFVCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPO2FBQ3BDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7OzRHQTlEVSxlQUFlO2dIQUFmLGVBQWUsY0FGZCxNQUFNOzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEJhY2tlbmQsIEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENsaWVudFNldHRpbmdzIH0gZnJvbSBcIi4uL21vZGVscy9jbGllbnQtc2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgUkVTVHdvcmxkT3B0aW9ucyB9IGZyb20gXCIuLi9tb2RlbHMvcmVzdHdvcmxkLW9wdGlvbnNcIjtcclxuaW1wb3J0IHsgUkVTVHdvcmxkQ2xpZW50Q29sbGVjdGlvbiB9IGZyb20gXCIuL3Jlc3R3b3JsZC1jbGllbnQtY29sbGVjdGlvblwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NTZXJ2aWNlIHtcclxuICBwcml2YXRlIHN0YXRpYyBfc2V0dGluZ3M6IENsaWVudFNldHRpbmdzIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3MoKTogQ2xpZW50U2V0dGluZ3MgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIFNldHRpbmdzU2VydmljZS5fc2V0dGluZ3M7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemluZyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9jbGllbnRzOiBSRVNUd29ybGRDbGllbnRDb2xsZWN0aW9uKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZW5zdXJlSW5pdGlhbGl6ZWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5pbml0aWFsaXppbmcgfHwgdGhpcy5pbml0aWFsaXplZClcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuaW5pdGlhbGl6aW5nID0gdHJ1ZTtcclxuXHJcbiAgICBhd2FpdCBTZXR0aW5nc1NlcnZpY2UuZW5zdXJlU2V0dGluZ3NBcmVMb2FkZWQoKTtcclxuICAgIGF3YWl0IHRoaXMucG9wdWxhdGVSRVNUd29ybGRDbGllbnRDb2xsZWN0aW9uRnJvbVNldHRpbmdzKCk7XHJcblxyXG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICB0aGlzLmluaXRpYWxpemluZyA9IGZhbHNlO1xyXG5cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGwgdGhpcyBtZXRob2QgaW4geW91ciBtYWluLnRzIGJlZm9yZSBjYWxsaW5nIGJvb3RzdHJhcE1vZHVsZSguLi4pXHJcbiAgICogXHJcbiAgICogRXhhbXBsZTpcclxuICAgKiBhc3luYyBmdW5jdGlvbiBtYWluKCkge1xyXG4gICAqICAgdHJ5IHtcclxuICAgKiAgICAgYXdhaXQgU2V0dGluZ3NTZXJ2aWNlLmVuc3VyZVNldHRpbmdzQXJlTG9hZGVkKCk7XHJcbiAgICogXHJcbiAgICogICAgIGNvbnN0IHByb3ZpZGVycyA6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXHJcbiAgICogICAgICAgeyBwcm92aWRlOiAnQkFTRV9VUkwnLCB1c2VGYWN0b3J5OiBnZXRCYXNlVXJsLCBkZXBzOiBbXSB9XHJcbiAgICogICAgIF07XHJcbiAgICogXHJcbiAgICogICAgIGF3YWl0IHBsYXRmb3JtQnJvd3NlckR5bmFtaWMocHJvdmlkZXJzKS5ib290c3RyYXBNb2R1bGUoQXBwTW9kdWxlKTtcclxuICAgKiAgIH1cclxuICAgKiAgIGNhdGNoIChlKSB7XHJcbiAgICogICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICogICB9XHJcbiAgICogfVxyXG4gICAqIFxyXG4gICAqIG1haW4oKTtcclxuICAgKiAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgZW5zdXJlU2V0dGluZ3NBcmVMb2FkZWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoU2V0dGluZ3NTZXJ2aWNlLl9zZXR0aW5ncyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9zZXR0aW5ncycpO1xyXG4gICAgICBjb25zdCBzZXR0aW5nczogQ2xpZW50U2V0dGluZ3MgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XHJcbiAgICAgIFNldHRpbmdzU2VydmljZS5fc2V0dGluZ3MgPSBzZXR0aW5ncztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcG9wdWxhdGVSRVNUd29ybGRDbGllbnRDb2xsZWN0aW9uRnJvbVNldHRpbmdzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLnNldHRpbmdzPy5hcGlVcmxzKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5zZXR0aW5ncy5hcGlVcmxzXHJcbiAgICAgIC5tYXAoYXBpID0+ICB0aGlzLl9jbGllbnRzLmFkZE9yR2V0RXhpc3RpbmdDbGllbnQoYXBpLm5hbWUsIG5ldyBSRVNUd29ybGRPcHRpb25zKGFwaS51cmwsIGFwaS52ZXJzaW9uKSkpKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|