diff --git a/types/p-reflect/index.d.ts b/types/p-reflect/index.d.ts new file mode 100644 index 0000000000..e3f12f2a77 --- /dev/null +++ b/types/p-reflect/index.d.ts @@ -0,0 +1,24 @@ +// Type definitions for p-reflect 1.0 +// Project: https://github.com/sindresorhus/p-reflect#readme +// Definitions by: BendingBender +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export = pReflect; + +declare function pReflect(promise: PromiseLike): Promise>; + +declare namespace pReflect { + type PromiseResult = PromiseFulfilledResult | PromiseRejectedResult; + + interface PromiseFulfilledResult { + isFulfilled: true; + isRejected: false; + value: T; + } + + interface PromiseRejectedResult { + isFulfilled: false; + isRejected: true; + reason: any; + } +} diff --git a/types/p-reflect/p-reflect-tests.ts b/types/p-reflect/p-reflect-tests.ts new file mode 100644 index 0000000000..506c275fd0 --- /dev/null +++ b/types/p-reflect/p-reflect-tests.ts @@ -0,0 +1,15 @@ +import pReflect = require('p-reflect'); + +pReflect(Promise.resolve('foo')).then(result => { + if (result.isFulfilled) { + const fulfilled: true = result.isFulfilled; + const rejected: false = result.isRejected; + const str: string = result.value; + result.reason; // $ExpectError + } else { + const fulfilled: false = result.isFulfilled; + const rejected: true = result.isRejected; + const err: any = result.reason; + result.value; // $ExpectError + } +}); diff --git a/types/p-reflect/tsconfig.json b/types/p-reflect/tsconfig.json new file mode 100644 index 0000000000..7403f4a2ac --- /dev/null +++ b/types/p-reflect/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", + "p-reflect-tests.ts" + ] +} diff --git a/types/p-reflect/tslint.json b/types/p-reflect/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/p-reflect/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }