UNPKG

@nestia/core

Version:

Super-fast validation decorators of NestJS

37 lines 2.14 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ParameterTransformer = void 0; const typescript_1 = __importDefault(require("typescript")); const ParameterDecoratorTransformer_1 = require("./ParameterDecoratorTransformer"); var ParameterTransformer; (function (ParameterTransformer) { ParameterTransformer.transform = (props) => { // CHECK DECORATOR const decorators = typescript_1.default.getDecorators ? typescript_1.default.getDecorators(props.param) : props.param.decorators; if (!(decorators === null || decorators === void 0 ? void 0 : decorators.length)) return props.param; // GET TYPE INFO const type = props.context.checker.getTypeAtLocation(props.param); // WHEN LATEST TS VERSION if (typescript_1.default.getDecorators !== undefined) return typescript_1.default.factory.updateParameterDeclaration(props.param, (props.param.modifiers || []).map((mod) => typescript_1.default.isDecorator(mod) ? ParameterDecoratorTransformer_1.ParameterDecoratorTransformer.transform({ context: props.context, decorator: mod, type, }) : mod), props.param.dotDotDotToken, props.param.name, props.param.questionToken, props.param.type, props.param.initializer); // eslint-disable-next-line return typescript_1.default.factory.updateParameterDeclaration(props.param, decorators.map((deco) => ParameterDecoratorTransformer_1.ParameterDecoratorTransformer.transform({ context: props.context, decorator: deco, type, })), props.param.modifiers, props.param.dotDotDotToken, props.param.name, props.param.questionToken, props.param.type, props.param.initializer); }; })(ParameterTransformer || (exports.ParameterTransformer = ParameterTransformer = {})); //# sourceMappingURL=ParameterTransformer.js.map