@hestjs/core
Version:
HestJS Core Framework - A TypeScript framework built on Hono with dependency injection and decorators
26 lines • 949 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Controller = Controller;
require("reflect-metadata");
const tsyringe_1 = require("tsyringe");
const constants_1 = require("../utils/constants");
/**
* 控制器装饰器
* @param path 控制器路径前缀
*/
function Controller(path = "") {
return (target) => {
const metadata = {
path: path.startsWith("/") ? path : `/${path}`,
};
Reflect.defineMetadata(constants_1.METADATA_KEYS.CONTROLLER, metadata, target);
// 确保类可以被注入
if (!Reflect.hasMetadata(constants_1.METADATA_KEYS.INJECTABLE, target)) {
Reflect.defineMetadata(constants_1.METADATA_KEYS.INJECTABLE, { scope: "singleton" }, target);
}
// 自动应用 TSyringe 的 injectable 装饰器
(0, tsyringe_1.injectable)()(target);
return target;
};
}
//# sourceMappingURL=controller.js.map