diff --git a/types/timer-machine/index.d.ts b/types/timer-machine/index.d.ts new file mode 100644 index 0000000000..49e63781ed --- /dev/null +++ b/types/timer-machine/index.d.ts @@ -0,0 +1,29 @@ +// Type definitions for timer-machine 1.1 +// Project: https://github.com/brentburg/timer-machine +// Definitions by: Dolan Miu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export as namespace Timer; +export = Timer; + +declare namespace Timer { + type TimerEvent = "start" | "stop" | "time"; +} + +declare class Timer { + static get(reference: string): Timer; + static destroy(reference: string): Timer; + + constructor(started?: boolean); + + isStarted(): boolean; + isStopped(): boolean; + start(): void; + timeFromStart(): number; + stop(): void; + time(): number; + toggle(): void; + emitTime(): void; + valueOf(): number; + on(event: Timer.TimerEvent, callback?: () => void): void; +} diff --git a/types/timer-machine/timer-machine-tests.ts b/types/timer-machine/timer-machine-tests.ts new file mode 100644 index 0000000000..c9e7096316 --- /dev/null +++ b/types/timer-machine/timer-machine-tests.ts @@ -0,0 +1,54 @@ +import * as Timer from "timer-machine"; + +let myTimer = new Timer(); + +myTimer.start(); +myTimer.stop(); +myTimer.time(); + +Timer.get('my').start(); +Timer.get('my').time(); +Timer.destroy('my'); + +myTimer = Timer.get('my'); + +let timer1 = new Timer(); +timer1.start(); + +let timer2 = new Timer(true); +timer2.start(); + +let timer = new Timer(); +timer.stop(); +timer.start(); +timer.stop(); + +timer = new Timer(); +timer.isStarted(); +timer.toggle(); +timer.isStarted(); +timer.toggle(); +timer.isStarted(); + +timer = new Timer(); +timer.start(); +timer.timeFromStart() === timer.time(); + +timer = new Timer(); +timer.isStarted(); +timer.start(); +timer.isStarted(); + +timer = new Timer(); +timer.isStopped(); +timer.start(); +timer.isStopped(); + +timer.on('start', () => { +}); + +timer.on('stop', () => { +}); + +timer.on('time', () => { +}); diff --git a/types/timer-machine/tsconfig.json b/types/timer-machine/tsconfig.json new file mode 100644 index 0000000000..e29ee58719 --- /dev/null +++ b/types/timer-machine/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "timer-machine-tests.ts" + ] +} \ No newline at end of file diff --git a/types/timer-machine/tslint.json b/types/timer-machine/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/timer-machine/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }