async-stream-emitter
Advanced tools
Comparing version 5.0.0 to 6.0.0
@@ -1,4 +0,1 @@ | ||
/** | ||
* AsyncStreamEmitter v3.0.3 browser bundle | ||
*/ | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).AsyncStreamEmitter=e()}}(function(){return function(){return function e(t,s,r){function i(u,o){if(!s[u]){if(!t[u]){var a="function"==typeof require&&require;if(!o&&a)return a(u,!0);if(n)return n(u,!0);var l=new Error("Cannot find module '"+u+"'");throw l.code="MODULE_NOT_FOUND",l}var m=s[u]={exports:{}};t[u][0].call(m.exports,function(e){return i(t[u][1][e]||e)},m,m.exports,e,t,s,r)}return s[u].exports}for(var n="function"==typeof require&&require,u=0;u<r.length;u++)i(r[u]);return i}}()({1:[function(e,t){t.exports=class{async next(e){let t=this.createConsumer(e),s=await t.next();return t.return(),s}async once(e){let t=await this.next(e);return t.done&&await new Promise(()=>{}),t.value}createConsumer(){throw new TypeError("Method must be overriden by subclass")}createConsumable(e){let t=this.createConsumer(e);return{[Symbol.asyncIterator]:()=>t}}[Symbol.asyncIterator](){return this.createConsumer()}}},{}],2:[function(e,t){const s=e("consumable-stream");t.exports=class extends s{constructor(e,t){super(),this.name=t,this._streamDemux=e}createConsumer(e){return this._streamDemux.createConsumer(this.name,e)}}},{"consumable-stream":1}],3:[function(e,t){const s=e("writable-consumable-stream"),r=e("./demuxed-consumable-stream");t.exports=class{constructor(){this._mainStream=new s}write(e,t){this._mainStream.write({stream:e,data:{value:t,done:!1}})}close(e,t){this._mainStream.write({stream:e,data:{value:t,done:!0}})}closeAll(e){this._mainStream.close(e)}writeToConsumer(e,t){this._mainStream.writeToConsumer(e,{consumerId:e,data:{value:t,done:!1}})}closeConsumer(e,t){this._mainStream.closeConsumer(e,{consumerId:e,data:{value:t,done:!0}})}getConsumerStats(e){return this._mainStream.getConsumerStats(e)}getConsumerStatsList(e){return this._mainStream.getConsumerStatsList().filter(t=>t.stream===e)}getConsumerStatsListAll(){return this._mainStream.getConsumerStatsList()}kill(e,t){let s=this.getConsumerStatsList(e),r=s.length;for(let e=0;e<r;e++)this.killConsumer(s[e].id,t)}killAll(e){this._mainStream.kill(e)}killConsumer(e,t){this._mainStream.killConsumer(e,t)}getBackpressure(e){let t=this.getConsumerStatsList(e),s=t.length,r=0;for(let e=0;e<s;e++){let s=t[e];s.backpressure>r&&(r=s.backpressure)}return r}getBackpressureAll(){return this._mainStream.getBackpressure()}getConsumerBackpressure(e){return this._mainStream.getConsumerBackpressure(e)}hasConsumer(e,t){let s=this._mainStream.getConsumerStats(t);return!!s&&s.stream===e}hasConsumerAll(e){return this._mainStream.hasConsumer(e)}createConsumer(e,t){let s=this._mainStream.createConsumer(t),r=s.next;s.next=async function(){for(;;){let t=await r.apply(this,arguments);if(t.value&&(t.value.stream===e||t.value.consumerId===this.id))return t.value.data.done&&this.return(),t.value.data;if(t.done)return t}};let i=s.getStats;s.getStats=function(){let t=i.apply(this,arguments);return t.stream=e,t};let n=s.applyBackpressure;s.applyBackpressure=function(t){!t.value||t.value.stream!==e&&t.value.consumerId!==this.id?t.done&&n.apply(this,arguments):n.apply(this,arguments)};let u=s.releaseBackpressure;return s.releaseBackpressure=function(t){!t.value||t.value.stream!==e&&t.value.consumerId!==this.id?t.done&&u.apply(this,arguments):u.apply(this,arguments)},s}stream(e){return new r(this,e)}}},{"./demuxed-consumable-stream":2,"writable-consumable-stream":5}],4:[function(e,t){t.exports=class{constructor(e,t,s,r){this.id=t,this._backpressure=0,this.stream=e,this.currentNode=s,this.timeout=r,this._isIterating=!1,this.stream.setConsumer(this.id,this)}getStats(){let e={id:this.id,backpressure:this._backpressure};return null!=this.timeout&&(e.timeout=this.timeout),e}resetBackpressure(){this._backpressure=0}applyBackpressure(){this._backpressure++}releaseBackpressure(){this._backpressure--}getBackpressure(){return this._backpressure}write(e){void 0!==this._timeoutId&&(clearTimeout(this._timeoutId),delete this._timeoutId),this.applyBackpressure(e),this._resolve&&(this._resolve(),delete this._resolve)}kill(e){void 0!==this._timeoutId&&(clearTimeout(this._timeoutId),delete this._timeoutId),this._isIterating?(this._killPacket={value:e,done:!0},this.applyBackpressure(this._killPacket)):(this.stream.removeConsumer(this.id),this.resetBackpressure()),this._resolve&&(this._resolve(),delete this._resolve)}async _waitForNextItem(e){return new Promise((t,s)=>{let r;if(this._resolve=t,void 0!==e){let t=new Error("Stream consumer iteration timed out");(async()=>{let i=function(e){let t,s=new Promise(s=>{t=setTimeout(s,e)});return{timeoutId:t,promise:s}}(e);r=i.timeoutId,await i.promise,t.name="TimeoutError",delete this._resolve,s(t)})()}this._timeoutId=r})}async next(){for(this._isIterating=!0,this.stream.setConsumer(this.id,this);;){if(!this.currentNode.next)try{await this._waitForNextItem(this.timeout)}catch(e){throw this._isIterating=!1,this.stream.removeConsumer(this.id),e}if(this._killPacket){this._isIterating=!1,this.stream.removeConsumer(this.id),this.resetBackpressure();let e=this._killPacket;return delete this._killPacket,e}if(this.currentNode=this.currentNode.next,this.releaseBackpressure(this.currentNode.data),!this.currentNode.consumerId||this.currentNode.consumerId===this.id)return this.currentNode.data.done&&(this._isIterating=!1,this.stream.removeConsumer(this.id)),this.currentNode.data}}return(){return delete this.currentNode,this._isIterating=!1,this.stream.removeConsumer(this.id),this.resetBackpressure(),{}}}},{}],5:[function(e,t){const s=e("consumable-stream"),r=e("./consumer");t.exports=class extends s{constructor(){super(),this.nextConsumerId=1,this._consumers={},this._tailNode={next:null,data:{value:void 0,done:!1}}}_write(e,t,s){let r={data:{value:e,done:t},next:null};s&&(r.consumerId=s),this._tailNode.next=r,this._tailNode=r;let i=Object.values(this._consumers),n=i.length;for(let e=0;e<n;e++){i[e].write(r.data)}}write(e){this._write(e,!1)}close(e){this._write(e,!0)}writeToConsumer(e,t){this._write(t,!1,e)}closeConsumer(e,t){this._write(t,!0,e)}kill(e){let t=Object.keys(this._consumers),s=t.length;for(let r=0;r<s;r++)this.killConsumer(t[r],e)}killConsumer(e,t){let s=this._consumers[e];s&&s.kill(t)}getBackpressure(){let e=Object.values(this._consumers),t=e.length,s=0;for(let r=0;r<t;r++){let t=e[r].getBackpressure();t>s&&(s=t)}return s}getConsumerBackpressure(e){let t=this._consumers[e];return t?t.getBackpressure():0}hasConsumer(e){return!!this._consumers[e]}setConsumer(e,t){this._consumers[e]=t,t.currentNode||(t.currentNode=this._tailNode)}removeConsumer(e){delete this._consumers[e]}getConsumerStats(e){let t=this._consumers[e];if(t)return t.getStats()}getConsumerStatsList(){let e=[],t=Object.values(this._consumers),s=t.length;for(let r=0;r<s;r++){let s=t[r];e.push(s.getStats())}return e}createConsumer(e){return new r(this,this.nextConsumerId++,this._tailNode,e)}}},{"./consumer":4,"consumable-stream":1}],"async-stream-emitter":[function(e,t){const s=e("stream-demux");function r(){this._listenerDemux=new s}r.prototype.emit=function(e,t){this._listenerDemux.write(e,t)},r.prototype.listener=function(e){return this._listenerDemux.stream(e)},r.prototype.closeListener=function(e){this._listenerDemux.close(e)},r.prototype.closeAllListeners=function(){this._listenerDemux.closeAll()},r.prototype.getListenerConsumerStats=function(e){return this._listenerDemux.getConsumerStats(e)},r.prototype.getListenerConsumerStatsList=function(e){return this._listenerDemux.getConsumerStatsList(e)},r.prototype.getAllListenersConsumerStatsList=function(){return this._listenerDemux.getConsumerStatsListAll()},r.prototype.killListener=function(e){this._listenerDemux.kill(e)},r.prototype.killAllListeners=function(){this._listenerDemux.killAll()},r.prototype.killListenerConsumer=function(e){this._listenerDemux.killConsumer(e)},r.prototype.getListenerBackpressure=function(e){return this._listenerDemux.getBackpressure(e)},r.prototype.getAllListenersBackpressure=function(){return this._listenerDemux.getBackpressureAll()},r.prototype.getListenerConsumerBackpressure=function(e){return this._listenerDemux.getConsumerBackpressure(e)},r.prototype.hasListenerConsumer=function(e,t){return this._listenerDemux.hasConsumer(e,t)},r.prototype.hasAnyListenerConsumer=function(e){return this._listenerDemux.hasConsumerAll(e)},t.exports=r},{"stream-demux":3}]},{},["async-stream-emitter"])("async-stream-emitter")});export default AsyncStreamEmitter; | ||
function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var t=class{async next(e){let t=this.createConsumer(e),s=await t.next();return t.return(),s}async once(e){let t=await this.next(e);if(t.done){if(null!=e){let e=new Error("Stream consumer operation timed out early because stream ended");throw e.name="TimeoutError",e}await new Promise((()=>{}))}return t.value}createConsumer(){throw new TypeError("Method must be overriden by subclass")}[Symbol.asyncIterator](){return this.createConsumer()}};let s=class{constructor(e,t,s,r){this.id=t,this._backpressure=0,this.currentNode=s,this.timeout=r,this.isAlive=!0,this.stream=e,this.stream.setConsumer(this.id,this)}getStats(){let e={id:this.id,backpressure:this._backpressure};return null!=this.timeout&&(e.timeout=this.timeout),e}_resetBackpressure(){this._backpressure=0}applyBackpressure(e){this._backpressure++}releaseBackpressure(e){this._backpressure--}getBackpressure(){return this._backpressure}clearActiveTimeout(){clearTimeout(this._timeoutId),delete this._timeoutId}write(e){void 0!==this._timeoutId&&this.clearActiveTimeout(e),this.applyBackpressure(e),this._resolve&&(this._resolve(),delete this._resolve)}kill(e){this._killPacket={value:e,done:!0},void 0!==this._timeoutId&&this.clearActiveTimeout(this._killPacket),this._destroy(),this._resolve&&(this._resolve(),delete this._resolve)}_destroy(){this.isAlive=!1,this._resetBackpressure(),this.stream.removeConsumer(this.id)}async _waitForNextItem(e){return new Promise(((t,s)=>{let r;if(this._resolve=t,void 0!==e){let t=new Error("Stream consumer iteration timed out");(async()=>{let i=function(e){let t,s=new Promise((s=>{t=setTimeout(s,e)}));return{timeoutId:t,promise:s}}(e);r=i.timeoutId,await i.promise,t.name="TimeoutError",delete this._resolve,s(t)})()}this._timeoutId=r}))}async next(){for(this.stream.setConsumer(this.id,this);;){if(!this.currentNode.next)try{await this._waitForNextItem(this.timeout)}catch(e){throw this._destroy(),e}if(this._killPacket){this._destroy();let e=this._killPacket;return delete this._killPacket,e}if(this.currentNode=this.currentNode.next,this.releaseBackpressure(this.currentNode.data),!this.currentNode.consumerId||this.currentNode.consumerId===this.id)return this.currentNode.data.done&&this._destroy(),this.currentNode.data}}return(){return delete this.currentNode,this._destroy(),{}}[Symbol.asyncIterator](){return this}};const r=t,i=s;var n=class extends r{constructor(){super(),this.nextConsumerId=1,this._consumers=new Map,this.tailNode={next:null,data:{value:void 0,done:!1}}}_write(e,t,s){let r={data:{value:e,done:t},next:null};s&&(r.consumerId=s),this.tailNode.next=r,this.tailNode=r;for(let e of this._consumers.values())e.write(r.data)}write(e){this._write(e,!1)}close(e){this._write(e,!0)}writeToConsumer(e,t){this._write(t,!1,e)}closeConsumer(e,t){this._write(t,!0,e)}kill(e){for(let t of this._consumers.keys())this.killConsumer(t,e)}killConsumer(e,t){let s=this._consumers.get(e);s&&s.kill(t)}getBackpressure(){let e=0;for(let t of this._consumers.values()){let s=t.getBackpressure();s>e&&(e=s)}return e}getConsumerBackpressure(e){let t=this._consumers.get(e);return t?t.getBackpressure():0}hasConsumer(e){return this._consumers.has(e)}setConsumer(e,t){this._consumers.set(e,t),t.currentNode||(t.currentNode=this.tailNode)}removeConsumer(e){return this._consumers.delete(e)}getConsumerStats(e){let t=this._consumers.get(e);if(t)return t.getStats()}getConsumerStatsList(){let e=[];for(let t of this._consumers.values())e.push(t.getStats());return e}createConsumer(e){return new i(this,this.nextConsumerId++,this.tailNode,e)}getConsumerList(){return[...this._consumers.values()]}getConsumerCount(){return this._consumers.size}};const o=t;var u=class extends o{constructor(e,t,s){super(),this._streamDemux=e,this.name=t,this.usabilityMode=!!s}createConsumer(e){return this._streamDemux.createConsumer(this.name,e,this.usabilityMode)}};let a=class{constructor(e,t,s,r,i,n){this.id=t,this._backpressure=0,this.currentNode=s,this.timeout=i,this.isAlive=!0,this._mainStream=e,this._mainStream.setConsumer(this.id,this),this.streamName=r,this.usabilityMode=!!n}getStats(){let e={id:this.id,backpressure:this._backpressure,stream:this.streamName};return null!=this.timeout&&(e.timeout=this.timeout),e}_resetBackpressure(){this._backpressure=0}applyBackpressure(e){this._backpressure++}releaseBackpressure(e){this._backpressure--}getBackpressure(){return this._backpressure}clearActiveTimeout(){clearTimeout(this._timeoutId),delete this._timeoutId}write(e){(e.done||e.value.stream===this.streamName)&&(void 0!==this._timeoutId&&this.clearActiveTimeout(e),this.applyBackpressure(e)),this._resolve&&(this._resolve(),delete this._resolve)}kill(e){this._killPacket={value:e,done:!0},void 0!==this._timeoutId&&this.clearActiveTimeout(this._killPacket),this._destroy(),this._resolve&&(this._resolve(),delete this._resolve)}_destroy(){this.isAlive=!1,this._resetBackpressure(),this._mainStream.removeConsumer(this.id)}async _waitForNextItem(e){return new Promise(((t,s)=>{let r;if(this._resolve=t,null!=e){let t=new Error("Stream consumer iteration timed out");(async()=>{let i=l(e);r=i.timeoutId,await i.promise,t.name="TimeoutError",delete this._resolve,s(t)})()}this._timeoutId=r}))}async next(){for(this._mainStream.setConsumer(this.id,this);;){if(!this.currentNode.next)try{await this._waitForNextItem(this.timeout)}catch(e){throw this._destroy(),e}if(this._killPacket){this._destroy();let e=this._killPacket;return delete this._killPacket,e}for(;this.currentNode.next?.data?.value&&this.currentNode.next.data.value.stream!==this.streamName&&this.currentNode.next.consumerId!==this.id&&!this.currentNode.next.data.done;)this.currentNode=this.currentNode.next,this.usabilityMode&&await l(0);if(this.currentNode.next)return this.currentNode=this.currentNode.next,this.releaseBackpressure(this.currentNode.data),this.currentNode.data?.value?.data?.done?(this._destroy(),this.currentNode.data.value.data):this.currentNode.data.done?(this._destroy(),this.currentNode.data):this.currentNode.data.value.data}}return(){return delete this.currentNode,this._destroy(),{}}[Symbol.asyncIterator](){return this}};function l(e){let t,s=new Promise((s=>{t=setTimeout(s,e)}));return{timeoutId:t,promise:s}}const m=n,h=u,c=a;var d=class{constructor(){this._mainStream=new m}write(e,t){this._mainStream.write({stream:e,data:{value:t,done:!1}})}close(e,t){this._mainStream.write({stream:e,data:{value:t,done:!0}})}closeAll(e){this._mainStream.close(e)}writeToConsumer(e,t){this._mainStream.writeToConsumer(e,{consumerId:e,data:{value:t,done:!1}})}closeConsumer(e,t){this._mainStream.closeConsumer(e,{consumerId:e,data:{value:t,done:!0}})}getConsumerStats(e){return this._mainStream.getConsumerStats(e)}getConsumerStatsList(e){return this._mainStream.getConsumerStatsList().filter((t=>t.stream===e))}getConsumerStatsListAll(){return this._mainStream.getConsumerStatsList()}kill(e,t){let s=this.getConsumerStatsList(e),r=s.length;for(let e=0;e<r;e++)this.killConsumer(s[e].id,t)}killAll(e){this._mainStream.kill(e)}killConsumer(e,t){this._mainStream.killConsumer(e,t)}getBackpressure(e){let t=this.getConsumerStatsList(e),s=t.length,r=0;for(let e=0;e<s;e++){let s=t[e];s.backpressure>r&&(r=s.backpressure)}return r}getBackpressureAll(){return this._mainStream.getBackpressure()}getConsumerBackpressure(e){return this._mainStream.getConsumerBackpressure(e)}hasConsumer(e,t){let s=this._mainStream.getConsumerStats(t);return!!s&&s.stream===e}hasConsumerAll(e){return this._mainStream.hasConsumer(e)}getConsumerCount(e){return this.getConsumerStatsList(e).length}getConsumerCountAll(){return this.getConsumerStatsListAll().length}createConsumer(e,t,s){return new c(this._mainStream,this._mainStream.nextConsumerId++,this._mainStream.tailNode,e,t,s)}stream(e,t){return new h(this,e,t)}};const _=d;function p(e){let{usabilityMode:t}=e||{};this.usabilityMode=t,this._listenerDemux=new _}p.prototype.emit=function(e,t){this._listenerDemux.write(e,t)},p.prototype.listener=function(e,t){return this._listenerDemux.stream(e,t)},p.prototype.closeListener=function(e){this._listenerDemux.close(e)},p.prototype.closeAllListeners=function(){this._listenerDemux.closeAll()},p.prototype.getListenerConsumerStats=function(e){return this._listenerDemux.getConsumerStats(e)},p.prototype.getListenerConsumerStatsList=function(e){return this._listenerDemux.getConsumerStatsList(e)},p.prototype.getAllListenersConsumerStatsList=function(){return this._listenerDemux.getConsumerStatsListAll()},p.prototype.getListenerConsumerCount=function(e){return this._listenerDemux.getConsumerCount(e)},p.prototype.getAllListenersConsumerCount=function(){return this._listenerDemux.getConsumerCountAll()},p.prototype.killListener=function(e){this._listenerDemux.kill(e)},p.prototype.killAllListeners=function(){this._listenerDemux.killAll()},p.prototype.killListenerConsumer=function(e){this._listenerDemux.killConsumer(e)},p.prototype.getListenerBackpressure=function(e){return this._listenerDemux.getBackpressure(e)},p.prototype.getAllListenersBackpressure=function(){return this._listenerDemux.getBackpressureAll()},p.prototype.getListenerConsumerBackpressure=function(e){return this._listenerDemux.getConsumerBackpressure(e)},p.prototype.hasListenerConsumer=function(e,t){return this._listenerDemux.hasConsumer(e,t)},p.prototype.hasAnyListenerConsumer=function(e){return this._listenerDemux.hasConsumerAll(e)};var k=e(p);export{k as default}; |
const StreamDemux = require('stream-demux'); | ||
function AsyncStreamEmitter() { | ||
function AsyncStreamEmitter(options) { | ||
let { usabilityMode } = options || {}; | ||
this.usabilityMode = usabilityMode; | ||
this._listenerDemux = new StreamDemux(); | ||
@@ -11,4 +13,4 @@ } | ||
AsyncStreamEmitter.prototype.listener = function (eventName) { | ||
return this._listenerDemux.stream(eventName); | ||
AsyncStreamEmitter.prototype.listener = function (eventName, usabilityMode) { | ||
return this._listenerDemux.stream(eventName, usabilityMode); | ||
}; | ||
@@ -15,0 +17,0 @@ |
{ | ||
"name": "async-stream-emitter", | ||
"version": "5.0.0", | ||
"version": "6.0.0", | ||
"description": "An alternantive to EventEmitter using consumable streams.", | ||
"main": "index.js", | ||
"scripts": { | ||
"build": "gulp browserify; gulp minify", | ||
"build": "./node_modules/.bin/rollup --config ./rollup.config.js", | ||
"test": "./node_modules/mocha/bin/_mocha --reporter spec --timeout 10000 --slow 10000" | ||
@@ -29,20 +29,11 @@ }, | ||
"devDependencies": { | ||
"@babel/core": "^7.2.2", | ||
"@babel/preset-env": "^7.2.3", | ||
"babel-plugin-minify-dead-code-elimination": "^0.5.0", | ||
"browserify": "^16.2.3", | ||
"gulp": "^4.0.0", | ||
"gulp-babel": "^8.0.0", | ||
"gulp-cli": "^2.0.1", | ||
"gulp-convert-newline": "^0.0.3", | ||
"gulp-insert": "^0.5.0", | ||
"gulp-rename": "^1.4.0", | ||
"gulp-uglify": "^3.0.1", | ||
"mocha": "^5.2.0", | ||
"uglify-es": "^3.3.9", | ||
"vinyl-source-stream": "^2.0.0" | ||
"@rollup/plugin-commonjs": "^25.0.4", | ||
"@rollup/plugin-node-resolve": "^15.2.1", | ||
"@rollup/plugin-terser": "^0.4.3", | ||
"mocha": "^10.2.0", | ||
"rollup": "^3.28.1" | ||
}, | ||
"dependencies": { | ||
"stream-demux": "^9.0.0" | ||
"stream-demux": "^9.0.2" | ||
} | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
5
0
19656
240
1
Updatedstream-demux@^9.0.2