Socket
Socket
Sign inDemoInstall

@effection/channel

Package Overview
Dependencies
Maintainers
1
Versions
130
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@effection/channel - npm Package Compare versions

Comparing version 2.0.0-preview.1-e00037d to 2.0.0-preview.2-0835ec2

10

CHANGELOG.md
# Changelog
## 2.0.0-preview.2
### Patch Changes
- 93ec0d6: Include CHANGELOGS and src with all packages
- Updated dependencies [93ec0d6]
- @effection/core@2.0.0-preview.2
- @effection/events@2.0.0-preview.2
- @effection/subscription@2.0.0-preview.2
## 2.0.0-preview.1

@@ -4,0 +14,0 @@

82

dist/channel.cjs.development.js

@@ -7,55 +7,47 @@ 'use strict';

var Channel = /*#__PURE__*/function () {
function Channel() {
this.bus = new events$1.EventEmitter();
function createChannel(options) {
if (options === void 0) {
options = {};
}
var _proto = Channel.prototype;
var bus = new events$1.EventEmitter();
_proto[subscription.SymbolOperationIterable] = function (task) {
return this.subscribe(task);
};
if (options.maxSubscribers) {
bus.setMaxListeners(options.maxSubscribers);
}
_proto.setMaxListeners = function setMaxListeners(value) {
this.bus.setMaxListeners(value);
};
var subscribable = subscription.createSubscribable(function (publish) {
return function* (task) {
var subscription = events.on(bus, 'event').subscribe(task);
_proto.send = function send(message) {
this.bus.emit('event', {
done: false,
value: message
});
};
while (true) {
var _yield$subscription$n = yield subscription.next(),
_yield$subscription$n2 = _yield$subscription$n.value,
next = _yield$subscription$n2[0];
_proto.subscribe = function subscribe(task) {
var bus = this.bus;
return subscription.Subscription.create(task, function (publish) {
return function* () {
var subscription = events.on(task, bus, 'event');
while (true) {
var _yield$subscription$e = yield subscription.expect(),
event = _yield$subscription$e[0];
if (event.done) {
return event.value;
} else {
publish(event.value);
}
if (next.done) {
return next.value;
} else {
publish(next.value);
}
};
});
};
}
};
});
return Object.assign(subscribable, {
send: function send(message) {
bus.emit('event', {
done: false,
value: message
});
},
close: function close() {
bus.emit('event', {
done: true,
value: arguments.length <= 0 ? undefined : arguments[0]
});
}
});
}
_proto.close = function close() {
this.bus.emit('event', {
done: true,
value: arguments.length <= 0 ? undefined : arguments[0]
});
};
return Channel;
}();
exports.Channel = Channel;
exports.createChannel = createChannel;
//# sourceMappingURL=channel.cjs.development.js.map

@@ -1,2 +0,2 @@

"use strict";var e=require("@effection/subscription"),t=require("@effection/events"),n=require("events");exports.Channel=function(){function i(){this.bus=new n.EventEmitter}var r=i.prototype;return r[e.SymbolOperationIterable]=function(e){return this.subscribe(e)},r.setMaxListeners=function(e){this.bus.setMaxListeners(e)},r.send=function(e){this.bus.emit("event",{done:!1,value:e})},r.subscribe=function(n){var i=this.bus;return e.Subscription.create(n,(function(e){return function*(){for(var r=t.on(n,i,"event");;){var s=(yield r.expect())[0];if(s.done)return s.value;e(s.value)}}}))},r.close=function(){this.bus.emit("event",{done:!0,value:arguments.length<=0?void 0:arguments[0]})},i}();
"use strict";var e=require("@effection/subscription"),n=require("@effection/events"),r=require("events");exports.createChannel=function(t){void 0===t&&(t={});var i=new r.EventEmitter;t.maxSubscribers&&i.setMaxListeners(t.maxSubscribers);var u=e.createSubscribable((function(e){return function*(r){for(var t=n.on(i,"event").subscribe(r);;){var u=(yield t.next()).value[0];if(u.done)return u.value;e(u.value)}}}));return Object.assign(u,{send:function(e){i.emit("event",{done:!1,value:e})},close:function(){i.emit("event",{done:!0,value:arguments.length<=0?void 0:arguments[0]})}})};
//# sourceMappingURL=channel.cjs.production.min.js.map

@@ -1,10 +0,9 @@

import { Task } from '@effection/core';
import { Subscription, SymbolOperationIterable, OperationIterator, OperationIterable } from '@effection/subscription';
export declare class Channel<T, TClose = undefined> implements OperationIterable<T, TClose> {
private bus;
[SymbolOperationIterable](task: Task): OperationIterator<T, TClose>;
setMaxListeners(value: number): void;
import { Subscribable } from '@effection/subscription';
export declare type ChannelOptions = {
maxSubscribers?: number;
};
export interface Channel<T, TClose = undefined> extends Subscribable<T, TClose> {
send(message: T): void;
subscribe(task: Task): Subscription<T, TClose>;
close(...args: TClose extends undefined ? [] : [TClose]): void;
}
export declare function createChannel<T, TClose = undefined>(options?: ChannelOptions): Channel<T, TClose>;

@@ -1,58 +0,50 @@

import { SymbolOperationIterable, Subscription } from '@effection/subscription';
import { createSubscribable } from '@effection/subscription';
import { on } from '@effection/events';
import { EventEmitter } from 'events';
var Channel = /*#__PURE__*/function () {
function Channel() {
this.bus = new EventEmitter();
function createChannel(options) {
if (options === void 0) {
options = {};
}
var _proto = Channel.prototype;
var bus = new EventEmitter();
_proto[SymbolOperationIterable] = function (task) {
return this.subscribe(task);
};
if (options.maxSubscribers) {
bus.setMaxListeners(options.maxSubscribers);
}
_proto.setMaxListeners = function setMaxListeners(value) {
this.bus.setMaxListeners(value);
};
var subscribable = createSubscribable(function (publish) {
return function* (task) {
var subscription = on(bus, 'event').subscribe(task);
_proto.send = function send(message) {
this.bus.emit('event', {
done: false,
value: message
});
};
while (true) {
var _yield$subscription$n = yield subscription.next(),
_yield$subscription$n2 = _yield$subscription$n.value,
next = _yield$subscription$n2[0];
_proto.subscribe = function subscribe(task) {
var bus = this.bus;
return Subscription.create(task, function (publish) {
return function* () {
var subscription = on(task, bus, 'event');
while (true) {
var _yield$subscription$e = yield subscription.expect(),
event = _yield$subscription$e[0];
if (event.done) {
return event.value;
} else {
publish(event.value);
}
if (next.done) {
return next.value;
} else {
publish(next.value);
}
};
});
};
}
};
});
return Object.assign(subscribable, {
send: function send(message) {
bus.emit('event', {
done: false,
value: message
});
},
close: function close() {
bus.emit('event', {
done: true,
value: arguments.length <= 0 ? undefined : arguments[0]
});
}
});
}
_proto.close = function close() {
this.bus.emit('event', {
done: true,
value: arguments.length <= 0 ? undefined : arguments[0]
});
};
return Channel;
}();
export { Channel };
export { createChannel };
//# sourceMappingURL=channel.esm.js.map

@@ -1,1 +0,1 @@

export { Channel } from './channel';
export * from './channel';
{
"name": "@effection/channel",
"version": "2.0.0-preview.1-e00037d",
"version": "2.0.0-preview.2-0835ec2",
"description": "MPMC Channel implementation for effection",

@@ -36,6 +36,6 @@ "main": "dist/index.js",

"dependencies": {
"@effection/core": "^2.0.0-preview.1",
"@effection/events": "^2.0.0-preview.1",
"@effection/subscription": "^2.0.0-preview.1"
"@effection/core": "^2.0.0-preview.2",
"@effection/events": "^2.0.0-preview.2",
"@effection/subscription": "^2.0.0-preview.2"
}
}

@@ -1,39 +0,42 @@

import { Operation, Task } from '@effection/core';
import { Subscription, SymbolOperationIterable, OperationIterator, OperationIterable } from '@effection/subscription';
import { createSubscribable, Subscribable } from '@effection/subscription';
import { on } from '@effection/events';
import { EventEmitter } from 'events';
export class Channel<T, TClose = undefined> implements OperationIterable<T, TClose> {
private bus = new EventEmitter();
export type ChannelOptions = {
maxSubscribers?: number;
}
[SymbolOperationIterable](task: Task): OperationIterator<T, TClose> {
return this.subscribe(task);
}
export interface Channel<T, TClose = undefined> extends Subscribable<T, TClose> {
send(message: T): void;
close(...args: TClose extends undefined ? [] : [TClose]): void;
}
setMaxListeners(value: number) {
this.bus.setMaxListeners(value);
}
export function createChannel<T, TClose = undefined>(options: ChannelOptions = {}): Channel<T, TClose> {
let bus = new EventEmitter();
send(message: T) {
this.bus.emit('event', { done: false, value: message });
if(options.maxSubscribers) {
bus.setMaxListeners(options.maxSubscribers);
}
subscribe(task: Task): Subscription<T, TClose> {
let { bus } = this;
return Subscription.create(task, (publish): Operation<TClose> => function*() {
let subscription = on(task, bus, 'event');
while(true) {
let [event] = yield subscription.expect();
if(event.done) {
return event.value;
} else {
publish(event.value);
}
let subscribable = createSubscribable<T, TClose>((publish) => function*(task) {
let subscription = on(bus, 'event').subscribe(task);
while(true) {
let { value: [next] } = yield subscription.next();
if(next.done) {
return next.value;
} else {
publish(next.value);
}
});
}
}
});
close(...args: TClose extends undefined ? [] : [TClose]) {
this.bus.emit('event', { done: true, value: args[0] });
}
return Object.assign(subscribable, {
send(message: T) {
bus.emit('event', { done: false, value: message });
},
close(...args: TClose extends undefined ? [] : [TClose]) {
bus.emit('event', { done: true, value: args[0] });
}
});
}

@@ -1,1 +0,1 @@

export { Channel } from './channel';
export * from './channel';

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc