Browse Source

refactor cli

master
Lloyd Brookes 8 years ago
parent
commit
d07ef41cd2
  1. 2
      bin/cli.js
  2. 17
      lib/cli-app.js
  3. 0
      lib/command/feature-list.js
  4. 62
      lib/command/serve.js
  5. 77
      lib/local-web-server.js

2
bin/cli.js

@ -1,2 +1,2 @@
#!/usr/bin/env node #!/usr/bin/env node
require('../').run()
require('../lib/cli-app').run()

17
lib/cli-app.js

@ -0,0 +1,17 @@
'use strict'
const LwsCliApp = require('lws/lib/cli-app')
/**
* @alias module:local-web-server
*/
class WsCliApp extends LwsCliApp {
constructor (options) {
super (options)
/* override default serve command */
this.commands.add(null, require('./command/serve'))
/* add feature-list command */
this.commands.add('feature-list', require('./command/feature-list'))
}
}
module.exports = WsCliApp

0
lib/feature-list.js → lib/command/feature-list.js

62
lib/command/serve.js

@ -0,0 +1,62 @@
const ServeCommand = require('lws/lib/command/serve')
const path = require('path')
/**
* @module local-web-server
*/
class WsServe extends ServeCommand {
execute (options, argv) {
options = {
stack: [
'lws-log',
'lws-cors',
'lws-json',
'lws-rewrite',
'lws-body-parser',
'lws-blacklist',
'lws-conditional-get',
'lws-mime',
'lws-compress',
'lws-mock-response',
'lws-spa',
'lws-static',
'lws-index'
],
moduleDir: path.resolve(__dirname, `../../node_modules`),
modulePrefix: 'lws-'
}
super.execute(options, argv)
}
usage () {
const sections = super.usage()
sections.shift()
sections.shift()
sections.pop()
sections.unshift(
{
header: 'local-web-server',
content: 'A convenient local web server to support productive, full-stack Javascript development.'
},
{
header: 'Synopsis',
content: [
'$ ws <options>',
'$ ws [underline]{command} <options>'
]
}
)
sections.push({
content: 'Project home: [underline]{https://github.com/lwsjs/local-web-server}'
})
return sections
}
showVersion () {
const pkg = require(path.resolve(__dirname, '..', 'package.json'))
console.log(pkg.version)
}
}
module.exports = WsServe

77
lib/local-web-server.js

@ -1,77 +0,0 @@
'use strict'
const Lws = require('lws')
const Serve = require('lws/lib/command/serve')
const path = require('path')
/**
* @module local-web-server
*/
class WsServe extends Serve {
execute (options, argv) {
options = {
stack: [
'lws-log',
'lws-cors',
'lws-json',
'lws-rewrite',
'lws-body-parser',
'lws-blacklist',
'lws-conditional-get',
'lws-mime',
'lws-compress',
'lws-mock-response',
'lws-spa',
'lws-static',
'lws-index'
],
moduleDir: path.resolve(__dirname, `../node_modules`),
modulePrefix: 'lws-'
}
super.execute(options, argv)
}
usage () {
const sections = super.usage()
sections.shift()
sections.shift()
sections.pop()
sections.unshift(
{
header: 'local-web-server',
content: 'A convenient local web server to support productive, full-stack Javascript development.'
},
{
header: 'Synopsis',
content: [
'$ ws <options>',
'$ ws [underline]{command} <options>'
]
}
)
sections.push({
content: 'Project home: [underline]{https://github.com/lwsjs/local-web-server}'
})
return sections
}
showVersion () {
const pkg = require(path.resolve(__dirname, '..', 'package.json'))
console.log(pkg.version)
}
}
/**
* @alias module:local-web-server
*/
class LocalWebServer extends Lws {
constructor (options) {
super (options)
/* override default serve command */
this.commands.add(null, WsServe)
/* add feature-list command */
this.commands.add('feature-list', require('./feature-list'))
}
}
module.exports = LocalWebServer
Loading…
Cancel
Save