@tootallnate/once
Advanced tools
Comparing version 1.1.1 to 1.1.2
/// <reference types="node" /> | ||
import { EventEmitter } from 'events'; | ||
declare function once<T>(emitter: EventEmitter, name: string): once.CancellablePromise<T>; | ||
declare function once<T>(emitter: EventEmitter, name: string): once.CancelablePromise<T>; | ||
declare namespace once { | ||
@@ -8,7 +8,8 @@ interface CancelFunction { | ||
} | ||
interface CancellablePromise<T> extends Promise<T> { | ||
interface CancelablePromise<T> extends Promise<T> { | ||
cancel: CancelFunction; | ||
} | ||
function spread<T extends any[]>(emitter: EventEmitter, name: string): once.CancellablePromise<T>; | ||
type CancellablePromise<T> = CancelablePromise<T>; | ||
function spread<T extends any[]>(emitter: EventEmitter, name: string): once.CancelablePromise<T>; | ||
} | ||
export = once; |
@@ -11,2 +11,3 @@ "use strict"; | ||
function spread(emitter, name) { | ||
let c = null; | ||
const p = new Promise((resolve, reject) => { | ||
@@ -26,6 +27,10 @@ function cancel() { | ||
} | ||
p.cancel = cancel; | ||
c = cancel; | ||
emitter.on(name, onEvent); | ||
emitter.on('error', onError); | ||
}); | ||
if (!c) { | ||
throw new TypeError('Could not get `cancel()` function'); | ||
} | ||
p.cancel = c; | ||
return p; | ||
@@ -32,0 +37,0 @@ } |
{ | ||
"name": "@tootallnate/once", | ||
"version": "1.1.1", | ||
"version": "1.1.2", | ||
"description": "Creates a Promise that waits for a single event", | ||
@@ -5,0 +5,0 @@ "main": "./dist/index.js", |
Sorry, the diff of this file is not supported yet
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
4085
52