sushi v4.1.11
sushi
Express-like framework for CLI apps.
Installation
$ npm install sushi --saveUsage
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 commandGetting 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 delayYou 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 helloMiddleware
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 testLicense
MIT © Vadym Demedes
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
10 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
12 years ago