lark
Version:
A node.js framework based on koa. Our goal is to build the best industrial node.js framework for high concurrency and high flow application.
33 lines (30 loc) • 1.05 kB
JavaScript
/**
* Load middlewares according to the config
**/
;
const assert = require('assert');
const debug = require('debug')('lark.load-middlewares');
const misc = require('vi-misc');
module.exports = async (app) => {
debug('load middlewares');
if (!app.config.has('bootstrap/middlewares')) {
debug('no middlewares in config');
return;
}
const middlewares = app.config.get('bootstrap/middlewares');
for (let middlewareName of middlewares) {
if (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);
}
}
};