All files / lib load-middlewares.js

84.21% Statements 16/19
75% Branches 6/8
100% Functions 1/1
84.21% Lines 16/19
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33          1x 1x 1x   1x 8x 8x       8x 8x 40x     40x 40x   40x 40x 8x   40x 18x        
/**
 * Load middlewares according to the config
 **/
'use strict';
 
const assert  = require('assert');
const debug   = require('debug')('lark.load-middlewares');
const misc    = require('vi-misc');
 
module.exports = async (app) => {
    debug('load middlewares');
    Iif (!app.config.has('bootstrap/middlewares')) {
        debug('no middlewares in config');
        return;
    }
    const middlewares = app.config.get('bootstrap/middlewares');
    for (let middlewareName of middlewares) {
        Iif (middlewareName.startsWith('.')) {
            middlewareName = misc.path.absolute(middlewareName);
        }
        let middlewareGenerator = require(middlewareName);
        assert(middlewareGenerator instanceof Function,
            `middleware generator ${middlewareName} should be a Function `);
        let middleware = middlewareGenerator(app);
        if (middleware instanceof Promise) {
            middleware = await middleware;
        }
        if (middleware instanceof Function) {
            app.use(middleware);
        }
    }
};