mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 10:56:53 +00:00
[retry-as-promised] add type definitions
This commit is contained in:
parent
8ceee56cb9
commit
fb0f3f789f
27
types/retry-as-promised/index.d.ts
vendored
Normal file
27
types/retry-as-promised/index.d.ts
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
// Type definitions for retry-as-promised 2.3
|
||||
// Project: https://github.com/mickhansen/retry-as-promised
|
||||
// Definitions by: Florian Oellerich <https://github.com/Raigen>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.3
|
||||
|
||||
import Promise = require('bluebird');
|
||||
|
||||
declare namespace retryAsPromised {
|
||||
type MatchOption = string | RegExp | Error;
|
||||
interface Options {
|
||||
$current?: number;
|
||||
max?: number;
|
||||
timeout?: number;
|
||||
match?: MatchOption[] | MatchOption;
|
||||
backoffBase?: number;
|
||||
backoffExponent?: number;
|
||||
report?: (message: string, obj: Options, err?: any) => void;
|
||||
name?: string;
|
||||
}
|
||||
|
||||
type RetryCallback<T> = ({ current }: { current: Options['$current'] }) => Promise.Thenable<T>;
|
||||
type RetryAsPromisedStatic = <T = any>(callback: RetryCallback<T>, options: Options | number) => Promise<T>;
|
||||
}
|
||||
|
||||
declare const retryAsPromised: retryAsPromised.RetryAsPromisedStatic;
|
||||
export = retryAsPromised;
|
||||
27
types/retry-as-promised/retry-as-promised-tests.ts
Normal file
27
types/retry-as-promised/retry-as-promised-tests.ts
Normal file
@ -0,0 +1,27 @@
|
||||
import retry = require('retry-as-promised');
|
||||
|
||||
interface Product {
|
||||
name: string;
|
||||
}
|
||||
|
||||
const log = (...args: any[]): void => {};
|
||||
|
||||
retry(() => Promise.resolve(), {});
|
||||
retry(() => Promise.reject('Error matching values'), {});
|
||||
retry(() => Promise.reject(new Error('No matching values')), {});
|
||||
retry(() => Promise.resolve(), {
|
||||
max: 100,
|
||||
timeout: 60000,
|
||||
match: ['Error matching values', new Error('No matching values'), new RegExp(/Deadlock/, 'i')],
|
||||
backoffBase: 100,
|
||||
backoffExponent: 1.1,
|
||||
name: 'Source',
|
||||
report: (message, options) => {
|
||||
if (options.name === 'Source') {
|
||||
log(options.name);
|
||||
log('iteration', options.$current);
|
||||
}
|
||||
}
|
||||
});
|
||||
retry<Product>(() => Promise.resolve({ name: 'test' }) , {});
|
||||
retry<Product>(() => Promise.reject(new Error('No matching product')), {});
|
||||
24
types/retry-as-promised/tsconfig.json
Normal file
24
types/retry-as-promised/tsconfig.json
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"esModuleInterop": true,
|
||||
"strictFunctionTypes": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"retry-as-promised-tests.ts"
|
||||
]
|
||||
}
|
||||
3
types/retry-as-promised/tslint.json
Normal file
3
types/retry-as-promised/tslint.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "dtslint/dt.json"
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user