@nestia/core
Version:
Super-fast validation decorators of NestJS
37 lines • 2.14 kB
JavaScript
;
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