[p-timeout] introduce typings (#18480)

This commit is contained in:
Dimitri Benin
2017-07-29 00:48:21 +02:00
committed by Andy
parent 1a93d8e6a8
commit c698079f5a
4 changed files with 68 additions and 0 deletions

16
types/p-timeout/index.d.ts vendored Normal file
View File

@@ -0,0 +1,16 @@
// Type definitions for p-timeout 1.2
// Project: https://github.com/sindresorhus/p-timeout#readme
// Definitions by: BendingBender <https://github.com/BendingBender>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
export = pTimeout;
declare function pTimeout<T>(input: Promise<T>, ms: number, message?: string | pTimeout.TimeoutError): Promise<T>;
declare function pTimeout<T, R>(input: Promise<T>, ms: number, fallback: () => R | Promise<R>): Promise<T | R>;
declare namespace pTimeout {
class TimeoutError extends Error {
readonly name: 'TimeoutError';
constructor(message?: string);
}
}

View File

@@ -0,0 +1,29 @@
/// <reference types="node" />
import pTimeout = require('p-timeout');
const delayedPromise: () => Promise<string> = () => new Promise(resolve => setTimeout(() => resolve('foo'), 200));
let str: string;
let num: number;
pTimeout(delayedPromise(), 50).then(() => 'foo');
pTimeout(delayedPromise(), 50, () => {
return pTimeout(delayedPromise(), 300);
});
pTimeout(delayedPromise(), 50).then(res => str = res);
pTimeout(delayedPromise(), 50, 'error').then(res => str = res);
pTimeout(delayedPromise(), 50, new pTimeout.TimeoutError('error')).then(res => str = res);
pTimeout(delayedPromise(), 50, () => Promise.resolve(10)).then(res => {
if (typeof res === 'string') {
str = res;
} else {
num = res;
}
});
pTimeout(delayedPromise(), 50, () => 10).then(res => {
if (typeof res === 'string') {
str = res;
} else {
num = res;
}
});

View File

@@ -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-timeout-tests.ts"
]
}

View File

@@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }