mirror of
https://github.com/typicode/json-server.git
synced 2025-07-29 05:03:04 +08:00
Add --delay option
This commit is contained in:
@ -10,6 +10,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"body-parser": "^1.8.1",
|
"body-parser": "^1.8.1",
|
||||||
"chalk": "^0.4.0",
|
"chalk": "^0.4.0",
|
||||||
|
"connect-pause": "^0.1.0",
|
||||||
"cors": "^2.3.0",
|
"cors": "^2.3.0",
|
||||||
"errorhandler": "^1.2.0",
|
"errorhandler": "^1.2.0",
|
||||||
"express": "^4.9.5",
|
"express": "^4.9.5",
|
||||||
|
@ -31,6 +31,10 @@ module.exports = function () {
|
|||||||
id: {
|
id: {
|
||||||
description: 'Set database id property (e.g. _id)',
|
description: 'Set database id property (e.g. _id)',
|
||||||
default: 'id'
|
default: 'id'
|
||||||
|
},
|
||||||
|
delay: {
|
||||||
|
alias: 'd',
|
||||||
|
description: 'Add delay to responses (ms)'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.boolean('watch')
|
.boolean('watch')
|
||||||
|
@ -3,6 +3,7 @@ var chalk = require('chalk')
|
|||||||
var is = require('./utils/is')
|
var is = require('./utils/is')
|
||||||
var load = require('./utils/load')
|
var load = require('./utils/load')
|
||||||
var watch = require('./watch')
|
var watch = require('./watch')
|
||||||
|
var pause = require('connect-pause')
|
||||||
var jsonServer = require('../server')
|
var jsonServer = require('../server')
|
||||||
|
|
||||||
function prettyPrint (argv, object, rules) {
|
function prettyPrint (argv, object, rules) {
|
||||||
@ -30,7 +31,7 @@ function prettyPrint (argv, object, rules) {
|
|||||||
console.log()
|
console.log()
|
||||||
}
|
}
|
||||||
|
|
||||||
function createServer (source, object, routes) {
|
function createServer (source, object, routes, delay) {
|
||||||
var server = jsonServer.create()
|
var server = jsonServer.create()
|
||||||
|
|
||||||
var router = jsonServer.router(
|
var router = jsonServer.router(
|
||||||
@ -46,6 +47,10 @@ function createServer (source, object, routes) {
|
|||||||
server.use(rewriter)
|
server.use(rewriter)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (delay) {
|
||||||
|
server.use(pause(delay))
|
||||||
|
}
|
||||||
|
|
||||||
server.use(router)
|
server.use(router)
|
||||||
|
|
||||||
return server
|
return server
|
||||||
@ -77,7 +82,8 @@ module.exports = function (argv) {
|
|||||||
console.log(chalk.gray(' Done'))
|
console.log(chalk.gray(' Done'))
|
||||||
|
|
||||||
// Create server and listen
|
// Create server and listen
|
||||||
server = createServer(source, data, routes).listen(argv.port, argv.host)
|
server = createServer(source, data, routes, argv.delay)
|
||||||
|
.listen(argv.port, argv.host)
|
||||||
|
|
||||||
// Display server informations
|
// Display server informations
|
||||||
prettyPrint(argv, data, routes)
|
prettyPrint(argv, data, routes)
|
||||||
|
@ -91,6 +91,23 @@ describe('cli', function () {
|
|||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('db.json -d 1000', function () {
|
||||||
|
|
||||||
|
beforeEach(function (done) {
|
||||||
|
child = cli([dbFile, '-d', 1000])
|
||||||
|
setTimeout(done, 1000)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should delay response', function (done) {
|
||||||
|
var start = new Date()
|
||||||
|
request.get('/posts').expect(200, function (err) {
|
||||||
|
var end = new Date()
|
||||||
|
done(end - start > 1000 ? err : new Error('Request wasn\'t delayed'))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
// FIXME test fails on OS X and maybe on Windows
|
// FIXME test fails on OS X and maybe on Windows
|
||||||
// But manually updating db.json works...
|
// But manually updating db.json works...
|
||||||
if (os.platform() === 'linux') {
|
if (os.platform() === 'linux') {
|
||||||
|
Reference in New Issue
Block a user