UNPKG

@interopio/ng

Version:

IO Connect library for Angular - Browser and Desktop

41 lines 5.87 kB
import { ReplaySubject } from "rxjs"; import { Injectable } from "@angular/core"; import * as i0 from "@angular/core"; import * as i1 from "./glue-initializer.service"; export class IOConnectStore { constructor(initializer) { this.initializer = initializer; this.readySource = new ReplaySubject(1); this.initializer.onState().subscribe(this.handleState.bind(this)); } ready() { return this.readySource.asObservable(); } getInitError() { return this._initError; } getIOConnect() { if (!this.glueInstance) { throw new Error("Accessing uninitialized glue. This might happen, because Glue is not initialized yet or because there was an error during Glue initialization. Please check the initError object or subscribe to the ready observable."); } return this.glueInstance; } handleState(result) { if (result.glueInstance) { this.glueInstance = result.glueInstance; this.readySource.next({}); return; } if (result.error) { this._initError = result.error; this.readySource.next({ error: this.getInitError() }); return; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IOConnectStore, deps: [{ token: i1.IOConnectInitializer }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IOConnectStore }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IOConnectStore, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i1.IOConnectInitializer }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x1ZS1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9nbHVlLXN0b3JlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJM0MsTUFBTSxPQUFPLGNBQWM7SUFLdkIsWUFBNkIsV0FBaUM7UUFBakMsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBQzFELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxhQUFhLENBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLEtBQUs7UUFDUixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVNLFlBQVk7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVNLFlBQVk7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHdOQUF3TixDQUFDLENBQUM7U0FDN087UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVPLFdBQVcsQ0FBQyxNQUFtRjtRQUNuRyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLE9BQU87U0FDVjtRQUVELElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE9BQU87U0FDVjtJQUNMLENBQUM7K0dBdENRLGNBQWM7bUhBQWQsY0FBYzs7NEZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IElPQ29ubmVjdERlc2t0b3AgfSBmcm9tIFwiQGludGVyb3Bpby9kZXNrdG9wXCI7XG5pbXBvcnQgeyBJT0Nvbm5lY3RCcm93c2VyIH0gZnJvbSBcIkBpbnRlcm9waW8vYnJvd3NlclwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IElPQ29ubmVjdEluaXRpYWxpemVyIH0gZnJvbSBcIi4vZ2x1ZS1pbml0aWFsaXplci5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJT0Nvbm5lY3RTdG9yZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZWFkeVNvdXJjZTogUmVwbGF5U3ViamVjdDx7IGVycm9yPzogYW55IH0+O1xuICAgIHByaXZhdGUgZ2x1ZUluc3RhbmNlPzogSU9Db25uZWN0RGVza3RvcC5BUEkgfCBJT0Nvbm5lY3RCcm93c2VyLkFQSTtcbiAgICBwcml2YXRlIF9pbml0RXJyb3I6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbGl6ZXI6IElPQ29ubmVjdEluaXRpYWxpemVyKSB7XG4gICAgICAgIHRoaXMucmVhZHlTb3VyY2UgPSBuZXcgUmVwbGF5U3ViamVjdDx7IGVycm9yPzogYW55IH0+KDEpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVyLm9uU3RhdGUoKS5zdWJzY3JpYmUodGhpcy5oYW5kbGVTdGF0ZS5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZHkoKTogT2JzZXJ2YWJsZTx7IGVycm9yPzogYW55IH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZHlTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEluaXRFcnJvcigpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5pdEVycm9yO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJT0Nvbm5lY3QoKTogSU9Db25uZWN0RGVza3RvcC5BUEkgfCBJT0Nvbm5lY3RCcm93c2VyLkFQSSB7XG4gICAgICAgIGlmICghdGhpcy5nbHVlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFjY2Vzc2luZyB1bmluaXRpYWxpemVkIGdsdWUuIFRoaXMgbWlnaHQgaGFwcGVuLCBiZWNhdXNlIEdsdWUgaXMgbm90IGluaXRpYWxpemVkIHlldCBvciBiZWNhdXNlIHRoZXJlIHdhcyBhbiBlcnJvciBkdXJpbmcgR2x1ZSBpbml0aWFsaXphdGlvbi4gUGxlYXNlIGNoZWNrIHRoZSBpbml0RXJyb3Igb2JqZWN0IG9yIHN1YnNjcmliZSB0byB0aGUgcmVhZHkgb2JzZXJ2YWJsZS5cIik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nbHVlSW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVTdGF0ZShyZXN1bHQ6IHsgZ2x1ZUluc3RhbmNlPzogSU9Db25uZWN0QnJvd3Nlci5BUEkgfCBJT0Nvbm5lY3REZXNrdG9wLkFQSTsgZXJyb3I/OiBhbnkgfSk6IHZvaWQge1xuICAgICAgICBpZiAocmVzdWx0LmdsdWVJbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5nbHVlSW5zdGFuY2UgPSByZXN1bHQuZ2x1ZUluc3RhbmNlO1xuICAgICAgICAgICAgdGhpcy5yZWFkeVNvdXJjZS5uZXh0KHt9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRFcnJvciA9IHJlc3VsdC5lcnJvcjtcbiAgICAgICAgICAgIHRoaXMucmVhZHlTb3VyY2UubmV4dCh7IGVycm9yOiB0aGlzLmdldEluaXRFcnJvcigpIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19