UNPKG

@eggjs/controller-decorator

Version:

tegg controller decorator

38 lines 3.65 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MethodValidator = void 0; const tegg_metadata_1 = require("@eggjs/tegg-metadata"); const MethodInfoUtil_1 = __importDefault(require("../MethodInfoUtil")); const ControllerInfoUtil_1 = __importDefault(require("../ControllerInfoUtil")); class MethodValidator { // should throw error // 1. use method middleware but not has method decorator // 2. use context decorator but not has method decorator // 3. method decorator type is not same as controller decorator type static validate(clazz, methodName) { const methodControllerType = MethodInfoUtil_1.default.getMethodControllerType(clazz, methodName); const methodMiddlewares = MethodInfoUtil_1.default.getMethodMiddlewares(clazz, methodName); const contextIndex = MethodInfoUtil_1.default.getMethodContextIndex(clazz, methodName); if (!methodControllerType) { if (methodMiddlewares.length) { const desc = tegg_metadata_1.ClassUtil.classDescription(clazz); throw new Error(`${desc}:${methodName} @Middleware should use with method decorator`); } if (contextIndex !== undefined) { const desc = tegg_metadata_1.ClassUtil.classDescription(clazz); throw new Error(`${desc}:${methodName} @Context should use with method decorator`); } return; } const controllerType = ControllerInfoUtil_1.default.getControllerType(clazz); if (methodControllerType !== controllerType) { const desc = tegg_metadata_1.ClassUtil.classDescription(clazz); throw new Error(`${desc}:${methodName} method decorator ${methodControllerType} can not be used with ${controllerType}`); } } } exports.MethodValidator = MethodValidator; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0aG9kVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvdmFsaWRhdG9yL01ldGhvZFZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx3REFBaUQ7QUFDakQsdUVBQStDO0FBQy9DLCtFQUF1RDtBQUV2RCxNQUFhLGVBQWU7SUFDMUIscUJBQXFCO0lBQ3JCLHdEQUF3RDtJQUN4RCx3REFBd0Q7SUFDeEQsb0VBQW9FO0lBQ3BFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBd0IsRUFBRSxVQUFrQjtRQUMxRCxNQUFNLG9CQUFvQixHQUFHLHdCQUFjLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0saUJBQWlCLEdBQUcsd0JBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDakYsTUFBTSxZQUFZLEdBQUcsd0JBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDMUIsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxJQUFJLEdBQUcseUJBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxVQUFVLCtDQUErQyxDQUFDLENBQUM7WUFDeEYsQ0FBQztZQUNELElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUMvQixNQUFNLElBQUksR0FBRyx5QkFBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLFVBQVUsNENBQTRDLENBQUMsQ0FBQztZQUNyRixDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLGNBQWMsR0FBRyw0QkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRSxJQUFJLG9CQUFvQixLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQzVDLE1BQU0sSUFBSSxHQUFHLHlCQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxVQUFVLHFCQUFxQixvQkFBb0IseUJBQXlCLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDM0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTFCRCwwQ0EwQkMifQ==