Installing dependencies.
This commit is contained in:
+172
@@ -0,0 +1,172 @@
|
||||
/// <reference types="node"/>
|
||||
|
||||
declare namespace hookStd {
|
||||
/**
|
||||
`unhook()` method which, when called, unhooks from a stream and resolves the Promise.
|
||||
*/
|
||||
type Unhook = () => void;
|
||||
|
||||
/**
|
||||
@param output - String from stream output.
|
||||
@param unhook - Method which, when called, unhooks from stream.
|
||||
@returns A Buffer or string to modify the value in the stream.
|
||||
*/
|
||||
type Transform = (
|
||||
output: string,
|
||||
unhook: Unhook
|
||||
) => Buffer | string | void;
|
||||
|
||||
/**
|
||||
@param output - String from stream output.
|
||||
@param unhook - Method which, when called, unhooks from stream.
|
||||
@returns A boolean to influence the return value of `.write(…)`.
|
||||
*/
|
||||
type SilentTransform = (
|
||||
output: string,
|
||||
unhook: Unhook
|
||||
) => boolean | void;
|
||||
|
||||
interface Options {
|
||||
/**
|
||||
Automatically unhooks after the first call.
|
||||
|
||||
@default false
|
||||
*/
|
||||
readonly once?: boolean;
|
||||
|
||||
/**
|
||||
Suppress stdout/stderr output.
|
||||
|
||||
@default true
|
||||
*/
|
||||
readonly silent?: boolean;
|
||||
}
|
||||
|
||||
interface StreamsOptions extends Options {
|
||||
/**
|
||||
Writable streams to hook. This can be useful for libraries allowing users to configure a Writable Stream to write to.
|
||||
|
||||
@default [process.stdout, process.stderr]
|
||||
*/
|
||||
readonly streams?: NodeJS.WritableStream[];
|
||||
}
|
||||
|
||||
interface SilentFalseOptions extends Options {
|
||||
/**
|
||||
Suppress stdout/stderr output.
|
||||
|
||||
@default true
|
||||
*/
|
||||
readonly silent: false;
|
||||
}
|
||||
|
||||
interface SilentTrueOptions extends Options {
|
||||
/**
|
||||
Suppress stdout/stderr output.
|
||||
|
||||
@default true
|
||||
*/
|
||||
readonly silent?: true;
|
||||
}
|
||||
|
||||
interface StreamsSilentFalseOptions extends StreamsOptions {
|
||||
/**
|
||||
Suppress stdout/stderr output.
|
||||
|
||||
@default true
|
||||
*/
|
||||
readonly silent: false;
|
||||
}
|
||||
|
||||
interface StreamsSilentTrueOptions extends StreamsOptions {
|
||||
/**
|
||||
Suppress stdout/stderr output.
|
||||
|
||||
@default true
|
||||
*/
|
||||
readonly silent?: true;
|
||||
}
|
||||
|
||||
/**
|
||||
Promise with a `unhook()` method which, when called, resolves the Promise with an empty result.
|
||||
*/
|
||||
interface HookPromise extends Promise<void> {
|
||||
unhook: Unhook;
|
||||
}
|
||||
}
|
||||
|
||||
declare const hookStd: {
|
||||
/**
|
||||
Hooks streams in options or stdout & stderr if none are specified.
|
||||
|
||||
@returns A `Promise` with a `unhook()` method which, when called, unhooks the streams and resolves the `Promise`.
|
||||
*/
|
||||
(transform: hookStd.SilentTransform): hookStd.HookPromise;
|
||||
(
|
||||
options: hookStd.StreamsSilentFalseOptions,
|
||||
transform: hookStd.Transform
|
||||
): hookStd.HookPromise;
|
||||
(
|
||||
options: hookStd.StreamsSilentTrueOptions,
|
||||
transform: hookStd.SilentTransform
|
||||
): hookStd.HookPromise;
|
||||
|
||||
/**
|
||||
Hooks stdout.
|
||||
|
||||
@returns A `Promise` with a `unhook()` method which, when called, unhooks the streams and resolves the `Promise`.
|
||||
|
||||
@example
|
||||
```
|
||||
import * as assert from 'assert';
|
||||
import hookStd = require('hook-std');
|
||||
|
||||
(async () => {
|
||||
const promise = hookStd.stdout(output => {
|
||||
promise.unhook();
|
||||
assert.strictEqual(output.trim(), 'unicorn');
|
||||
});
|
||||
|
||||
console.log('unicorn');
|
||||
await promise;
|
||||
})();
|
||||
|
||||
// You can also unhook using the second `transform` method parameter:
|
||||
(async () => {
|
||||
const promise = hookStd.stdout((output, unhook) => {
|
||||
unhook();
|
||||
assert.strictEqual(output.trim(), 'unicorn');
|
||||
});
|
||||
|
||||
console.log('unicorn');
|
||||
await promise;
|
||||
})();
|
||||
```
|
||||
*/
|
||||
stdout(transform: hookStd.SilentTransform): hookStd.HookPromise;
|
||||
stdout(
|
||||
options: hookStd.SilentFalseOptions,
|
||||
transform: hookStd.Transform
|
||||
): hookStd.HookPromise;
|
||||
stdout(
|
||||
options: hookStd.SilentTrueOptions,
|
||||
transform: hookStd.SilentTransform
|
||||
): hookStd.HookPromise;
|
||||
|
||||
/**
|
||||
Hooks stderr.
|
||||
|
||||
@returns A `Promise` with a `unhook()` method which, when called, unhooks the streams and resolves the `Promise`.
|
||||
*/
|
||||
stderr(transform: hookStd.SilentTransform): hookStd.HookPromise;
|
||||
stderr(
|
||||
options: hookStd.SilentFalseOptions,
|
||||
transform: hookStd.Transform
|
||||
): hookStd.HookPromise;
|
||||
stderr(
|
||||
options: hookStd.SilentTrueOptions,
|
||||
transform: hookStd.SilentTransform
|
||||
): hookStd.HookPromise;
|
||||
};
|
||||
|
||||
export = hookStd;
|
||||
Reference in New Issue
Block a user