Merge pull request #8477 from SamVerschueren/pify

add pify
This commit is contained in:
Masahiro Wakame
2016-03-12 00:59:19 +09:00
2 changed files with 52 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
/// <reference path="pify.d.ts" />
/// <reference path="../bluebird/bluebird.d.ts" />
import * as pify from 'pify';
import * as Bluebird from 'bluebird';
function assert(actual: string, expected: string): void {
if (actual !== expected) {
throw new Error(`${JSON.stringify(actual)} !== ${JSON.stringify(expected)}`);
}
}
const fs = {
readFile: (file: string, callback: Function) => {
let result: any = undefined;
if (file === 'foo.txt') {
result = 'foo';
} else if (file === 'bar.txt') {
result = 'bar';
}
callback(undefined, result);
}
};
const fsP = pify(fs);
fsP.readFile('foo.txt').then((result: string) => assert(result, 'foo'));
pify(fs.readFile)('foo.txt').then((result: string) => assert(result, 'foo'));
pify(fs.readFile, Bluebird)('bar.txt').then((result: string) => assert(result, 'bar'));
+21
View File
@@ -0,0 +1,21 @@
// Type definitions for pify
// Project: https://github.com/sindresorhus/pify
// Definitions by: Sam Verschueren <https://github.com/samverschueren>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module "pify" {
interface PifyOptions {
multiArgs?: boolean,
include?: [string | RegExp],
exclude?: [string | RegExp],
excludeMain?: boolean
}
function pify(input: Function, promiseModule?: Function, options?: PifyOptions): (...args:any[]) => Promise<any>;
function pify(input: any, promiseModule?: Function, options?: PifyOptions): any;
function pify(input: Function, options?: PifyOptions): (...args:any[]) => Promise<any>;
function pify(input: any, options?: PifyOptions): any;
namespace pify {}
export = pify;
}