Merge pull request #19050 from LKay/lkay/event-emitter

Add definitions for event-emitter
This commit is contained in:
Daniel Rosenwasser
2017-08-22 10:03:27 -07:00
committed by GitHub
8 changed files with 104 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
import { Emitter } from "event-emitter";
declare function allOff(emitter: Emitter): void;
export = allOff;
@@ -0,0 +1,35 @@
import { Emitter } from "event-emitter";
import ee = require("event-emitter");
import allOff = require("event-emitter/all-off");
import hasListeners = require("event-emitter/has-listeners");
import { EmitterPipe } from "event-emitter/pipe";
import pipe = require("event-emitter/pipe");
import unify = require("event-emitter/unify");
const obj = {};
const emitter1: Emitter = ee(obj);
const emitter2: Emitter = ee(obj);
function listener(param: string) {}
emitter1.on("test", listener);
emitter1.once("test", listener);
emitter1.off("test", listener);
emitter1.emit("test", "foo");
allOff(emitter1);
hasListeners(emitter1);
hasListeners(emitter1, "test");
const eePipe1: EmitterPipe = pipe(emitter1, emitter2);
const eePipe2: EmitterPipe = pipe(emitter1, emitter2, "foo");
eePipe1.close();
const unifiedEmitter: Emitter = unify(emitter1, emitter2);
unifiedEmitter.on("test", listener);
unifiedEmitter.once("test", listener);
unifiedEmitter.off("test", listener);
unifiedEmitter.emit("test", "foo");
+4
View File
@@ -0,0 +1,4 @@
import { Emitter } from "event-emitter";
declare function hasListeners(emitter: Emitter, name?: string): boolean;
export = hasListeners;
+20
View File
@@ -0,0 +1,20 @@
// Type definitions for event-emitter 0.3
// Project: https://github.com/medikoo/event-emitter#readme
// Definitions by: Karol Janyst <https://github.com/LKay>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
declare namespace ee {
type EventListener = (...args: any[]) => void;
type EmitterMethod = (type: string, listener: EventListener) => void;
interface Emitter {
emit(type: string, ...args: any[]): void;
off: EmitterMethod;
on: EmitterMethod;
once: EmitterMethod;
}
}
declare function ee(obj: any): ee.Emitter;
export = ee;
+10
View File
@@ -0,0 +1,10 @@
import { Emitter } from "event-emitter";
declare namespace pipe {
interface EmitterPipe {
close(): void;
}
}
declare function pipe(source: Emitter, target: Emitter, emitMethodName?: string | symbol): pipe.EmitterPipe;
export = pipe;
+26
View File
@@ -0,0 +1,26 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"all-off.d.ts",
"has-listeners.d.ts",
"index.d.ts",
"pipe.d.ts",
"unify.d.ts",
"event-emitter-tests.ts"
]
}
+1
View File
@@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }
+4
View File
@@ -0,0 +1,4 @@
import { Emitter } from "event-emitter";
declare function unify(emitter1: Emitter, emitter2: Emitter): Emitter;
export = unify;