UNPKG

silentjs

Version:
45 lines (34 loc) 1.18 kB
// VENDOR LIBS var path = require('path'); var lodash = require('lodash'); // LIBS CORE var filesystem = require('lib-core/filesystem/filesystem'); // FRAMEWORK var configurationService = require('silentjs/configuration'); var MiddlewareStore = function (middlewaresPath) { this.middlewares = {}; if (middlewaresPath) { this.loadMiddlewares(middlewaresPath); } }; MiddlewareStore.prototype.addMiddleware = function (name, func) { this.middlewares[name] = func; }; MiddlewareStore.prototype.loadMiddlewares = function (path) { var middlewares = filesystem.getFileNamesIntoPath(path); lodash.each(middlewares, function (middleware) { require(middleware); }); }; MiddlewareStore.prototype.getMiddlewares = function (middlewareIds) { middlewareIds = middlewareIds || []; return lodash.filter(this.middlewares, function (middleware, key) { return (middlewareIds.indexOf(key) > -1); }); }; MiddlewareStore.prototype.getMiddleware = function (middlewareId) { return lodash.find(this.middlewares, function (middleware, key) { return (middlewareId === key); }); }; module.exports = MiddlewareStore;