Skip to content

Commit

Permalink
feat: pass history
Browse files Browse the repository at this point in the history
  • Loading branch information
JupiterPi committed Nov 25, 2024
1 parent 037fbef commit d917c72
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ Every option is optional.
* `input` Readable stream to get input data from. (default `process.stdin`)
* `output` Writable stream to write prompts to. (default: `process.stdout`)
* `completer` Autocomplete callback (see [official api](https://nodejs.org/api/readline.html#readline_readline_createinterface_options) for details
* `history` History array, which will be appended to.

If silent is true, and the input is a TTY, then read will set raw
mode, and read character by character.
Expand Down
4 changes: 3 additions & 1 deletion src/read.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export interface Options<T extends string | number = string> {
terminal?: boolean
replace?: string,
completer?: Completer | AsyncCompleter,
history?: string[],
}

export async function read<T extends string | number = string> ({
Expand All @@ -29,6 +30,7 @@ export async function read<T extends string | number = string> ({
edit,
terminal,
replace,
history,
}: Options<T>): Promise<T | string> {
if (
typeof def !== 'undefined' &&
Expand Down Expand Up @@ -61,7 +63,7 @@ export async function read<T extends string | number = string> ({
output = m

return new Promise<string | T>((resolve, reject) => {
const rl = createInterface({ input, output, terminal, completer })
const rl = createInterface({ input, output, terminal, completer, history })
// TODO: add tests for timeout
/* c8 ignore start */
const timer = timeout && setTimeout(() => onError(new Error('timed out')), timeout)
Expand Down

0 comments on commit d917c72

Please sign in to comment.