From 328a83158ea694e005f94f8af722e6ec84e3f26d Mon Sep 17 00:00:00 2001 From: Yuichi Murata Date: Sun, 15 Feb 2015 23:21:20 +0900 Subject: [PATCH] Added eventemitter3/eventemitter3.d.ts(0.1.6). --- eventemitter3/eventemitter3-test.ts | 65 ++++++++++++++++++ eventemitter3/eventemitter3.d.ts | 100 ++++++++++++++++++++++++++++ 2 files changed, 165 insertions(+) create mode 100644 eventemitter3/eventemitter3-test.ts create mode 100644 eventemitter3/eventemitter3.d.ts diff --git a/eventemitter3/eventemitter3-test.ts b/eventemitter3/eventemitter3-test.ts new file mode 100644 index 000000000..05138ab34 --- /dev/null +++ b/eventemitter3/eventemitter3-test.ts @@ -0,0 +1,65 @@ +/// +'use strict'; + +import EventEmitter = require('eventemitter3'); + +class EventEmitterTest { + v: EventEmitter; + + constructor() { + this.v = new EventEmitter(); + this.v = new EventEmitter.EventEmitter(); + this.v = new EventEmitter.EventEmitter2(); + this.v = new EventEmitter.EventEmitter3(); + } + + listeners() { + var v1: Function[] = this.v.listeners('click'); + } + + emit() { + var v1: boolean = this.v.emit('click'); + var v2: boolean = this.v.emit('click', 1); + var v3: boolean = this.v.emit('click', 1, '1'); + var v4: boolean = this.v.emit('click', 1, '1', true); + var v5: boolean = this.v.emit('click', 1, '1', true, new Date()); + } + + on() { + var fn = () => console.log(1); + var v1: EventEmitter = this.v.on('click', fn); + var v2: EventEmitter = this.v.on('click', fn, this); + } + + once() { + var fn = () => console.log(1); + var v1: EventEmitter = this.v.once('click', fn); + var v2: EventEmitter = this.v.once('click', fn, this); + } + + removeListener() { + var fn = () => console.log(1); + var v1: EventEmitter = this.v.removeListener('click', fn); + var v2: EventEmitter = this.v.removeListener('click', fn, true); + } + + removeAllListeners() { + var v1: EventEmitter = this.v.removeAllListeners('click'); + } + + off() { + var fn = () => console.log(1); + var v1: EventEmitter = this.v.off('click', fn); + var v2: EventEmitter = this.v.off('click', fn, true); + } + + addListener() { + var fn = () => console.log(1); + var v1: EventEmitter = this.v.addListener('click', fn); + var v2: EventEmitter = this.v.addListener('click', fn, this); + } + + setMaxListeners() { + var v1: EventEmitter = this.v.setMaxListeners(); + } +} diff --git a/eventemitter3/eventemitter3.d.ts b/eventemitter3/eventemitter3.d.ts new file mode 100644 index 000000000..60f6e6e93 --- /dev/null +++ b/eventemitter3/eventemitter3.d.ts @@ -0,0 +1,100 @@ +// Type definitions for EventEmitter3 0.1.6 +// Project: https://github.com/primus/eventemitter3 +// Definitions by: Yuichi Murata +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module EventEmitter3 { + export class EventEmitter { + /** + * Minimal EventEmitter interface that is molded against the Node.js + * EventEmitter interface. + * + * @constructor + * @api public + */ + constructor(); + + /** + * Return a list of assigned event listeners. + * + * @param {String} event The events that should be listed. + * @returns {Array} + * @api public + */ + listeners(event: string): Function[]; + + /** + * Emit an event to all registered event listeners. + * + * @param {String} event The name of the event. + * @returns {Boolean} Indication if we've emitted an event. + * @api public + */ + emit(event: string, ...args: any[]): boolean; + + /** + * Register a new EventListener for the given event. + * + * @param {String} event Name of the event. + * @param {Functon} fn Callback function. + * @param {Mixed} context The context of the function. + * @api public + */ + on(event: string, fn: Function, context?: any): EventEmitter; + + /** + * Add an EventListener that's only called once. + * + * @param {String} event Name of the event. + * @param {Function} fn Callback function. + * @param {Mixed} context The context of the function. + * @api public + */ + once(event: string, fn: Function, context?: any): EventEmitter; + + /** + * Remove event listeners. + * + * @param {String} event The event we want to remove. + * @param {Function} fn The listener that we need to find. + * @param {Boolean} once Only remove once listeners. + * @api public + */ + removeListener(event: string, fn: Function, once?: boolean): EventEmitter; + + /** + * Remove all listeners or only the listeners for the specified event. + * + * @param {String} event The event want to remove all listeners for. + * @api public + */ + removeAllListeners(event: string): EventEmitter; + + // + // Alias methods names because people roll like that. + // + off(event: string, fn: Function, once?: boolean): EventEmitter; + addListener(event: string, fn: Function, context?: any): EventEmitter; + + // + // This function doesn't apply anymore. + // + setMaxListeners(): EventEmitter; + } + export module EventEmitter { + // + // Expose the module. + // + export class EventEmitter extends EventEmitter3.EventEmitter {} + export class EventEmitter2 extends EventEmitter3.EventEmitter {} + export class EventEmitter3 extends EventEmitter3.EventEmitter {} + } +} + +declare module 'eventemitter3' { + // + // Expose the module. + // + class EventEmitter extends EventEmitter3.EventEmitter {} + export = EventEmitter; +}