Comparing version 2.3.1 to 3.0.0
64
index.js
@@ -25,7 +25,8 @@ 'use strict'; | ||
const ret = new Promise((resolve, reject) => { | ||
options = Object.assign({ | ||
options = { | ||
rejectionEvents: ['error'], | ||
multiArgs: false, | ||
resolveImmediately: false | ||
}, options); | ||
resolveImmediately: false, | ||
...options | ||
}; | ||
@@ -96,3 +97,3 @@ if (!(options.count >= 0 && (options.count === Infinity || Number.isInteger(options.count)))) { | ||
module.exports = (emitter, event, options) => { | ||
const pEvent = (emitter, event, options) => { | ||
if (typeof options === 'function') { | ||
@@ -102,10 +103,10 @@ options = {filter: options}; | ||
options = Object.assign({}, options, { | ||
options = { | ||
...options, | ||
count: 1, | ||
resolveImmediately: false | ||
}); | ||
}; | ||
const arrayPromise = multiple(emitter, event, options); | ||
const promise = arrayPromise.then(array => array[0]); | ||
const promise = arrayPromise.then(array => array[0]); // eslint-disable-line promise/prefer-await-to-then | ||
promise.cancel = arrayPromise.cancel; | ||
@@ -116,2 +117,5 @@ | ||
module.exports = pEvent; | ||
module.exports.default = pEvent; | ||
module.exports.multiple = multiple; | ||
@@ -127,8 +131,9 @@ | ||
options = Object.assign({ | ||
options = { | ||
rejectionEvents: ['error'], | ||
resolutionEvents: [], | ||
limit: Infinity, | ||
multiArgs: false | ||
}, options); | ||
multiArgs: false, | ||
...options | ||
}; | ||
@@ -147,4 +152,7 @@ const {limit} = options; | ||
}, | ||
next() { | ||
return Promise.resolve({done: true, value: undefined}); | ||
async next() { | ||
return { | ||
done: true, | ||
value: undefined | ||
}; | ||
} | ||
@@ -154,7 +162,5 @@ }; | ||
let isLimitReached = false; | ||
const {addListener, removeListener} = normalizeEmitter(emitter); | ||
let done = false; | ||
let isDone = false; | ||
let error; | ||
@@ -165,2 +171,3 @@ let hasPendingError = false; | ||
let eventCount = 0; | ||
let isLimitReached = false; | ||
@@ -193,3 +200,3 @@ const valueHandler = (...args) => { | ||
const cancel = () => { | ||
done = true; | ||
isDone = true; | ||
for (const event of events) { | ||
@@ -259,6 +266,9 @@ removeListener(event, valueHandler); | ||
}, | ||
next() { | ||
async next() { | ||
if (valueQueue.length > 0) { | ||
const value = valueQueue.shift(); | ||
return Promise.resolve({done: done && valueQueue.length === 0 && !isLimitReached, value}); | ||
return { | ||
done: isDone && valueQueue.length === 0 && !isLimitReached, | ||
value | ||
}; | ||
} | ||
@@ -268,7 +278,10 @@ | ||
hasPendingError = false; | ||
return Promise.reject(error); | ||
throw error; | ||
} | ||
if (done) { | ||
return Promise.resolve({done: true, value: undefined}); | ||
if (isDone) { | ||
return { | ||
done: true, | ||
value: undefined | ||
}; | ||
} | ||
@@ -278,7 +291,10 @@ | ||
}, | ||
return(value) { | ||
async return(value) { | ||
cancel(); | ||
return Promise.resolve({done, value}); | ||
return { | ||
done: isDone, | ||
value | ||
}; | ||
} | ||
}; | ||
}; |
{ | ||
"name": "p-event", | ||
"version": "2.3.1", | ||
"version": "3.0.0", | ||
"description": "Promisify an event by waiting for it to be emitted", | ||
@@ -13,9 +13,10 @@ "license": "MIT", | ||
"engines": { | ||
"node": ">=6" | ||
"node": ">=8" | ||
}, | ||
"scripts": { | ||
"test": "xo && ava" | ||
"test": "xo && ava && tsd-check" | ||
}, | ||
"files": [ | ||
"index.js" | ||
"index.js", | ||
"index.d.ts" | ||
], | ||
@@ -49,6 +50,8 @@ "keywords": [ | ||
"devDependencies": { | ||
"@types/node": "^11.9.5", | ||
"ava": "^1.2.1", | ||
"delay": "^4.1.0", | ||
"tsd-check": "^0.3.0", | ||
"xo": "^0.24.0" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
23003
5
413
5