UNPKG

@synerty/vortexjs

Version:

Custom observable data serialisation and routing based on Angular 2+

28 lines 3.38 kB
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==