@jschmold/kor
Version:
`npm i mocha ts-node typedoc typescript --global`
35 lines (34 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var controller_1 = require("./controller");
var model_1 = require("./model");
function ApplicationModule(opts) {
return function (constructor) {
constructor.prototype._moduleOptions = opts;
};
}
exports.ApplicationModule = ApplicationModule;
function getOpts(arg) {
var proto = arg.prototype || arg.constructor.prototype;
var modOpts = proto._moduleOptions;
if (modOpts == null || (modOpts.controllers == null && modOpts.models == null)) {
console.warn('An empty module is being loaded');
}
return modOpts || { models: [], controllers: [] };
}
function getControllers(arg) {
return arg.controllers || [];
}
function getModels(opts) {
return opts.models || [];
}
function LoadModule(arg) {
var opts = getOpts(arg);
var models = getModels(opts);
console.debug(models.length + " models in " + arg.name);
models.forEach(model_1.bindModel);
var controllers = getControllers(opts);
console.debug(controllers.length + " controllers in " + arg.name);
controllers.forEach(controller_1.bindRouteable);
}
exports.LoadModule = LoadModule;