UNPKG

@synerty/vortexjs

Version:

Custom observable data serialisation and routing based on Angular 2+

48 lines 7.1 kB
import { Inject, Injectable } from "@angular/core"; import { TupleDataObservableNameService, TupleDataOfflineObserverService } from "./TupleDataOfflineObserverService"; import * as i0 from "@angular/core"; export { TupleDataObservableNameService } from "./TupleDataOfflineObserverService"; export class TupleDataObserverService { delegate; tupleDataObservableName; constructor(delegate, tupleDataObservableName) { this.delegate = delegate; this.tupleDataObservableName = tupleDataObservableName; let delegateName = delegate._nameService(); if (!this.tupleDataObservableName.equals(delegateName)) { throw new Error("ERROR: The TupleDataObserverService was injected" + " with the wrong TupleDataOfflineObserverService name service" + ` ${delegateName} VS ${this.tupleDataObservableName}` + " ensure TupleDataOfflineObserverService is provided first."); } } pollForTuples(tupleSelector, useCache = true) { return this.delegate.pollForTuples(tupleSelector, useCache); } /** Subscribe to Tuple Selector * * Get an observable that will be fired when any new data updates are available * * either from the server, or if they are locally updated with updateOfflineState() * * @param {TupleSelector} tupleSelector * @param {boolean} disableCache * @param {boolean} disableAskServer, Use this to store and observe data completely * within the angular app. * @returns {Subject<Tuple[]>} */ subscribeToTupleSelector(tupleSelector, disableCache = false, disableAskServer = false) { return this.delegate.subscribeToTupleSelector(tupleSelector, disableCache, true, disableAskServer); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TupleDataObserverService, deps: [{ token: TupleDataOfflineObserverService }, { token: TupleDataObservableNameService }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TupleDataObserverService }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TupleDataObserverService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: undefined, decorators: [{ type: Inject, args: [TupleDataOfflineObserverService] }] }, { type: undefined, decorators: [{ type: Inject, args: [TupleDataObservableNameService] }] }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHVwbGVEYXRhT2JzZXJ2ZXJTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3ZvcnRleC9vYnNlcnZhYmxlLXNlcnZpY2UvVHVwbGVEYXRhT2JzZXJ2ZXJTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBSWxELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFBOztBQUVuSCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUdsRixNQUFNLE9BQU8sd0JBQXdCO0lBRW9CO0lBQ0Q7SUFGcEQsWUFDcUQsUUFBUSxFQUNULHVCQUF1QjtRQUR0QixhQUFRLEdBQVIsUUFBUSxDQUFBO1FBQ1QsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFBO1FBRXZFLElBQUksWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNwRCxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRDtrQkFDNUQsOERBQThEO2tCQUM5RCxJQUFJLFlBQVksT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUU7a0JBQ3JELDREQUE0RCxDQUNqRSxDQUFBO1NBQ0o7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUNULGFBQTRCLEVBQzVCLFdBQW9CLElBQUk7UUFFeEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCx3QkFBd0IsQ0FDcEIsYUFBNEIsRUFDNUIsZUFBd0IsS0FBSyxFQUM3QixtQkFBNEIsS0FBSztRQUVqQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQ3pDLGFBQWEsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUE7SUFDNUQsQ0FBQzt3R0F4Q1Esd0JBQXdCLGtCQUVyQiwrQkFBK0IsYUFDL0IsOEJBQThCOzRHQUhqQyx3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVU7OzBCQUdGLE1BQU07MkJBQUMsK0JBQStCOzswQkFDdEMsTUFBTTsyQkFBQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIlxuaW1wb3J0IHsgVHVwbGUgfSBmcm9tIFwiLi4vZXhwb3J0c1wiXG5pbXBvcnQgeyBUdXBsZVNlbGVjdG9yIH0gZnJvbSBcIi4uL1R1cGxlU2VsZWN0b3JcIlxuaW1wb3J0IHsgVHVwbGVEYXRhT2JzZXJ2YWJsZU5hbWVTZXJ2aWNlLCBUdXBsZURhdGFPZmZsaW5lT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSBcIi4vVHVwbGVEYXRhT2ZmbGluZU9ic2VydmVyU2VydmljZVwiXG5cbmV4cG9ydCB7IFR1cGxlRGF0YU9ic2VydmFibGVOYW1lU2VydmljZSB9IGZyb20gXCIuL1R1cGxlRGF0YU9mZmxpbmVPYnNlcnZlclNlcnZpY2VcIlxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHVwbGVEYXRhT2JzZXJ2ZXJTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUdXBsZURhdGFPZmZsaW5lT2JzZXJ2ZXJTZXJ2aWNlKSBwcml2YXRlIGRlbGVnYXRlLFxuICAgICAgICBASW5qZWN0KFR1cGxlRGF0YU9ic2VydmFibGVOYW1lU2VydmljZSkgcHJpdmF0ZSB0dXBsZURhdGFPYnNlcnZhYmxlTmFtZSxcbiAgICApIHtcbiAgICAgICAgbGV0IGRlbGVnYXRlTmFtZSA9IGRlbGVnYXRlLl9uYW1lU2VydmljZSgpXG4gICAgICAgIGlmICghdGhpcy50dXBsZURhdGFPYnNlcnZhYmxlTmFtZS5lcXVhbHMoZGVsZWdhdGVOYW1lKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRVJST1I6IFRoZSBUdXBsZURhdGFPYnNlcnZlclNlcnZpY2Ugd2FzIGluamVjdGVkXCJcbiAgICAgICAgICAgICAgICArIFwiIHdpdGggdGhlIHdyb25nIFR1cGxlRGF0YU9mZmxpbmVPYnNlcnZlclNlcnZpY2UgbmFtZSBzZXJ2aWNlXCJcbiAgICAgICAgICAgICAgICArIGAgJHtkZWxlZ2F0ZU5hbWV9IFZTICR7dGhpcy50dXBsZURhdGFPYnNlcnZhYmxlTmFtZX1gXG4gICAgICAgICAgICAgICAgKyBcIiBlbnN1cmUgVHVwbGVEYXRhT2ZmbGluZU9ic2VydmVyU2VydmljZSBpcyBwcm92aWRlZCBmaXJzdC5cIlxuICAgICAgICAgICAgKVxuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIHBvbGxGb3JUdXBsZXMoXG4gICAgICAgIHR1cGxlU2VsZWN0b3I6IFR1cGxlU2VsZWN0b3IsXG4gICAgICAgIHVzZUNhY2hlOiBib29sZWFuID0gdHJ1ZVxuICAgICk6IFByb21pc2U8VHVwbGVbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kZWxlZ2F0ZS5wb2xsRm9yVHVwbGVzKHR1cGxlU2VsZWN0b3IsIHVzZUNhY2hlKVxuICAgIH1cbiAgICBcbiAgICAvKiogU3Vic2NyaWJlIHRvIFR1cGxlIFNlbGVjdG9yXG4gICAgICpcbiAgICAgKiBHZXQgYW4gb2JzZXJ2YWJsZSB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBhbnkgbmV3IGRhdGEgdXBkYXRlcyBhcmUgYXZhaWxhYmxlXG4gICAgICogKiBlaXRoZXIgZnJvbSB0aGUgc2VydmVyLCBvciBpZiB0aGV5IGFyZSBsb2NhbGx5IHVwZGF0ZWQgd2l0aCB1cGRhdGVPZmZsaW5lU3RhdGUoKVxuICAgICAqXG4gICAgICogQHBhcmFtIHtUdXBsZVNlbGVjdG9yfSB0dXBsZVNlbGVjdG9yXG4gICAgICogQHBhcmFtIHtib29sZWFufSBkaXNhYmxlQ2FjaGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGRpc2FibGVBc2tTZXJ2ZXIsIFVzZSB0aGlzIHRvIHN0b3JlIGFuZCBvYnNlcnZlIGRhdGEgY29tcGxldGVseVxuICAgICAqICAgICAgd2l0aGluIHRoZSBhbmd1bGFyIGFwcC5cbiAgICAgKiBAcmV0dXJucyB7U3ViamVjdDxUdXBsZVtdPn1cbiAgICAgKi9cbiAgICBzdWJzY3JpYmVUb1R1cGxlU2VsZWN0b3IoXG4gICAgICAgIHR1cGxlU2VsZWN0b3I6IFR1cGxlU2VsZWN0b3IsXG4gICAgICAgIGRpc2FibGVDYWNoZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgICAgICBkaXNhYmxlQXNrU2VydmVyOiBib29sZWFuID0gZmFsc2VcbiAgICApOiBPYnNlcnZhYmxlPFR1cGxlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVsZWdhdGUuc3Vic2NyaWJlVG9UdXBsZVNlbGVjdG9yKFxuICAgICAgICAgICAgdHVwbGVTZWxlY3RvciwgZGlzYWJsZUNhY2hlLCB0cnVlLCBkaXNhYmxlQXNrU2VydmVyKVxuICAgIH1cbn1cblxuIl19