mirror of
https://github.com/typicode/json-server.git
synced 2025-07-30 13:42:11 +08:00
use yargs array for middlewares
This commit is contained in:
@ -30,7 +30,8 @@ module.exports = function () {
|
|||||||
},
|
},
|
||||||
middlewares: {
|
middlewares: {
|
||||||
alias: 'm',
|
alias: 'm',
|
||||||
description: 'Path to middlewares file'
|
array: true,
|
||||||
|
description: 'Paths to middleware files'
|
||||||
},
|
},
|
||||||
static: {
|
static: {
|
||||||
alias: 's',
|
alias: 's',
|
||||||
|
@ -110,14 +110,15 @@ module.exports = function (argv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Load middlewares
|
// Load middlewares
|
||||||
|
var middlewares
|
||||||
if (argv.middlewares) {
|
if (argv.middlewares) {
|
||||||
if (!Array.isArray(argv.middlewares)) {
|
middlewares = argv.middlewares.map(function (m) {
|
||||||
argv.middlewares = [argv.middlewares]
|
console.log(chalk.gray(' Loading', m))
|
||||||
}
|
return require(path.resolve(m))
|
||||||
console.log(chalk.gray(' Loading', argv.middlewares))
|
})
|
||||||
var middlewares = argv.middlewares.map(function (m) { return require(path.resolve(m)) })
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Done
|
||||||
console.log(chalk.gray(' Done'))
|
console.log(chalk.gray(' Done'))
|
||||||
|
|
||||||
// Create app and server
|
// Create app and server
|
||||||
|
@ -132,9 +132,9 @@ describe('cli', function () {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('db.json -m first-middleware.js -m second-middleware.js', function () {
|
describe('db.json -m first-middleware.js second-middleware.js', function () {
|
||||||
beforeEach(function (done) {
|
beforeEach(function (done) {
|
||||||
child = cli([dbFile, '-m', middlewareFiles.en, '-m', middlewareFiles.jp])
|
child = cli([dbFile, '-m', middlewareFiles.en, middlewareFiles.jp])
|
||||||
serverReady(PORT, done)
|
serverReady(PORT, done)
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -184,7 +184,7 @@ describe('cli', function () {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('db.json --no-cors=true', function () {
|
describe('fixtures/seed.json --no-cors=true', function () {
|
||||||
beforeEach(function (done) {
|
beforeEach(function (done) {
|
||||||
child = cli(['fixtures/seed.js', '--no-cors=true'])
|
child = cli(['fixtures/seed.js', '--no-cors=true'])
|
||||||
serverReady(PORT, done)
|
serverReady(PORT, done)
|
||||||
@ -198,8 +198,8 @@ describe('cli', function () {
|
|||||||
.expect(200)
|
.expect(200)
|
||||||
.end(function (err, res) {
|
.end(function (err, res) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return done(err)
|
done(err)
|
||||||
} else if ('access-control-allow-origin' in res.headers) {
|
} if ('access-control-allow-origin' in res.headers) {
|
||||||
done(new Error('CORS headers were not excluded from response'))
|
done(new Error('CORS headers were not excluded from response'))
|
||||||
} else {
|
} else {
|
||||||
done()
|
done()
|
||||||
@ -208,7 +208,7 @@ describe('cli', function () {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('db.json --no-gzip=true', function () {
|
describe('fixtures/seed.json --no-gzip=true', function () {
|
||||||
beforeEach(function (done) {
|
beforeEach(function (done) {
|
||||||
child = cli(['fixtures/seed.js', '--no-gzip=true'])
|
child = cli(['fixtures/seed.js', '--no-gzip=true'])
|
||||||
serverReady(PORT, done)
|
serverReady(PORT, done)
|
||||||
@ -218,11 +218,10 @@ describe('cli', function () {
|
|||||||
var origin = 'http://example.com'
|
var origin = 'http://example.com'
|
||||||
|
|
||||||
request.get('/posts')
|
request.get('/posts')
|
||||||
.set('Origin', origin)
|
|
||||||
.expect(200)
|
.expect(200)
|
||||||
.end(function (err, res) {
|
.end(function (err, res) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return done(err)
|
done(err)
|
||||||
} else if ('content-encoding' in res.headers) {
|
} else if ('content-encoding' in res.headers) {
|
||||||
done(new Error('Content-Encoding is set to gzip'))
|
done(new Error('Content-Encoding is set to gzip'))
|
||||||
} else {
|
} else {
|
||||||
@ -232,30 +231,6 @@ describe('cli', function () {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('db.json --no-gzip=false', function () {
|
|
||||||
beforeEach(function (done) {
|
|
||||||
child = cli(['fixtures/seed.js', '--no-gzip=false'])
|
|
||||||
serverReady(PORT, done)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('should set Content-Encoding to gzip', function (done) {
|
|
||||||
var origin = 'http://example.com'
|
|
||||||
|
|
||||||
request.get('/posts')
|
|
||||||
.set('Origin', origin)
|
|
||||||
.expect(200)
|
|
||||||
.end(function (err, res) {
|
|
||||||
if (err) {
|
|
||||||
return done(err)
|
|
||||||
} else if ('content-encoding' in res.headers) {
|
|
||||||
done()
|
|
||||||
} else {
|
|
||||||
done(new Error('Content-Encoding is not set to gzip'))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('--watch db.json -r routes.json', function () {
|
describe('--watch db.json -r routes.json', function () {
|
||||||
beforeEach(function (done) {
|
beforeEach(function (done) {
|
||||||
child = cli(['--watch', dbFile, '-r', routesFile])
|
child = cli(['--watch', dbFile, '-r', routesFile])
|
||||||
|
Reference in New Issue
Block a user