UNPKG

availity-ekko

Version:

Mock server simulating Availity API rest services

68 lines (54 loc) 2.08 kB
var expressLogger = require('morgan'); var errorhandler = require('errorhandler'); var compression = require('compression'); var methodOverride = require('method-override'); var cors = require('cors'); var bodyParser = require('body-parser'); var busboy = require('connect-busboy'); var tFunk = require('tfunk'); var config = require('../config'); var proxy = require('./proxy'); var logger = require('../logger'); var negotiate = require('./negotiation'); var routes = require('../routes'); var dateformat = require('dateformat'); var avPrefixFunk = tFunk('[{grey:%s}]} {yellow:[av-ekko]}'); var avMethodFunk = tFunk('{bold:%s'); expressLogger.token('prefix', function() { return avPrefixFunk.replace('%s', dateformat(new Date(), 'HH:MM:ss')); }); expressLogger.token('avMethod', function getMethodToken(req) { return avMethodFunk.replace('%s', req.method); }); expressLogger.token('avStatus', function getStatusToken(req, res) { var code = res._header ? String(res.statusCode) : ''; return avMethodFunk.replace('%s', code); }); module.exports = function development() { config.app.use(expressLogger(':prefix :avMethod :url :avStatus :response-time')); config.app.use(errorhandler()); config.app.use(compression()); config.app.use(cors()); config.app.use(negotiate()); // Proxies must be configured before the mock routes so they can be intercepted // and forwarded to appropriate server if (config.isProxyEnabled()) { logger.info('Proxy configurations detected'); config.app.use(proxy()); } else { logger.info('No proxy configurations detected'); } config.app.use(methodOverride('X-HTTP-Method-Override')); config.app.use(bodyParser.json()); // parse application/json config.app.use(bodyParser.urlencoded({ extended: true, limit: config.options.limit })); // // parse application/x-www-form-urlencoded config.app.use(busboy({ immediate: false })); config.app.use('/', config.router); config.app.use('/api', config.router); config.app.use('/public/api', config.router); routes.init(); };