diff --git a/denodeify/denodeify-tests.ts b/denodeify/denodeify-tests.ts new file mode 100644 index 0000000000..0cd6a0c988 --- /dev/null +++ b/denodeify/denodeify-tests.ts @@ -0,0 +1,10 @@ +/// +/// +/// + +import denodeify = require("denodeify"); +import fs = require('fs'); +import cp = require('child_process'); + +const readFile = denodeify(fs.readFile); +const exec = denodeify(cp.exec, (err, stdout, stderr) => [err, stdout]); \ No newline at end of file diff --git a/denodeify/denodeify.d.ts b/denodeify/denodeify.d.ts new file mode 100644 index 0000000000..fec2fbf3cc --- /dev/null +++ b/denodeify/denodeify.d.ts @@ -0,0 +1,36 @@ +// Type definitions for denodeify 1.2.1 +// Project: https://github.com/matthew-andrews/denodeify +// Definitions by: joaomoreno +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module "denodeify" { + function _(fn: _.F0, transformer?: _.M): () => Promise; + function _(fn: _.F1, transformer?: _.M): (a:A) => Promise; + function _(fn: _.F2, transformer?: _.M): (a:A, b:B) => Promise; + function _(fn: _.F3, transformer?: _.M): (a:A, b:B, c:C) => Promise; + function _(fn: _.F4, transformer?: _.M): (a:A, b:B, c:C, d:D) => Promise; + function _(fn: _.F5, transformer?: _.M): (a:A, b:B, c:C, d:D, e:E) => Promise; + function _(fn: _.F6, transformer?: _.M): (a:A, b:B, c:C, d:D, e:E, f:F) => Promise; + function _(fn: _.F7, transformer?: _.M): (a:A, b:B, c:C, d:D, e:E, f:F, g:G) => Promise; + function _(fn: _.F8, transformer?: _.M): (a:A, b:B, c:C, d:D, e:E, f:F, g:G, h:H) => Promise; + function _(fn: _.F, transformer?: _.M): (...args: any[]) => Promise; + + module _ { + type Callback = (err: Error, result: R) => any; + type F0 = (cb: Callback) => any; + type F1 = (a:A, cb: Callback) => any; + type F2 = (a:A, b:B, cb: Callback) => any; + type F3 = (a:A, b:B, c:C, cb: Callback) => any; + type F4 = (a:A, b:B, c:C, d:D, cb: Callback) => any; + type F5 = (a:A, b:B, c:C, d:D, e:E, cb: Callback) => any; + type F6 = (a:A, b:B, c:C, d:D, e:E, f:F, cb: Callback) => any; + type F7 = (a:A, b:B, c:C, d:D, e:E, f:F, g:G, cb: Callback) => any; + type F8 = (a:A, b:B, c:C, d:D, e:E, f:F, g:G, h:H, cb: Callback) => any; + type F = (...args: any[]) => any; + type M = (err: Error, ...args: any[]) => any[]; + } + + export = _; +} \ No newline at end of file