Add --middlewares option (#343)

* Add --middlewares option

* Support multiple middlewares files
This commit is contained in:
Takahiro Yaota
2016-08-14 12:51:12 +09:00
committed by typicode
parent 6e1c434498
commit e9d1da2ab7
4 changed files with 67 additions and 4 deletions

View File

@ -28,6 +28,10 @@ module.exports = function () {
alias: 'r',
description: 'Path to routes file'
},
middlewares: {
alias: 'm',
description: 'Path to middlewares file'
},
static: {
alias: 's',
description: 'Set static files directory'

View File

@ -34,7 +34,7 @@ function prettyPrint (argv, object, rules) {
console.log()
}
function createApp (source, object, routes, argv) {
function createApp (source, object, routes, middlewares, argv) {
var app = jsonServer.create()
var router = jsonServer.router(
@ -62,6 +62,10 @@ function createApp (source, object, routes, argv) {
app.use(rewriter)
}
if (middlewares) {
app.use(middlewares)
}
if (argv.delay) {
app.use(pause(argv.delay))
}
@ -105,10 +109,19 @@ module.exports = function (argv) {
var routes = JSON.parse(fs.readFileSync(argv.routes))
}
// Load middlewares
if (argv.middlewares) {
if (!Array.isArray(argv.middlewares)) {
argv.middlewares = [argv.middlewares]
}
console.log(chalk.gray(' Loading', argv.middlewares))
var middlewares = argv.middlewares.map(function (m) { return require(path.resolve(m)) })
}
console.log(chalk.gray(' Done'))
// Create app and server
app = createApp(source, data, routes, argv)
app = createApp(source, data, routes, middlewares, argv)
server = app.listen(argv.port, argv.host)
// Enhance with a destroy function