curcuit-breaker-js: introduce @types/curcuit-breaker-js

This commit is contained in:
Timur Amirov 2018-03-27 22:20:29 +02:00
parent 10148d8d11
commit 7c9424cf24
4 changed files with 74 additions and 0 deletions

View File

@ -0,0 +1,12 @@
import CircuitBreaker = require('circuit-breaker-js');
const breaker = new CircuitBreaker();
breaker.isOpen();
const options: CircuitBreaker.Options = {};
let status: number = CircuitBreaker.CLOSED;
status = CircuitBreaker.OPEN;
breaker.forceOpen();
breaker.forceClose();

38
types/circuit-breaker-js/index.d.ts vendored Normal file
View File

@ -0,0 +1,38 @@
// Type definitions for circuit-breaker-js 0.0
// Project: http://yammer.github.io/circuit-breaker-js/
// Definitions by: Timur Amirov <https://github.com/DeTeam>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
export = CircuitBreaker;
declare namespace CircuitBreaker {
interface Options {
windowDuration?: number;
numBuckets?: number;
timeoutDuration?: number;
errorThreshold?: number;
volumeThreshold?: number;
onCircuitOpen?: (m: Metrics) => void;
onCircuitClose?: (m: Metrics) => void;
}
interface Metrics {
totalCount: number;
errorCount: number;
errorPercentage: number;
}
}
declare class CircuitBreaker {
static OPEN: 0;
static HALF_OPEN: 1;
static CLOSED: 2;
constructor(options?: CircuitBreaker.Options);
run(command: () => void, fallback?: () => void): void;
forceClose(): void;
forceOpen(): void;
unforce(): void;
isOpen(): boolean;
}

View File

@ -0,0 +1,23 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"circuit-breaker-js-tests.ts"
]
}

View File

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