From 7910a424c298b87327f3b51f401c8fc3a27135fe Mon Sep 17 00:00:00 2001 From: Lloyd Brookes Date: Tue, 5 Jul 2016 20:38:29 +0100 Subject: [PATCH] refactor, linting --- bin/cli.js | 1 + lib/local-web-server.js | 55 +++++++++++++++++-------------------------------- package.json | 1 - 3 files changed, 20 insertions(+), 37 deletions(-) diff --git a/bin/cli.js b/bin/cli.js index fd6e338..54493ed 100755 --- a/bin/cli.js +++ b/bin/cli.js @@ -4,3 +4,4 @@ const LocalWebServer = require('../') const ws = new LocalWebServer() ws.listen() + .catch(err => console.error(err.stack)) diff --git a/lib/local-web-server.js b/lib/local-web-server.js index a61b5f9..802d0b0 100644 --- a/lib/local-web-server.js +++ b/lib/local-web-server.js @@ -2,8 +2,6 @@ 'use strict' const ansi = require('ansi-escape-sequences') const path = require('path') -const arrayify = require('array-back') -const t = require('typical') const CommandLineTool = require('command-line-tool') const flatten = require('reduce-flatten') @@ -69,6 +67,7 @@ class LocalWebServer { .filter(mw => mw.optionDefinitions) .map(mw => mw.optionDefinitions()) .reduce(flatten, []) + .filter(def => def) .map(def => { def.group = 'middleware' return def @@ -112,25 +111,29 @@ class LocalWebServer { } else if (options.help) { tool.stop(usage) } else { - const compose = require('koa-compose') - const convert = require('koa-convert') - const middlewareStack = stackModules - .filter(mw => mw.middleware) - .map(mw => mw.middleware) - .map(middleware => middleware(options)) - .reduce(flatten, []) - .filter(middleware => middleware) - .map(convert) - this.stack = compose(middlewareStack) + this.stack = stackModules } } getApplication () { const Koa = require('koa') const app = new Koa() - app.use(this.stack) + const compose = require('koa-compose') + const convert = require('koa-convert') + + const middlewareStack = this.stack + .filter(mw => mw.middleware) + .map(mw => mw.middleware(this.options)) + .reduce(flatten, []) + .filter(mw => mw) + .map(convert) + + app.use(compose(middlewareStack)) app.on('error', err => { - if (this.options['log.format']) { + const defaultLogInUse = this.stack.some(mw => mw.constructor.name === 'Log') + if (defaultLogInUse) { + if (this.options['log.format']) console.error(ansi.format(err.stack, 'red')) + } else { console.error(ansi.format(err.stack, 'red')) } }) @@ -169,9 +172,9 @@ class LocalWebServer { listen () { const options = this.options const server = this._server = this.getServer() - return new Promise ((resolve, reject) => { + return new Promise((resolve, reject) => { server.listen(options.port, () => { - onServerUp(options.port, options.directory, server.isHttps) + onServerUp(options.port, options['static.root'], server.isHttps) resolve(server) }) }) @@ -207,25 +210,6 @@ function getIPList () { } /** - * Return default, stored and command-line options combined - */ -function collectUserOptions (mwOptionDefinitions) { - const loadConfig = require('config-master') - const stored = loadConfig('local-web-server') - const cli = require('../lib/cli-data') - - /* parse command line args */ - const definitions = mwOptionDefinitions - ? cli.optionDefinitions.concat(arrayify(mwOptionDefinitions)) - : cli.optionDefinitions - let cliOptions = tool.getOptions(definitions, cli.usage(definitions)) - - /* override stored config with command line options */ - const options = Object.assign(stored, cliOptions.server, cliOptions.middleware, cliOptions.misc) - return options -} - -/** * Loads a module by either path or name. * @returns {object} */ @@ -233,7 +217,6 @@ function loadStack (modulePath) { let module const tried = [] if (modulePath) { - const fs = require('fs') try { tried.push(path.resolve(modulePath)) module = require(path.resolve(modulePath)) diff --git a/package.json b/package.json index e47ebf2..a25495e 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,6 @@ "jsdoc-to-markdown": "^1.3.6", "koa-cache-control": "^1.0.0", "koa-livereload": "~0.2.0", - "node-fetch": "^1.5.3", "req-then": "~0.2.4", "tape": "^4.6.0" }