silentjs
Version:
NodeJS API Framework
45 lines (34 loc) • 1.18 kB
JavaScript
// 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;