UNPKG

@jaenster/channels

Version:

simple concurrency channel messaging

26 lines 2.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseClient = void 0; const events_1 = require("@jaenster/events"); const callAppend = (cb, ...args) => cb(args); function filter([other, msg]) { if (other === this) return; return this.in(msg, other); } const handler = Symbol('DataEventHandler'); class BaseClient extends events_1.EventTS { constructor(eventQueue) { super(); eventQueue && this.attach(eventQueue); } attach(eventQueue) { eventQueue.on('data', this[handler] = filter.bind(this), this); this.out = callAppend.bind(undefined, eventQueue.in.bind(eventQueue), this); } detach() { this.off('data', this[handler]); } } exports.BaseClient = BaseClient; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYmFzZS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQXlDO0FBR3pDLE1BQU0sVUFBVSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7QUFHN0MsU0FBUyxNQUFNLENBQStCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBcUI7SUFDMUUsSUFBSSxLQUFLLEtBQUssSUFBSTtRQUFFLE9BQU87SUFDM0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFM0MsTUFBc0IsVUFBYyxTQUFRLGdCQUFPO0lBSS9DLFlBQVksVUFBd0M7UUFDaEQsS0FBSyxFQUFFLENBQUM7UUFDUixVQUFVLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBSUQsTUFBTSxDQUFDLFVBQXVDO1FBQzFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0o7QUFuQkQsZ0NBbUJDIn0=