add --cors option to allow for optional CORS handling

we are using `cors` middleware with default options which works for most
applications, but does not allow for fine tuning (whitelisting origins
etc.)

this change keeps CORS handling as default to preserve compatibility but
also allows for specying `--no-cors` option which makes it possible to
handle CORS in an independent proxy (NGINX, another node app etc.)
This commit is contained in:
Damian Krzeminski 2017-04-12 09:43:43 -07:00
parent 366380395e
commit 6c23d95feb
2 changed files with 9 additions and 2 deletions

View file

@ -32,6 +32,10 @@ var opts = require('nomnom')
default: 8080, default: 8080,
help: 'Port' help: 'Port'
}) })
.option('cors', {
default: true,
help: 'Enable Cross-origin resource sharing headers'
})
.option('verbose', { .option('verbose', {
abbr: 'V', abbr: 'V',
flag: true, flag: true,
@ -54,7 +58,8 @@ var startServer = function(configPath, config) {
configPath: configPath, configPath: configPath,
config: config, config: config,
bind: opts.bind, bind: opts.bind,
port: opts.port port: opts.port,
cors: opts.cors
}); });
}; };

View file

@ -90,7 +90,9 @@ module.exports = function(opts, callback) {
var data = clone(config.data || {}); var data = clone(config.data || {});
if (opts.cors) {
app.use(cors()); app.use(cors());
}
Object.keys(config.styles || {}).forEach(function(id) { Object.keys(config.styles || {}).forEach(function(id) {
var item = config.styles[id]; var item = config.styles[id];