UNPKG

@synerty/vortexjs

Version:

Custom observable data serialisation and routing based on Angular 2+

79 lines 9.72 kB
import { forwardRef, Inject, Injectable } from "@angular/core"; import { VortexStatusService } from "../VortexStatusService"; import { VortexService } from "../VortexService"; import { PayloadResponse } from "../PayloadResponse"; import { Payload } from "../Payload"; import * as i0 from "@angular/core"; export class TupleActionPushNameService { name; additionalFilt; constructor(name, additionalFilt = {}) { this.name = name; this.additionalFilt = additionalFilt; } } export class TupleActionPushService { tupleActionProcessorName; vortexService; vortexStatus; constructor(tupleActionProcessorName, vortexService, vortexStatus) { this.tupleActionProcessorName = tupleActionProcessorName; this.vortexService = vortexService; this.vortexStatus = vortexStatus; } /** Push Action * * This pushes the action, either locally or to the server, depending on the * implementation. * * If pushed locally, the promise will resolve when the action has been saved. * If pushed directly to the server, the promise will resolve when the server has * responded. */ pushAction(tupleAction) { if (!this.vortexStatus.snapshot.isOnline) return Promise.reject("Vortex is offline"); let promise = this.makePayload(tupleAction) .makePayloadEnvelope(); promise = promise.then((payloadEnvelope) => { return new PayloadResponse(this.vortexService, payloadEnvelope); }); promise = promise.then((payloadEnvelope) => { return payloadEnvelope.decodePayload(); }); promise = promise.then((payload) => payload.tuples); return promise; } /** Make Payload * * This make the payload that we send to the server. * */ makePayload(tupleAction) { if (tupleAction == null) { throw new Error("pushAction: tupleAction is null"); } let payload = new Payload(); payload.filt = Object.assign({ key: "tupleActionProcessorName", name: this.tupleActionProcessorName.name }, this.tupleActionProcessorName.additionalFilt); payload.tuples = [tupleAction]; return payload; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TupleActionPushService, deps: [{ token: forwardRef(() => TupleActionPushNameService) }, { token: forwardRef(() => VortexService) }, { token: forwardRef(() => VortexStatusService) }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TupleActionPushService }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TupleActionPushService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => TupleActionPushNameService)] }] }, { type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => VortexService)] }] }, { type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => VortexStatusService)] }] }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHVwbGVBY3Rpb25QdXNoU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy92b3J0ZXgvYWN0aW9uLXNlcnZpY2UvVHVwbGVBY3Rpb25QdXNoU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFHNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFBOztBQUdwQyxNQUFNLE9BQU8sMEJBQTBCO0lBRXhCO0lBQ0E7SUFGWCxZQUNXLElBQVksRUFDWixpQkFBc0IsRUFBRTtRQUR4QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osbUJBQWMsR0FBZCxjQUFjLENBQVU7SUFFbkMsQ0FBQztDQUNKO0FBR0QsTUFBTSxPQUFPLHNCQUFzQjtJQUVrQztJQUNiO0lBQ007SUFIMUQsWUFDaUUsd0JBQXdCLEVBQ3JDLGFBQWEsRUFDUCxZQUFZO1FBRkwsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFBO1FBQ3JDLGtCQUFhLEdBQWIsYUFBYSxDQUFBO1FBQ1AsaUJBQVksR0FBWixZQUFZLENBQUE7SUFFdEUsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsVUFBVSxDQUFDLFdBQTJCO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQ3BDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBRTlDLElBQUksT0FBTyxHQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDO2FBQzNDLG1CQUFtQixFQUFFLENBQUE7UUFFMUIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFnQyxFQUFFLEVBQUU7WUFDeEQsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBQ25FLENBQUMsQ0FBQyxDQUFBO1FBRUYsT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFnQyxFQUFFLEVBQUU7WUFDeEQsT0FBTyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDMUMsQ0FBQyxDQUFDLENBQUE7UUFFRixPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUU1RCxPQUFPLE9BQU8sQ0FBQTtJQUNsQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLFdBQVcsQ0FBQyxXQUEyQjtRQUM3QyxJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUU7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO1NBQ3JEO1FBRUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQUUzQixPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDekIsR0FBRyxFQUFFLDBCQUEwQjtZQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUk7U0FDM0MsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFaEQsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRTlCLE9BQU8sT0FBTyxDQUFBO0lBQ2xCLENBQUM7d0dBekRRLHNCQUFzQixrQkFFbkIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDLGFBQzVDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFDL0IsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDOzRHQUp4QyxzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVU7OzBCQUdGLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDOzswQkFDbkQsTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDOzswQkFDdEMsTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3J3YXJkUmVmLCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5pbXBvcnQgeyBWb3J0ZXhTdGF0dXNTZXJ2aWNlIH0gZnJvbSBcIi4uL1ZvcnRleFN0YXR1c1NlcnZpY2VcIlxuaW1wb3J0IHsgVHVwbGVBY3Rpb25BQkMgfSBmcm9tIFwiLi4vVHVwbGVBY3Rpb25cIlxuaW1wb3J0IHsgVHVwbGUgfSBmcm9tIFwiLi4vZXhwb3J0c1wiXG5pbXBvcnQgeyBWb3J0ZXhTZXJ2aWNlIH0gZnJvbSBcIi4uL1ZvcnRleFNlcnZpY2VcIlxuaW1wb3J0IHsgUGF5bG9hZFJlc3BvbnNlIH0gZnJvbSBcIi4uL1BheWxvYWRSZXNwb25zZVwiXG5pbXBvcnQgeyBQYXlsb2FkIH0gZnJvbSBcIi4uL1BheWxvYWRcIlxuaW1wb3J0IHsgUGF5bG9hZEVudmVsb3BlIH0gZnJvbSBcIi4uL1BheWxvYWRFbnZlbG9wZVwiXG5cbmV4cG9ydCBjbGFzcyBUdXBsZUFjdGlvblB1c2hOYW1lU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBhZGRpdGlvbmFsRmlsdDogYW55ID0ge31cbiAgICApIHtcbiAgICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUdXBsZUFjdGlvblB1c2hTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IFR1cGxlQWN0aW9uUHVzaE5hbWVTZXJ2aWNlKSkgcHVibGljIHR1cGxlQWN0aW9uUHJvY2Vzc29yTmFtZSxcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IFZvcnRleFNlcnZpY2UpKSBwdWJsaWMgdm9ydGV4U2VydmljZSxcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IFZvcnRleFN0YXR1c1NlcnZpY2UpKSBwdWJsaWMgdm9ydGV4U3RhdHVzLFxuICAgICkge1xuICAgIH1cbiAgICBcbiAgICAvKiogUHVzaCBBY3Rpb25cbiAgICAgKlxuICAgICAqIFRoaXMgcHVzaGVzIHRoZSBhY3Rpb24sIGVpdGhlciBsb2NhbGx5IG9yIHRvIHRoZSBzZXJ2ZXIsIGRlcGVuZGluZyBvbiB0aGVcbiAgICAgKiBpbXBsZW1lbnRhdGlvbi5cbiAgICAgKlxuICAgICAqIElmIHB1c2hlZCBsb2NhbGx5LCB0aGUgcHJvbWlzZSB3aWxsIHJlc29sdmUgd2hlbiB0aGUgYWN0aW9uIGhhcyBiZWVuIHNhdmVkLlxuICAgICAqIElmIHB1c2hlZCBkaXJlY3RseSB0byB0aGUgc2VydmVyLCB0aGUgcHJvbWlzZSB3aWxsIHJlc29sdmUgd2hlbiB0aGUgc2VydmVyIGhhc1xuICAgICAqIHJlc3BvbmRlZC5cbiAgICAgKi9cbiAgICBwdXNoQWN0aW9uKHR1cGxlQWN0aW9uOiBUdXBsZUFjdGlvbkFCQyk6IFByb21pc2U8VHVwbGVbXT4ge1xuICAgICAgICBpZiAoIXRoaXMudm9ydGV4U3RhdHVzLnNuYXBzaG90LmlzT25saW5lKVxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFwiVm9ydGV4IGlzIG9mZmxpbmVcIilcbiAgICAgICAgXG4gICAgICAgIGxldCBwcm9taXNlOiBhbnkgPSB0aGlzLm1ha2VQYXlsb2FkKHR1cGxlQWN0aW9uKVxuICAgICAgICAgICAgLm1ha2VQYXlsb2FkRW52ZWxvcGUoKVxuICAgICAgICBcbiAgICAgICAgcHJvbWlzZSA9IHByb21pc2UudGhlbigocGF5bG9hZEVudmVsb3BlOiBQYXlsb2FkRW52ZWxvcGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUGF5bG9hZFJlc3BvbnNlKHRoaXMudm9ydGV4U2VydmljZSwgcGF5bG9hZEVudmVsb3BlKVxuICAgICAgICB9KVxuICAgICAgICBcbiAgICAgICAgcHJvbWlzZSA9IHByb21pc2UudGhlbigocGF5bG9hZEVudmVsb3BlOiBQYXlsb2FkRW52ZWxvcGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBwYXlsb2FkRW52ZWxvcGUuZGVjb2RlUGF5bG9hZCgpXG4gICAgICAgIH0pXG4gICAgICAgIFxuICAgICAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKChwYXlsb2FkOiBQYXlsb2FkKSA9PiBwYXlsb2FkLnR1cGxlcylcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBwcm9taXNlXG4gICAgfVxuICAgIFxuICAgIC8qKiBNYWtlIFBheWxvYWRcbiAgICAgKlxuICAgICAqIFRoaXMgbWFrZSB0aGUgcGF5bG9hZCB0aGF0IHdlIHNlbmQgdG8gdGhlIHNlcnZlci5cbiAgICAgKlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBtYWtlUGF5bG9hZCh0dXBsZUFjdGlvbjogVHVwbGVBY3Rpb25BQkMpOiBQYXlsb2FkIHtcbiAgICAgICAgaWYgKHR1cGxlQWN0aW9uID09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInB1c2hBY3Rpb246IHR1cGxlQWN0aW9uIGlzIG51bGxcIilcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgbGV0IHBheWxvYWQgPSBuZXcgUGF5bG9hZCgpXG4gICAgICAgIFxuICAgICAgICBwYXlsb2FkLmZpbHQgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIGtleTogXCJ0dXBsZUFjdGlvblByb2Nlc3Nvck5hbWVcIixcbiAgICAgICAgICAgIG5hbWU6IHRoaXMudHVwbGVBY3Rpb25Qcm9jZXNzb3JOYW1lLm5hbWVcbiAgICAgICAgfSwgdGhpcy50dXBsZUFjdGlvblByb2Nlc3Nvck5hbWUuYWRkaXRpb25hbEZpbHQpXG4gICAgICAgIFxuICAgICAgICBwYXlsb2FkLnR1cGxlcyA9IFt0dXBsZUFjdGlvbl1cbiAgICAgICAgXG4gICAgICAgIHJldHVybiBwYXlsb2FkXG4gICAgfVxufVxuIl19