mirror of
https://github.com/typicode/json-server.git
synced 2025-07-28 20:52:08 +08:00
* add alias for port
* add -s option for daemon process
This commit is contained in:
11
bin/index.js
11
bin/index.js
@ -6,6 +6,15 @@ var cli = require('../src/cli')
|
|||||||
var notifier = updateNotifier({packagePath: '../package'})
|
var notifier = updateNotifier({packagePath: '../package'})
|
||||||
if (notifier.update) notifier.notify()
|
if (notifier.update) notifier.notify()
|
||||||
|
|
||||||
var argv = minimist(process.argv.slice(2))
|
var argv = minimist(process.argv.slice(2), {
|
||||||
|
boolean: ["silent"],
|
||||||
|
alias: {
|
||||||
|
'p': 'port',
|
||||||
|
's': 'silent'
|
||||||
|
},
|
||||||
|
default: {
|
||||||
|
silent: false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
cli.run(argv)
|
cli.run(argv)
|
39
src/cli.js
39
src/cli.js
@ -19,29 +19,31 @@ function help() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Start server
|
// Start server
|
||||||
function start(port) {
|
function start(port, silent) {
|
||||||
for (var prop in low.db) {
|
for (var prop in low.db) {
|
||||||
console.log('http://localhost:' + port + '/' + chalk.green(prop))
|
console.log('http://localhost:' + port + '/' + chalk.green(prop))
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(
|
if(!silent) {
|
||||||
'\nEnter ' + chalk.green('`s`') + ' at any time to create a snapshot of the db\n'
|
console.log(
|
||||||
)
|
'\nEnter ' + chalk.green('`s`') + ' at any time to create a snapshot of the db\n'
|
||||||
process.stdin.resume()
|
)
|
||||||
process.stdin.setEncoding('utf8')
|
process.stdin.resume()
|
||||||
process.stdin.on('data', function (chunk) {
|
process.stdin.setEncoding('utf8')
|
||||||
if (chunk.trim().toLowerCase() === 's') {
|
process.stdin.on('data', function (chunk) {
|
||||||
var file = 'db-' + Date.now() + '.json'
|
if (chunk.trim().toLowerCase() === 's') {
|
||||||
low.save(file)
|
var file = 'db-' + Date.now() + '.json'
|
||||||
console.log('\nSaved snapshot to ' + chalk.green(file) + '\n')
|
low.save(file)
|
||||||
}
|
console.log('\nSaved snapshot to ' + chalk.green(file) + '\n')
|
||||||
})
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
server.listen(port)
|
server.listen(port)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load source
|
// Load source
|
||||||
function load(source, port) {
|
function load(source, port, silent) {
|
||||||
console.log(chalk.green('\n{^ ^} Heya!\n'))
|
console.log(chalk.green('\n{^ ^} Heya!\n'))
|
||||||
|
|
||||||
console.log('Loading database from ' + source + '\n')
|
console.log('Loading database from ' + source + '\n')
|
||||||
@ -50,13 +52,13 @@ function load(source, port) {
|
|||||||
var path = process.cwd() + '/' + source
|
var path = process.cwd() + '/' + source
|
||||||
low.path = path
|
low.path = path
|
||||||
low.db = require(path);
|
low.db = require(path);
|
||||||
start(port)
|
start(port, silent)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (/\.js$/.test(source)) {
|
if (/\.js$/.test(source)) {
|
||||||
var path = process.cwd() + '/' + source
|
var path = process.cwd() + '/' + source
|
||||||
low.db = require(path).run();
|
low.db = require(path).run();
|
||||||
start(port)
|
start(port, silent)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (/^http/.test(source)) {
|
if (/^http/.test(source)) {
|
||||||
@ -67,7 +69,7 @@ function load(source, port) {
|
|||||||
console.error(err)
|
console.error(err)
|
||||||
} else {
|
} else {
|
||||||
low.db = JSON.parse(res.text)
|
low.db = JSON.parse(res.text)
|
||||||
start(port)
|
start(port, silent)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -77,9 +79,10 @@ function load(source, port) {
|
|||||||
function run(argv) {
|
function run(argv) {
|
||||||
var source = argv._[0]
|
var source = argv._[0]
|
||||||
var port = argv.port || 3000
|
var port = argv.port || 3000
|
||||||
|
var silent = argv.silent
|
||||||
|
|
||||||
if (argv.version) return version()
|
if (argv.version) return version()
|
||||||
if (source) return load(source, port)
|
if (source) return load(source, port, silent)
|
||||||
|
|
||||||
help()
|
help()
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user