repl-story
Load history into node repl
Basic Usage
const replHistory = require('repl-story');
const replServer = replHistory('~/.my.wonderful.cli');
Api
replHistory
supports differents signatures:
replHistory(repl|replServer, filename);
replHistory(filename, [repl|replServer]);
replHistory(options);
replHistory(filename, options);
Here are the different possible params:
-
filename
or historyFile
: the path toward the history file. filename
is mandatory.
However you can skip it and provide it via the options
argument as the filename
property (you can also use the alias historyFile
).
-
replServer
or repl
: either the repl
module, or a ReplServer
. [default the require('repl')
builtin library]
-
an options
object, this give you better control over repl
and repl-story
configuration.
This is a plain old js object that support the following properties
filename
or historyFile
: if not provided as leading argument, you can embed the file configuration into the option object.replServer
or repl
: either the repl
module, or a ReplServer
. [default the require('repl')
builtin library]create
or noCreate
: whether history file should be created if missing [default: create=true
]record
or noRecord
: whether new history should be recorded [default: record=true
]ignore
: an array of values that should not be recorded into history- any other options supported by
repl.start()
if you did not provided a ReplServer
instance, such as:
prompt
: optional prompt to use [default '> '
]input
: Readable stream to read from [default 'process.stdin
]output
: Readable stream to write to [default process.stdout
]- any other option
repl.start()
supports like eval
, writer
, completer
, useColors
; terminal
replMode
replHistory()
return the REPLServer
instance you provided, or otherwise the one it started.
Note: replHistory instrument the repl server so that when it closes the history file is closed properly.
If you want for this to be complete, you can listen the end-of-story
event on the replServer itself.
'Complex' Example
Here is an example to illustrate how to configure repl-story
:
const repl = require('repl');
const replHistory = require('repl-story');
const replServer = replHistory({
repl,
filename: '~/.my.cli',
record: false,
noCreate: true,
prompt: ':> '
});
Acknowledgment
This started as the adaptation of repl.history to current node Apis.
And why story? repl-history
was already taken :wink: