mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-07-01 07:40:10 +00:00
[p-timeout] introduce typings (#18480)
This commit is contained in:
16
types/p-timeout/index.d.ts
vendored
Normal file
16
types/p-timeout/index.d.ts
vendored
Normal 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);
|
||||
}
|
||||
}
|
||||
29
types/p-timeout/p-timeout-tests.ts
Normal file
29
types/p-timeout/p-timeout-tests.ts
Normal 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;
|
||||
}
|
||||
});
|
||||
22
types/p-timeout/tsconfig.json
Normal file
22
types/p-timeout/tsconfig.json
Normal 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"
|
||||
]
|
||||
}
|
||||
1
types/p-timeout/tslint.json
Normal file
1
types/p-timeout/tslint.json
Normal file
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user