@restmatic/server
Version:
The core Pomegranate plugins for RestMatic
42 lines • 1.89 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @file PreRouter
* @author Jim Bulkowski <jim.b@paperelectron.com>
* @project server
* @license MIT {@link http://opensource.org/licenses/MIT}
*/
const fp_1 = require("lodash/fp");
const plugin_tools_1 = require("@pomegranate/plugin-tools");
exports.ExpressConfiguration = plugin_tools_1.CreatePlugin('action')
.directories([{ path: '.', prop: 'root' }])
.configuration({
name: 'ExpressConfiguration',
optional: ['@restmatic/Core']
})
.hooks({
load: (Injector, PluginLogger, PluginVariables, PluginFiles, Middleware, ExpressConfig) => __awaiter(this, void 0, void 0, function* () {
PluginLogger.log('Configuring Express Application', 1);
let files = yield PluginFiles('root').fileList({ ext: '.js' });
let ready = fp_1.map((file) => {
let required = require(file.path);
PluginLogger.log(file.getBaseName());
return required.ExpressSetting;
}, files);
let toInject = fp_1.filter((fn) => {
return fp_1.isFunction(fn);
}, ready);
fp_1.each((settingFn) => {
Injector.inject(settingFn);
}, toInject);
})
});
//# sourceMappingURL=ExpressConfiguration.js.map