core-mvc
Version:
Simple but powerful MVC framework for NodeJS.
41 lines (40 loc) • 1.71 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.retrieveTasks = exports.initializeControllers = void 0;
const controllerRegistry_1 = __importDefault(require("./controllerRegistry"));
const gqlHandler_1 = __importDefault(require("./gqlHandler"));
const taskRegistry_1 = __importDefault(require("./taskRegistry"));
const taskSymbols_1 = require("./taskSymbols");
const initializeControllers = (container) => {
for (const controller of controllerRegistry_1.default) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const instance = container.get(controller.constructor);
for (const name of Reflect.ownKeys(controller)) {
(0, gqlHandler_1.default)(controller, instance, name);
}
}
};
exports.initializeControllers = initializeControllers;
const retrieveTasks = (container) => {
const result = [];
for (const controller of taskRegistry_1.default) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const instance = container.get(controller.constructor);
for (const name of Reflect.ownKeys(controller)) {
const taskName = Reflect.getMetadata(taskSymbols_1.taskPropertySymbol, controller, name);
if (taskName) {
result.push({
name,
run: (...args) => instance[name](...args),
controller,
instance,
});
}
}
}
return result;
};
exports.retrieveTasks = retrieveTasks;