@interopio/ng
Version:
IO Connect library for Angular - Browser and Desktop
41 lines • 5.87 kB
JavaScript
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