UNPKG

@hestjs/core

Version:

HestJS Core Framework - A TypeScript framework built on Hono with dependency injection and decorators

79 lines 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MetadataScanner = void 0; require("reflect-metadata"); const constants_1 = require("../utils/constants"); /** * 元数据扫描器 */ class MetadataScanner { /** * 扫描控制器元数据 */ static scanController(target) { return Reflect.getMetadata(constants_1.METADATA_KEYS.CONTROLLER, target); } /** * 扫描路由元数据 */ static scanRoutes(target) { return Reflect.getMetadata(constants_1.METADATA_KEYS.ROUTE, target) || []; } /** * 扫描模块元数据 */ static scanModule(target) { return Reflect.getMetadata(constants_1.METADATA_KEYS.MODULE, target); } /** * 扫描可注入元数据 */ static scanInjectable(target) { return Reflect.getMetadata(constants_1.METADATA_KEYS.INJECTABLE, target); } /** * 扫描方法参数元数据 */ static scanParameters(target, methodName) { const paramKey = `${constants_1.METADATA_KEYS.PARAM.toString()}_${methodName}`; return Reflect.getMetadata(paramKey, target) || []; } /** * 获取构造函数参数类型 */ static getConstructorParameters(target) { return Reflect.getMetadata('design:paramtypes', target) || []; } /** * 获取方法参数类型 */ static getMethodParameters(target, methodName) { return Reflect.getMetadata('design:paramtypes', target.prototype, methodName) || []; } /** * 检查是否为控制器 */ static isController(target) { return Reflect.hasMetadata(constants_1.METADATA_KEYS.CONTROLLER, target); } /** * 检查是否为模块 */ static isModule(target) { return Reflect.hasMetadata(constants_1.METADATA_KEYS.MODULE, target); } /** * 检查是否可注入 */ static isInjectable(target) { return Reflect.hasMetadata(constants_1.METADATA_KEYS.INJECTABLE, target); } /** * 获取所有元数据键 */ static getAllMetadataKeys(target, propertyKey) { return Reflect.getMetadataKeys(target, propertyKey); } } exports.MetadataScanner = MetadataScanner; //# sourceMappingURL=metadata-scanner.js.map