Load history into node repl
const replHistory = require('repl-story');
const replServer = replHistory('~/.my.wonderful.cli');
// play around in repl
// you can consult history using command .history
replHistory
supports differents signatures:
replHistory(repl|replServer, filename); // original signature similar to repl.history
replHistory(filename, [repl|replServer]);
replHistory(options);
replHistory(filename, options);
// -> REPLServer
Here are the different possible params:
-
filename
orhistoryFile
: the path toward the history file.filename
is mandatory. However you can skip it and provide it via theoptions
argument as thefilename
property (you can also use the aliashistoryFile
). -
replServer
orrepl
: either therepl
module, or aReplServer
. [default therequire('repl')
builtin library] -
an
options
object, this give you better control overrepl
andrepl-story
configuration. This is a plain old js object that support the following propertiesfilename
orhistoryFile
: if not provided as leading argument, you can embed the file configuration into the option object.replServer
orrepl
: either therepl
module, or aReplServer
. [default therequire('repl')
builtin library]create
ornoCreate
: whether history file should be created if missing [default:create=true
]record
ornoRecord
: 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 aReplServer
instance, such as:prompt
: optional prompt to use [default'> '
]input
: Readable stream to read from [default'process.stdin
]output
: Readable stream to write to [defaultprocess.stdout
]- any other option
repl.start()
supports likeeval
,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.
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, // load history but do no record it. (equivalent to 'noRecord: true')
noCreate: true, // disable creation if missing. (equivalent to 'create: false')
prompt: ':> ' // options are forwarded to repl.start() if no provided replServer
});
This started as the adaptation of repl.history to current node Apis.
And why story? repl-history
was already taken 😉