diff --git a/types/signal-exit/index.d.ts b/types/signal-exit/index.d.ts new file mode 100644 index 0000000000..6bddbfc82c --- /dev/null +++ b/types/signal-exit/index.d.ts @@ -0,0 +1,24 @@ +// Type definitions for signal-exit 3.0 +// Project: https://github.com/tapjs/signal-exit +// Definitions by: BendingBender +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.1 + +export = signalExit; + +declare function signalExit( + callback: (code: number | null, signal: signalExit.Signal | null) => void, + options?: signalExit.Options +): () => void; + +declare namespace signalExit { + function load(): void; + function unload(): void; + function signals(): Signal[]; + + type Signal = 'SIGABRT' | 'SIGALRM' | 'SIGHUP' | 'SIGINT' | 'SIGTERM' | string; + + interface Options { + alwaysLast?: boolean; + } +} diff --git a/types/signal-exit/signal-exit-tests.ts b/types/signal-exit/signal-exit-tests.ts new file mode 100644 index 0000000000..5dd5947812 --- /dev/null +++ b/types/signal-exit/signal-exit-tests.ts @@ -0,0 +1,20 @@ +import onExit = require('signal-exit'); + +// $ExpectType () => void +onExit((code, signal) => { + code; // $ExpectType number | null + signal; // $ExpectType string | null +}); +const detach = onExit( + (code, signal) => { + code; // $ExpectType number | null + signal; // $ExpectType string | null + }, + { alwaysLast: true } +); + +detach(); + +onExit.unload(); +onExit.load(); +onExit.signals(); // $ExpectType string[] diff --git a/types/signal-exit/tsconfig.json b/types/signal-exit/tsconfig.json new file mode 100644 index 0000000000..7b912b51e6 --- /dev/null +++ b/types/signal-exit/tsconfig.json @@ -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", + "signal-exit-tests.ts" + ] +} diff --git a/types/signal-exit/tslint.json b/types/signal-exit/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/signal-exit/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }