@jaenster/channels
Version:
simple concurrency channel messaging
19 lines • 1.62 kB
JavaScript
;
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