MFDC's own internal REPL command line interface.
This project provides the executable
mrepl which has the following functionality over regular REPL:
Babel pre-compiler (
babelplugin) - All code is automatically compiled via BabelJS before it is run - making things like arrow functions available on older Node releases
lodashplugin) - lodash is provided as
momentplugin) - moment is provided as
Mongoose project support (
mongooseplugin) - If the files
./models/index.jsare found they are loaded in that order (with
./models/index.jsexpected to return an object containing the available compiled schemas. Models are then provided in the
db.users.find()will return all users.
STDIN slurping (
stdinplugin) - Any piped input into the program is provied as the
inputvariable. Automatic decoding of the variable will be attempted by
JSON.parse()otherwise it will be a raw string.
- History saving - History saing is enabled by default
Simply run the following:
sudo npm install -g @momsfriendlydevco/repl
You should now be able to run the REPL interface with:
Plugins are provided in the
plugins/ folder within the main script file.
app argument. Each plugin can decorate the properties of the program and return the callback when finished.
Some usefully exposed properties:
||Object||Complex||The main application object - an instance of a
||Globs to search for plugins|
||Object||Complex||Repl options when creating the interface|
||Any exported globals that should be available inside the REPL session|
||Array of evaluation functions to run. Each Eval is run as a compose pipeline with the final output being returned to the REPL session|
||Number||2||How deeply to examine objects when printing results to the console|
||Whether colors are enabled when printing results to the console|