mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-07-02 08:10:05 +00:00
Improves node 'repl' types
This commit is contained in:
121
types/node/index.d.ts
vendored
121
types/node/index.d.ts
vendored
@@ -1991,31 +1991,122 @@ declare module "punycode" {
|
||||
}
|
||||
|
||||
declare module "repl" {
|
||||
import * as stream from "stream";
|
||||
import * as readline from "readline";
|
||||
import { ReadLine, Completer, AsyncCompleter } from "readline";
|
||||
import { Context } from "vm";
|
||||
|
||||
interface ReplOptions {
|
||||
/**
|
||||
* The input prompt to display.
|
||||
* Default: `"> "`
|
||||
*/
|
||||
prompt?: string;
|
||||
/**
|
||||
* The `Readable` stream from which REPL input will be read.
|
||||
* Default: `process.stdin`
|
||||
*/
|
||||
input?: NodeJS.ReadableStream;
|
||||
/**
|
||||
* The `Writable` stream to which REPL output will be written.
|
||||
* Default: `process.stdout`
|
||||
*/
|
||||
output?: NodeJS.WritableStream;
|
||||
/**
|
||||
* If `true`, specifies that the output should be treated as a TTY terminal, and have
|
||||
* ANSI/VT100 escape codes written to it.
|
||||
* Default: checking the value of the `isTTY` property on the output stream upon instantiation.
|
||||
*/
|
||||
terminal?: boolean;
|
||||
eval?: Function;
|
||||
/**
|
||||
* The function to be used when evaluating each given line of input.
|
||||
* Default: an async wrapper for the JavaScript `eval()` function. An `eval` function can
|
||||
* error with `repl.Recoverable` to indicate the input was incomplete and prompt for
|
||||
* additional lines.
|
||||
*/
|
||||
eval?: (evalCmd: string, context: Context, file: string, cb: (err: Error | null, result: any) => void) => void;
|
||||
/**
|
||||
* If `true`, specifies that the default `writer` function should include ANSI color
|
||||
* styling to REPL output. If a custom `writer` function is provided then this has no
|
||||
* effect.
|
||||
* Default: the REPL instance's `terminal` value.
|
||||
*/
|
||||
useColors?: boolean;
|
||||
/**
|
||||
* If `true`, specifies that the default evaluation function will use the JavaScript
|
||||
* `global` as the context as opposed to creating a new separate context for the REPL
|
||||
* instance. The node CLI REPL sets this value to `true`.
|
||||
* Default: `false`.
|
||||
*/
|
||||
useGlobal?: boolean;
|
||||
/**
|
||||
* If `true`, specifies that the default writer will not output the return value of a
|
||||
* command if it evaluates to `undefined`.
|
||||
* Default: `false`.
|
||||
*/
|
||||
ignoreUndefined?: boolean;
|
||||
writer?: Function;
|
||||
completer?: Function;
|
||||
/**
|
||||
* The function to invoke to format the output of each command before writing to `output`.
|
||||
* Default: `util.inspect()`.
|
||||
*/
|
||||
writer?: (obj: any) => string;
|
||||
/**
|
||||
* An optional function used for custom Tab auto completion. See
|
||||
* [`readline.InterfaceCompleter`](https://nodejs.org/dist/latest-v11.x/docs/api/readline.html#readline_use_of_the_completer_function)
|
||||
* for an example.
|
||||
*/
|
||||
completer?: Completer | AsyncCompleter;
|
||||
replMode?: any;
|
||||
breakEvalOnSigint?: any;
|
||||
/**
|
||||
* Stop evaluating the current piece of code when `SIGINT` is received, i.e. `Ctrl+C` is
|
||||
* pressed. This cannot be used together with a custom `eval` function.
|
||||
* Default: `false`.
|
||||
*/
|
||||
breakEvalOnSigint?: boolean;
|
||||
}
|
||||
|
||||
interface REPLServer extends readline.ReadLine {
|
||||
context: any;
|
||||
interface REPLCommand {
|
||||
/**
|
||||
* Help text to be displayed when `.help` is entered.
|
||||
*/
|
||||
help?: string;
|
||||
/**
|
||||
* The function to execute, optionally accepting a single string argument.
|
||||
*/
|
||||
action: (this: REPLServer, text: string) => void;
|
||||
}
|
||||
|
||||
interface REPLServer extends ReadLine {
|
||||
context: Context;
|
||||
inputStream: NodeJS.ReadableStream;
|
||||
outputStream: NodeJS.WritableStream;
|
||||
|
||||
defineCommand(keyword: string, cmd: Function | { help: string, action: Function }): void;
|
||||
/**
|
||||
* Used to add new `.`-prefixed commands to the REPL instance. Such commands are invoked
|
||||
* by typing a `.` followed by the `keyword`.
|
||||
* @param keyword The command keyword (_without_ a leading `.` character).
|
||||
* @param cmd The function to invoke when the command is processed.
|
||||
*/
|
||||
defineCommand(keyword: string, cmd: ((this: REPLServer, text: string) => void) | REPLCommand): void;
|
||||
/**
|
||||
* Readies the REPL instance for input from the user, printing the configured `prompt` to a
|
||||
* new line in the `output` and resuming the `input` to accept new input.
|
||||
*
|
||||
* When multi-line input is being entered, an ellipsis is printed rather than the 'prompt'.
|
||||
*
|
||||
* This method is primarily intended to be called from within the action function for
|
||||
* commands registered using the `replServer.defineCommand()` method.
|
||||
*
|
||||
* @param preserveCursor When `true`, the cursor placement will not be reset to `0`.
|
||||
*/
|
||||
displayPrompt(preserveCursor?: boolean): void;
|
||||
/**
|
||||
* Clears any command that has been buffered but not yet executed.
|
||||
*
|
||||
* This method is primarily intended to be called from within the action function for
|
||||
* commands registered using the `replServer.defineCommand()` method.
|
||||
*
|
||||
* @since v9.0.0
|
||||
*/
|
||||
clearBufferedCommand(): void;
|
||||
|
||||
/**
|
||||
* events.EventEmitter
|
||||
@@ -2025,27 +2116,27 @@ declare module "repl" {
|
||||
|
||||
addListener(event: string, listener: (...args: any[]) => void): this;
|
||||
addListener(event: "exit", listener: () => void): this;
|
||||
addListener(event: "reset", listener: (...args: any[]) => void): this;
|
||||
addListener(event: "reset", listener: (context: Context) => void): this;
|
||||
|
||||
emit(event: string | symbol, ...args: any[]): boolean;
|
||||
emit(event: "exit"): boolean;
|
||||
emit(event: "reset", context: any): boolean;
|
||||
emit(event: "reset", context: Context): boolean;
|
||||
|
||||
on(event: string, listener: (...args: any[]) => void): this;
|
||||
on(event: "exit", listener: () => void): this;
|
||||
on(event: "reset", listener: (...args: any[]) => void): this;
|
||||
on(event: "reset", listener: (context: Context) => void): this;
|
||||
|
||||
once(event: string, listener: (...args: any[]) => void): this;
|
||||
once(event: "exit", listener: () => void): this;
|
||||
once(event: "reset", listener: (...args: any[]) => void): this;
|
||||
once(event: "reset", listener: (context: Context) => void): this;
|
||||
|
||||
prependListener(event: string, listener: (...args: any[]) => void): this;
|
||||
prependListener(event: "exit", listener: () => void): this;
|
||||
prependListener(event: "reset", listener: (...args: any[]) => void): this;
|
||||
prependListener(event: "reset", listener: (context: Context) => void): this;
|
||||
|
||||
prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
||||
prependOnceListener(event: "exit", listener: () => void): this;
|
||||
prependOnceListener(event: "reset", listener: (...args: any[]) => void): this;
|
||||
prependOnceListener(event: "reset", listener: (context: Context) => void): this;
|
||||
}
|
||||
|
||||
function start(options?: string | ReplOptions): REPLServer;
|
||||
|
||||
@@ -3618,7 +3618,7 @@ import * as p from "process";
|
||||
{
|
||||
let _server: repl.REPLServer;
|
||||
let _boolean: boolean;
|
||||
const _ctx: any = 1;
|
||||
const _ctx: vm.Context = {};
|
||||
|
||||
_server = _server.addListener("exit", () => { });
|
||||
_server = _server.addListener("reset", () => { });
|
||||
@@ -3641,6 +3641,21 @@ import * as p from "process";
|
||||
_server.outputStream.write("test");
|
||||
const line = _server.inputStream.read();
|
||||
|
||||
_server.clearBufferedCommand();
|
||||
_server.displayPrompt();
|
||||
_server.displayPrompt(true);
|
||||
_server.defineCommand("cmd", text => {
|
||||
// $ExpectType string
|
||||
text;
|
||||
});
|
||||
_server.defineCommand("cmd", {
|
||||
help: "",
|
||||
action: text => {
|
||||
// $ExpectType string
|
||||
text;
|
||||
}
|
||||
});
|
||||
|
||||
function test() {
|
||||
throw new repl.Recoverable(new Error("test"));
|
||||
}
|
||||
|
||||
127
types/node/v9/index.d.ts
vendored
127
types/node/v9/index.d.ts
vendored
@@ -1881,31 +1881,122 @@ declare module "punycode" {
|
||||
}
|
||||
|
||||
declare module "repl" {
|
||||
import * as stream from "stream";
|
||||
import * as readline from "readline";
|
||||
import { ReadLine, Completer, AsyncCompleter } from "readline";
|
||||
import { Context } from "vm";
|
||||
|
||||
export interface ReplOptions {
|
||||
interface ReplOptions {
|
||||
/**
|
||||
* The input prompt to display.
|
||||
* Default: `"> "`
|
||||
*/
|
||||
prompt?: string;
|
||||
/**
|
||||
* The `Readable` stream from which REPL input will be read.
|
||||
* Default: `process.stdin`
|
||||
*/
|
||||
input?: NodeJS.ReadableStream;
|
||||
/**
|
||||
* The `Writable` stream to which REPL output will be written.
|
||||
* Default: `process.stdout`
|
||||
*/
|
||||
output?: NodeJS.WritableStream;
|
||||
/**
|
||||
* If `true`, specifies that the output should be treated as a TTY terminal, and have
|
||||
* ANSI/VT100 escape codes written to it.
|
||||
* Default: checking the value of the `isTTY` property on the output stream upon instantiation.
|
||||
*/
|
||||
terminal?: boolean;
|
||||
eval?: Function;
|
||||
/**
|
||||
* The function to be used when evaluating each given line of input.
|
||||
* Default: an async wrapper for the JavaScript `eval()` function. An `eval` function can
|
||||
* error with `repl.Recoverable` to indicate the input was incomplete and prompt for
|
||||
* additional lines.
|
||||
*/
|
||||
eval?: (evalCmd: string, context: Context, file: string, cb: (err: Error | null, result: any) => void) => void;
|
||||
/**
|
||||
* If `true`, specifies that the default `writer` function should include ANSI color
|
||||
* styling to REPL output. If a custom `writer` function is provided then this has no
|
||||
* effect.
|
||||
* Default: the REPL instance's `terminal` value.
|
||||
*/
|
||||
useColors?: boolean;
|
||||
/**
|
||||
* If `true`, specifies that the default evaluation function will use the JavaScript
|
||||
* `global` as the context as opposed to creating a new separate context for the REPL
|
||||
* instance. The node CLI REPL sets this value to `true`.
|
||||
* Default: `false`.
|
||||
*/
|
||||
useGlobal?: boolean;
|
||||
/**
|
||||
* If `true`, specifies that the default writer will not output the return value of a
|
||||
* command if it evaluates to `undefined`.
|
||||
* Default: `false`.
|
||||
*/
|
||||
ignoreUndefined?: boolean;
|
||||
writer?: Function;
|
||||
completer?: Function;
|
||||
/**
|
||||
* The function to invoke to format the output of each command before writing to `output`.
|
||||
* Default: `util.inspect()`.
|
||||
*/
|
||||
writer?: (obj: any) => string;
|
||||
/**
|
||||
* An optional function used for custom Tab auto completion. See
|
||||
* [`readline.InterfaceCompleter`](https://nodejs.org/dist/latest-v11.x/docs/api/readline.html#readline_use_of_the_completer_function)
|
||||
* for an example.
|
||||
*/
|
||||
completer?: Completer | AsyncCompleter;
|
||||
replMode?: any;
|
||||
breakEvalOnSigint?: any;
|
||||
/**
|
||||
* Stop evaluating the current piece of code when `SIGINT` is received, i.e. `Ctrl+C` is
|
||||
* pressed. This cannot be used together with a custom `eval` function.
|
||||
* Default: `false`.
|
||||
*/
|
||||
breakEvalOnSigint?: boolean;
|
||||
}
|
||||
|
||||
export interface REPLServer extends readline.ReadLine {
|
||||
context: any;
|
||||
interface REPLCommand {
|
||||
/**
|
||||
* Help text to be displayed when `.help` is entered.
|
||||
*/
|
||||
help?: string;
|
||||
/**
|
||||
* The function to execute, optionally accepting a single string argument.
|
||||
*/
|
||||
action: (this: REPLServer, text: string) => void;
|
||||
}
|
||||
|
||||
interface REPLServer extends ReadLine {
|
||||
context: Context;
|
||||
inputStream: NodeJS.ReadableStream;
|
||||
outputStream: NodeJS.WritableStream;
|
||||
|
||||
defineCommand(keyword: string, cmd: Function | { help: string, action: Function }): void;
|
||||
/**
|
||||
* Used to add new `.`-prefixed commands to the REPL instance. Such commands are invoked
|
||||
* by typing a `.` followed by the `keyword`.
|
||||
* @param keyword The command keyword (_without_ a leading `.` character).
|
||||
* @param cmd The function to invoke when the command is processed.
|
||||
*/
|
||||
defineCommand(keyword: string, cmd: ((this: REPLServer, text: string) => void) | REPLCommand): void;
|
||||
/**
|
||||
* Readies the REPL instance for input from the user, printing the configured `prompt` to a
|
||||
* new line in the `output` and resuming the `input` to accept new input.
|
||||
*
|
||||
* When multi-line input is being entered, an ellipsis is printed rather than the 'prompt'.
|
||||
*
|
||||
* This method is primarily intended to be called from within the action function for
|
||||
* commands registered using the `replServer.defineCommand()` method.
|
||||
*
|
||||
* @param preserveCursor When `true`, the cursor placement will not be reset to `0`.
|
||||
*/
|
||||
displayPrompt(preserveCursor?: boolean): void;
|
||||
/**
|
||||
* Clears any command that has been buffered but not yet executed.
|
||||
*
|
||||
* This method is primarily intended to be called from within the action function for
|
||||
* commands registered using the `replServer.defineCommand()` method.
|
||||
*
|
||||
* @since v9.0.0
|
||||
*/
|
||||
clearBufferedCommand(): void;
|
||||
|
||||
/**
|
||||
* events.EventEmitter
|
||||
@@ -1915,32 +2006,32 @@ declare module "repl" {
|
||||
|
||||
addListener(event: string, listener: (...args: any[]) => void): this;
|
||||
addListener(event: "exit", listener: () => void): this;
|
||||
addListener(event: "reset", listener: (...args: any[]) => void): this;
|
||||
addListener(event: "reset", listener: (context: Context) => void): this;
|
||||
|
||||
emit(event: string | symbol, ...args: any[]): boolean;
|
||||
emit(event: "exit"): boolean;
|
||||
emit(event: "reset", context: any): boolean;
|
||||
emit(event: "reset", context: Context): boolean;
|
||||
|
||||
on(event: string, listener: (...args: any[]) => void): this;
|
||||
on(event: "exit", listener: () => void): this;
|
||||
on(event: "reset", listener: (...args: any[]) => void): this;
|
||||
on(event: "reset", listener: (context: Context) => void): this;
|
||||
|
||||
once(event: string, listener: (...args: any[]) => void): this;
|
||||
once(event: "exit", listener: () => void): this;
|
||||
once(event: "reset", listener: (...args: any[]) => void): this;
|
||||
once(event: "reset", listener: (context: Context) => void): this;
|
||||
|
||||
prependListener(event: string, listener: (...args: any[]) => void): this;
|
||||
prependListener(event: "exit", listener: () => void): this;
|
||||
prependListener(event: "reset", listener: (...args: any[]) => void): this;
|
||||
prependListener(event: "reset", listener: (context: Context) => void): this;
|
||||
|
||||
prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
||||
prependOnceListener(event: "exit", listener: () => void): this;
|
||||
prependOnceListener(event: "reset", listener: (...args: any[]) => void): this;
|
||||
prependOnceListener(event: "reset", listener: (context: Context) => void): this;
|
||||
}
|
||||
|
||||
export function start(options?: string | ReplOptions): REPLServer;
|
||||
function start(options?: string | ReplOptions): REPLServer;
|
||||
|
||||
export class Recoverable extends SyntaxError {
|
||||
class Recoverable extends SyntaxError {
|
||||
err: Error;
|
||||
|
||||
constructor(err: Error);
|
||||
|
||||
@@ -3038,7 +3038,7 @@ namespace repl_tests {
|
||||
{
|
||||
let _server: repl.REPLServer;
|
||||
let _boolean: boolean;
|
||||
let _ctx: any;
|
||||
const _ctx: vm.Context = {};
|
||||
|
||||
_server = _server.addListener("exit", () => { });
|
||||
_server = _server.addListener("reset", () => { });
|
||||
@@ -3059,9 +3059,26 @@ namespace repl_tests {
|
||||
_server = _server.prependOnceListener("reset", () => { });
|
||||
|
||||
_server.outputStream.write("test");
|
||||
let line = _server.inputStream.read();
|
||||
const line = _server.inputStream.read();
|
||||
|
||||
throw new repl.Recoverable(new Error("test"));
|
||||
_server.clearBufferedCommand();
|
||||
_server.displayPrompt();
|
||||
_server.displayPrompt(true);
|
||||
_server.defineCommand("cmd", text => {
|
||||
// $ExpectType string
|
||||
text;
|
||||
});
|
||||
_server.defineCommand("cmd", {
|
||||
help: "",
|
||||
action: text => {
|
||||
// $ExpectType string
|
||||
text;
|
||||
}
|
||||
});
|
||||
|
||||
function test() {
|
||||
throw new repl.Recoverable(new Error("test"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user