2.1.2 • Published 8 years ago
@momsfriendlydevco/repl v2.1.2
MFDC-REPL
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
- Lodash (lodashplugin) - lodash is provided aslodash,land__
- Moment (momentplugin) - moment is provided asmoment
- Mongoose project support (mongooseplugin) - If the files./config/index.js,./config/db.jsand./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 thedbobject. e.g.db.users.find()will return all users.
- STDIN slurping (stdinplugin) - Any piped input into the program is provied as theinputvariable. Automatic decoding of the variable will be attempted byJSON.parse()otherwise it will be a raw string.
- History saving - History saing is enabled by default
Installation
Simply run the following:
sudo npm install -g @momsfriendlydevco/replYou should now be able to run the REPL interface with:
mreplPlugins
Plugins are provided in the plugins/ folder within the main script file.
Each plugin is a simple JavaScript file which is expected to expose a function taking a callback and the main app argument. Each plugin can decorate the properties of the program and return the callback when finished.
Some usefully exposed properties:
| Property path | Type | Default | Description | 
|---|---|---|---|
| app | Object | Complex | The main application object - an instance of a commanderdefinition | 
| app.verbose | Number | 0 | Verbosity level | 
| app.plugin | Array | ['./plugins'] | Globs to search for plugins | 
| app.repl | Object | Complex | Repl options when creating the interface | 
| app.repl.globals | Object | {} | Any exported globals that should be available inside the REPL session | 
| app.repl.eval | Array | [] | Array of evaluation functions to run. Each Eval is run as a compose pipeline with the final output being returned to the REPL session | 
| inspect.depth | Number | 2 | How deeply to examine objects when printing results to the console | 
| inspect.colors | Boolean | true | Whether colors are enabled when printing results to the console |