81 lines
1.5 KiB
TypeScript
81 lines
1.5 KiB
TypeScript
|
/// <reference types="node"/>
|
||
|
|
||
|
declare namespace logUpdate {
|
||
|
interface LogUpdate {
|
||
|
/**
|
||
|
Log to `stdout` by overwriting the previous output in the terminal.
|
||
|
|
||
|
@param text - The text to log to `stdout`.
|
||
|
|
||
|
@example
|
||
|
```
|
||
|
import logUpdate = require('log-update');
|
||
|
|
||
|
const frames = ['-', '\\', '|', '/'];
|
||
|
let i = 0;
|
||
|
|
||
|
setInterval(() => {
|
||
|
const frame = frames[i = ++i % frames.length];
|
||
|
|
||
|
logUpdate(
|
||
|
`
|
||
|
♥♥
|
||
|
${frame} unicorns ${frame}
|
||
|
♥♥
|
||
|
`
|
||
|
);
|
||
|
}, 80);
|
||
|
```
|
||
|
*/
|
||
|
(...text: string[]): void;
|
||
|
|
||
|
/**
|
||
|
Clear the logged output.
|
||
|
*/
|
||
|
clear(): void;
|
||
|
|
||
|
/**
|
||
|
Persist the logged output. Useful if you want to start a new log session below the current one.
|
||
|
*/
|
||
|
done(): void;
|
||
|
}
|
||
|
|
||
|
interface Options {
|
||
|
/**
|
||
|
Show the cursor. This can be useful when a CLI accepts input from a user.
|
||
|
|
||
|
@example
|
||
|
```
|
||
|
import logUpdate = require('log-update');
|
||
|
|
||
|
// Write output but don't hide the cursor
|
||
|
const log = logUpdate.create(process.stdout, {
|
||
|
showCursor: true
|
||
|
});
|
||
|
```
|
||
|
*/
|
||
|
readonly showCursor?: boolean;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
declare const logUpdate: logUpdate.LogUpdate & {
|
||
|
/**
|
||
|
Log to `stderr` by overwriting the previous output in the terminal.
|
||
|
|
||
|
@param text - The text to log to `stderr`.
|
||
|
*/
|
||
|
readonly stderr: logUpdate.LogUpdate;
|
||
|
|
||
|
/**
|
||
|
Get a `logUpdate` method that logs to the specified stream.
|
||
|
|
||
|
@param stream - The stream to log to.
|
||
|
*/
|
||
|
readonly create: (
|
||
|
stream: NodeJS.WritableStream,
|
||
|
options?: logUpdate.Options
|
||
|
) => logUpdate.LogUpdate;
|
||
|
};
|
||
|
|
||
|
export = logUpdate;
|