diff --git a/types/event-emitter/all-off.d.ts b/types/event-emitter/all-off.d.ts new file mode 100644 index 0000000000..e94f6e7747 --- /dev/null +++ b/types/event-emitter/all-off.d.ts @@ -0,0 +1,4 @@ +import { Emitter } from "event-emitter"; + +declare function allOff(emitter: Emitter): void; +export = allOff; diff --git a/types/event-emitter/event-emitter-tests.ts b/types/event-emitter/event-emitter-tests.ts new file mode 100644 index 0000000000..e5ed39a4f5 --- /dev/null +++ b/types/event-emitter/event-emitter-tests.ts @@ -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"); diff --git a/types/event-emitter/has-listeners.d.ts b/types/event-emitter/has-listeners.d.ts new file mode 100644 index 0000000000..2a67ee6bc5 --- /dev/null +++ b/types/event-emitter/has-listeners.d.ts @@ -0,0 +1,4 @@ +import { Emitter } from "event-emitter"; + +declare function hasListeners(emitter: Emitter, name?: string): boolean; +export = hasListeners; diff --git a/types/event-emitter/index.d.ts b/types/event-emitter/index.d.ts new file mode 100644 index 0000000000..1b5fb29c62 --- /dev/null +++ b/types/event-emitter/index.d.ts @@ -0,0 +1,20 @@ +// Type definitions for event-emitter 0.3 +// Project: https://github.com/medikoo/event-emitter#readme +// Definitions by: Karol Janyst +// 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; diff --git a/types/event-emitter/pipe.d.ts b/types/event-emitter/pipe.d.ts new file mode 100644 index 0000000000..29b0512cb6 --- /dev/null +++ b/types/event-emitter/pipe.d.ts @@ -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; diff --git a/types/event-emitter/tsconfig.json b/types/event-emitter/tsconfig.json new file mode 100644 index 0000000000..7b8352ee4d --- /dev/null +++ b/types/event-emitter/tsconfig.json @@ -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" + ] +} diff --git a/types/event-emitter/tslint.json b/types/event-emitter/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/event-emitter/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/event-emitter/unify.d.ts b/types/event-emitter/unify.d.ts new file mode 100644 index 0000000000..af70f0f38c --- /dev/null +++ b/types/event-emitter/unify.d.ts @@ -0,0 +1,4 @@ +import { Emitter } from "event-emitter"; + +declare function unify(emitter1: Emitter, emitter2: Emitter): Emitter; +export = unify;