UNPKG

@jaenster/channels

Version:

simple concurrency channel messaging

19 lines 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Channel = void 0; const events_1 = require("@jaenster/events"); const queues_1 = require("@jaenster/queues"); class Channel extends events_1.EventTS { constructor() { super(); const obj = { work: undefined }; this.queue = new queues_1.FiFo(queues_1.Work.queue.add.bind(queues_1.Work.queue, obj)); obj.work = this.queue.forEach.bind(this.queue, this.emit.bind(this, 'data')); this.in = this.queue.add.bind(this.queue); } static factory() { return new this(); } } exports.Channel = Channel; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGFubmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF5QztBQUN6Qyw2Q0FBMkM7QUFVM0MsTUFBYSxPQUFXLFNBQVEsZ0JBQU87SUFJbkM7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUVSLE1BQU0sR0FBRyxHQUFHLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxhQUFJLENBQUMsYUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFFLENBQUMsQ0FBQztRQUM3RCxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRTdFLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU87UUFDVixPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztDQUVKO0FBbEJELDBCQWtCQyJ9