@synerty/vortexjs
Version:
Custom observable data serialisation and routing based on Angular 2+
28 lines • 3.38 kB
JavaScript
export let STOP_PROCESSING = "STOP_PROCESSING";
export class PayloadIO {
_endpoints;
constructor() {
let self = this;
self._endpoints = [];
}
add(endpoint) {
let self = this;
self._endpoints.add(endpoint);
}
remove(endpoint) {
let self = this;
self._endpoints.remove(endpoint);
}
process(payloadEnvelope) {
let self = this;
// Make a copy of the endpoints array, it may change endpoints
// can remove them selves during iteration.
let endpoints = self._endpoints.slice(0);
for (let i = 0; i < endpoints.length; ++i) {
if (endpoints[i].process(payloadEnvelope) === STOP_PROCESSING)
break;
}
}
}
export let payloadIO = new PayloadIO();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGF5bG9hZElPLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZvcnRleC9QYXlsb2FkSU8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLElBQUksZUFBZSxHQUFHLGlCQUFpQixDQUFBO0FBRTlDLE1BQU0sT0FBTyxTQUFTO0lBQ1YsVUFBVSxDQUFtQjtJQUVyQztRQUNJLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxHQUFHLENBQUMsUUFBUTtRQUNSLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUTtRQUNYLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRCxPQUFPLENBQUMsZUFBZ0M7UUFDcEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2YsOERBQThEO1FBQzlELDJDQUEyQztRQUMzQyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN4QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtZQUN2QyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssZUFBZTtnQkFDekQsTUFBSztTQUNaO0lBQ0wsQ0FBQztDQUVKO0FBRUQsTUFBTSxDQUFDLElBQUksU0FBUyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXlsb2FkRW5kcG9pbnQgfSBmcm9tIFwiLi9QYXlsb2FkRW5kcG9pbnRcIlxuaW1wb3J0IHsgUGF5bG9hZEVudmVsb3BlIH0gZnJvbSBcIi4vUGF5bG9hZEVudmVsb3BlXCJcblxuZXhwb3J0IGxldCBTVE9QX1BST0NFU1NJTkcgPSBcIlNUT1BfUFJPQ0VTU0lOR1wiXG5cbmV4cG9ydCBjbGFzcyBQYXlsb2FkSU8ge1xuICAgIHByaXZhdGUgX2VuZHBvaW50czogUGF5bG9hZEVuZHBvaW50W11cbiAgICBcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgbGV0IHNlbGYgPSB0aGlzXG4gICAgICAgIHNlbGYuX2VuZHBvaW50cyA9IFtdXG4gICAgfVxuICAgIFxuICAgIGFkZChlbmRwb2ludCkge1xuICAgICAgICBsZXQgc2VsZiA9IHRoaXNcbiAgICAgICAgc2VsZi5fZW5kcG9pbnRzLmFkZChlbmRwb2ludClcbiAgICB9XG4gICAgXG4gICAgcmVtb3ZlKGVuZHBvaW50KSB7XG4gICAgICAgIGxldCBzZWxmID0gdGhpc1xuICAgICAgICBzZWxmLl9lbmRwb2ludHMucmVtb3ZlKGVuZHBvaW50KVxuICAgIH1cbiAgICBcbiAgICBwcm9jZXNzKHBheWxvYWRFbnZlbG9wZTogUGF5bG9hZEVudmVsb3BlKSB7XG4gICAgICAgIGxldCBzZWxmID0gdGhpc1xuICAgICAgICAvLyBNYWtlIGEgY29weSBvZiB0aGUgZW5kcG9pbnRzIGFycmF5LCBpdCBtYXkgY2hhbmdlIGVuZHBvaW50c1xuICAgICAgICAvLyBjYW4gcmVtb3ZlIHRoZW0gc2VsdmVzIGR1cmluZyBpdGVyYXRpb24uXG4gICAgICAgIGxldCBlbmRwb2ludHMgPSBzZWxmLl9lbmRwb2ludHMuc2xpY2UoMClcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbmRwb2ludHMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGlmIChlbmRwb2ludHNbaV0ucHJvY2VzcyhwYXlsb2FkRW52ZWxvcGUpID09PSBTVE9QX1BST0NFU1NJTkcpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbn1cblxuZXhwb3J0IGxldCBwYXlsb2FkSU8gPSBuZXcgUGF5bG9hZElPKClcbiJdfQ==