sushi v4.1.11
sushi
Express-like framework for CLI apps.
Installation
$ npm install sushi --save
Usage
myapp.js:
const sushi = require('sushi');
const app = sushi();
app.command('start', function () {
console.log('start command');
});
app.command('stop', function () {
console.log('stop command');
});
app.command('index', function () {
console.log('index command');
});
app.run();
Output:
$ node myapp.js start
start command
$ node myapp.js stop
stop command
$ node myapp.js
index command
Getting Started
Arguments
Program arguments are parsed using minimist.
Command can access arguments via req.args
:
app.command('start', function (req) {
var name = req.args._[0];
var delay = req.args.delay;
console.log('start', name, 'with', delay, 'delay');
});
$ node myapp.js start my-process --delay 500ms
start my-process with 500ms delay
You can also customize the way minimist
parses arguments by passing args
options (see minimist):
const app = sushi({
args: {
boolean: ['verbose']
}
});
Index command
Index command is executed when other commands don't match the arguments:
app.command('index', function () {
console.log('index command');
});
$ node myapp.js
index command
$ node myapp.js hello
Middleware
Middleware is a function, that modifies the context or arguments before target command is executed.
app.use(function (req, next) {
req.context.ok = true;
// call `next()` when done
next();
});
app.command('start', function (req) {
req.context.ok === true; // true
console.log('start command');
});
Middleware can also abort execution:
app.use(function (req, next) {
var err = new Error('Fatal error');
next(err);
});
app.command('start', function (req) {
// won't be executed
});
app.on('error', function (err) {
// err is the Error instance from middleware
err.message === 'Fatal error'; // true
});
Error handling
When one of the middleware or command itself throws an error,
error
event is emitted:
app.on('error', function (err) {
// err is the Error instance
});
You can use it to display a friendly error message, report it, etc.
List of middleware
Here's the list of middleware you can use with Sushi:
- help - help messages
Tests
$ npm test
License
MIT © Vadym Demedes
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
9 months ago
9 months ago
10 months ago
10 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
12 months ago
2 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
11 years ago
11 years ago