diff --git a/Q/q-tests.spec.ts b/Q/q-tests.spec.ts new file mode 100644 index 0000000000..510a50610c --- /dev/null +++ b/Q/q-tests.spec.ts @@ -0,0 +1,27 @@ +/// +/// + +import q = module("q"); + +describe("q", function () { + it("should return", function (done) { + q({ myValue: true }).then(function (obj) { + + if (obj.myValue) done(); + else done("didn't work =("); + }, + (err) => done(err)); + }); + + it("should process all", function (done: (err?) => void) { + q.all([q(1), q(2), q(3)]).then(function (arr: number[]) { + var sum = arr.reduce(function (memo, cur) { + return memo + cur; + }, 0); + + if (sum === 6) done(); + else done({ actual: sum }); + }, + (err) => done(err)); + }); +}); \ No newline at end of file diff --git a/Q/q.module.d.ts b/Q/q.module.d.ts new file mode 100644 index 0000000000..38b19aafc2 --- /dev/null +++ b/Q/q.module.d.ts @@ -0,0 +1,26 @@ +/// + +module "q" { + export function try(method: Function, ...args: any[]): Qpromise; + export function fbind(method: Function, ...args: any[]): Qpromise; + export function fcall(method: Function, ...args: any[]): Qpromise; + export function all(promises: Qpromise[]): Qpromise; + export function allResolved(promises: Qpromise[]): Qpromise; + export function spread(onFulfilled: Function, onRejected: Function): Qpromise; + export function timeout(ms: number): Qpromise; + export function delay(ms: number): Qpromise; + export function delay(value: any, ms: number): Qpromise; + export function isFulfilled(): bool; + export function isRejected(): bool; + export function isPending(): bool; + export function valueOf(): any; + export function defer(): Qdeferred; + export function (value: any): Qpromise; + export function reject(): Qpromise; + export function promise(factory: { resolve: Function; reject: Function; notify: Function; }): Qpromise; + export function isPromise(value: any): bool; + export function async(generatorFunction: any): Qdeferred; + export function nextTick(callback: Function); + export var oneerror: any; + export var longStackJumpLimit: number; +} \ No newline at end of file diff --git a/qcommon/q.d.ts b/qcommon/q.d.ts deleted file mode 100644 index 9add54ab8e..0000000000 --- a/qcommon/q.d.ts +++ /dev/null @@ -1,58 +0,0 @@ -// Type definitions for q that meet the CommonJS module format. -// Project: https://github.com/kriskowal/q -// Definitions by: Barrie Nemetchek and Andrew Gaspar -// Definitions: https://github.com/AndrewGaspar/DefinitelyTyped - -interface Qdeferred { - promise: Qpromise; - resolve(value: any): any; - reject(reason: any); - notify(value: any); - makeNodeResolver(): Function; -} - -interface Qpromise { - fail(errorCallback: Function): Qpromise; - fin(finallyCallback: Function): Qpromise; - then(onFulfilled: Function, onRejected?: Function, onProgress?: Function): Qpromise; - catch(onRejected: Function): Qpromise; - progress(onProgress: Function): Qpromise; - done(onFulfilled: Function, onRejected?: Function, onProgress?: Function): Qpromise; - get (propertyName: String): Qpromise; - set (propertyName: String, value: any): Qpromise; - delete (propertyName: String): Qpromise; - post(methodName: String, args: any[]): Qpromise; - invoke(methodName: String, ...args: any[]): Qpromise; - keys(): Qpromise; - fapply(args: any[]): Qpromise; - fcall(method: Function, ...args: any[]): Qpromise; - timeout(ms: number): Qpromise; - delay(ms: number): Qpromise; - isFulfilled(): bool; - isRejected(): bool; - isPending(): bool; - valueOf(): any; -} - -export function try(method: Function, ...args: any[]): Qpromise; -export function fbind(method: Function, ...args: any[]): Qpromise; -export function fcall(method: Function, ...args: any[]): Qpromise; -export function all(promises: Qpromise[]): Qpromise; -export function allResolved(promises: Qpromise[]): Qpromise; -export function spread(onFulfilled: Function, onRejected: Function): Qpromise; -export function timeout(ms: number): Qpromise; -export function delay(ms: number): Qpromise; -export function delay(value: any, ms: number): Qpromise; -export function isFulfilled(): bool; -export function isRejected(): bool; -export function isPending(): bool; -export function valueOf(): any; -export function defer(): Qdeferred; -export function (value: any): Qpromise; -export function reject(): Qpromise; -export function promise(factory: { resolve: Function; reject: Function; notify: Function; }): Qpromise; -export function isPromise(value: any): bool; -export function async(generatorFunction: any): Qdeferred; -export function nextTick(callback: Function); -export var oneerror: any; -export var longStackJumpLimit: number; \ No newline at end of file