@synerty/vortexjs
Version:
Custom observable data serialisation and routing based on Angular 2+
79 lines • 9.72 kB
JavaScript
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