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.2-b660659 to 2.0.0-preview.3-2fc4f8e

dist/duplex-channel.d.ts

18

CHANGELOG.md
# Changelog
## 2.0.0-preview.3
### Minor Changes
- 3ca4cd4: Make Channel subscribable and add all subscribable methods
- 3ca4cd4: Change channel interface from `new Channel()` to `createChannel()`
### Patch Changes
- 3ca4cd4: Use new channel and subscription interfaces internally
- Updated dependencies [3ca4cd4]
- Updated dependencies [3ca4cd4]
- Updated dependencies [bdedf68]
- Updated dependencies [2bf5ef4]
- @effection/events@2.0.0-preview.3
- @effection/subscription@2.0.0-preview.3
- @effection/core@2.0.0-preview.3
## 2.0.0-preview.2

@@ -4,0 +22,0 @@

63

dist/channel.cjs.development.js

@@ -16,5 +16,7 @@ 'use strict';

bus.setMaxListeners(options.maxSubscribers);
} else {
bus.setMaxListeners(100000);
}
var subscribable = subscription.createSubscribable(function (publish) {
var stream = subscription.createStream(function (publish) {
return function* (task) {

@@ -36,19 +38,50 @@ var subscription = events.on(bus, 'event').subscribe(task);

});
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]
});
}
});
var send = function send(message) {
bus.emit('event', {
done: false,
value: message
});
};
var close = function close() {
bus.emit('event', {
done: true,
value: arguments.length <= 0 ? undefined : arguments[0]
});
};
return Object.assign({
send: send,
close: close,
stream: stream
}, stream);
}
function createDuplexChannel(options) {
if (options === void 0) {
options = {};
}
var leftChannel = createChannel(options);
var rightChannel = createChannel(options);
var close = function close() {
leftChannel.close.apply(leftChannel, arguments);
rightChannel.close.apply(rightChannel, arguments);
};
return [Object.assign({
send: rightChannel.send,
stream: leftChannel.stream,
close: close
}, leftChannel.stream), Object.assign({
send: leftChannel.send,
stream: rightChannel.stream,
close: close
}, rightChannel.stream)];
}
exports.createChannel = createChannel;
exports.createDuplexChannel = createDuplexChannel;
//# sourceMappingURL=channel.cjs.development.js.map

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

"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]})}})};
"use strict";var e=require("@effection/subscription"),n=require("@effection/events"),t=require("events");function r(r){void 0===r&&(r={});var s=new t.EventEmitter;s.setMaxListeners(r.maxSubscribers?r.maxSubscribers:1e5);var a=e.createStream((function(e){return function*(t){for(var r=n.on(s,"event").subscribe(t);;){var a=(yield r.next()).value[0];if(a.done)return a.value;e(a.value)}}}));return Object.assign({send:function(e){s.emit("event",{done:!1,value:e})},close:function(){s.emit("event",{done:!0,value:arguments.length<=0?void 0:arguments[0]})},stream:a},a)}exports.createChannel=r,exports.createDuplexChannel=function(e){void 0===e&&(e={});var n=r(e),t=r(e),s=function(){n.close.apply(n,arguments),t.close.apply(t,arguments)};return[Object.assign({send:t.send,stream:n.stream,close:s},n.stream),Object.assign({send:n.send,stream:t.stream,close:s},t.stream)]};
//# sourceMappingURL=channel.cjs.production.min.js.map

@@ -1,9 +0,11 @@

import { Subscribable } from '@effection/subscription';
import { WritableStream, Writable, Stream } from '@effection/subscription';
export declare type Close<T> = (...args: T extends undefined ? [] : [T]) => void;
export declare type Send<T> = Writable<T>['send'];
export declare type ChannelOptions = {
maxSubscribers?: number;
};
export interface Channel<T, TClose = undefined> extends Subscribable<T, TClose> {
send(message: T): void;
close(...args: TClose extends undefined ? [] : [TClose]): void;
export interface Channel<T, TClose = undefined> extends WritableStream<T, T, TClose> {
close: Close<TClose>;
stream: Stream<T, TClose>;
}
export declare function createChannel<T, TClose = undefined>(options?: ChannelOptions): Channel<T, TClose>;

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

import { createSubscribable } from '@effection/subscription';
import { createStream } from '@effection/subscription';
import { on } from '@effection/events';

@@ -14,5 +14,7 @@ import { EventEmitter } from 'events';

bus.setMaxListeners(options.maxSubscribers);
} else {
bus.setMaxListeners(100000);
}
var subscribable = createSubscribable(function (publish) {
var stream = createStream(function (publish) {
return function* (task) {

@@ -34,19 +36,49 @@ var subscription = on(bus, 'event').subscribe(task);

});
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]
});
}
});
var send = function send(message) {
bus.emit('event', {
done: false,
value: message
});
};
var close = function close() {
bus.emit('event', {
done: true,
value: arguments.length <= 0 ? undefined : arguments[0]
});
};
return Object.assign({
send: send,
close: close,
stream: stream
}, stream);
}
export { createChannel };
function createDuplexChannel(options) {
if (options === void 0) {
options = {};
}
var leftChannel = createChannel(options);
var rightChannel = createChannel(options);
var close = function close() {
leftChannel.close.apply(leftChannel, arguments);
rightChannel.close.apply(rightChannel, arguments);
};
return [Object.assign({
send: rightChannel.send,
stream: leftChannel.stream,
close: close
}, leftChannel.stream), Object.assign({
send: leftChannel.send,
stream: rightChannel.stream,
close: close
}, rightChannel.stream)];
}
export { createChannel, createDuplexChannel };
//# sourceMappingURL=channel.esm.js.map
export * from './channel';
export * from './duplex-channel';
{
"name": "@effection/channel",
"version": "2.0.0-preview.2-b660659",
"version": "2.0.0-preview.3-2fc4f8e",
"description": "MPMC Channel implementation for effection",

@@ -25,2 +25,3 @@ "main": "dist/index.js",

"@types/node": "^12.7.11",
"@effection/mocha": "2.0.0-preview.2",
"expect": "^25.4.0",

@@ -37,6 +38,6 @@ "mocha": "^7.2.0",

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

@@ -1,5 +0,9 @@

import { createSubscribable, Subscribable } from '@effection/subscription';
import { createStream, WritableStream, Writable, Stream } from '@effection/subscription';
import { on } from '@effection/events';
import { EventEmitter } from 'events';
export type Close<T> = (...args: T extends undefined ? [] : [T]) => void;
export type Send<T> = Writable<T>['send'];
export type ChannelOptions = {

@@ -9,5 +13,5 @@ maxSubscribers?: number;

export interface Channel<T, TClose = undefined> extends Subscribable<T, TClose> {
send(message: T): void;
close(...args: TClose extends undefined ? [] : [TClose]): void;
export interface Channel<T, TClose = undefined> extends WritableStream<T, T, TClose> {
close: Close<TClose>;
stream: Stream<T, TClose>;
}

@@ -20,5 +24,7 @@

bus.setMaxListeners(options.maxSubscribers);
} else {
bus.setMaxListeners(100000);
}
let subscribable = createSubscribable<T, TClose>((publish) => function*(task) {
let stream = createStream<T, TClose>((publish) => function*(task) {
let subscription = on(bus, 'event').subscribe(task);

@@ -35,11 +41,11 @@ while(true) {

return Object.assign(subscribable, {
send(message: T) {
bus.emit('event', { done: false, value: message });
},
let send: Send<T> = (message: T) => {
bus.emit('event', { done: false, value: message });
};
close(...args: TClose extends undefined ? [] : [TClose]) {
bus.emit('event', { done: true, value: args[0] });
}
});
let close: Close<TClose> = (...args) => {
bus.emit('event', { done: true, value: args[0] });
};
return Object.assign({ send, close, stream }, stream);
}
export * from './channel';
export * from './duplex-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