@nestjs/swagger
Version:
Nest - modern, fast, powerful node.js web framework (@swagger)
24 lines (23 loc) • 745 B
JavaScript
import { omit } from 'es-toolkit/compat';
import { addEnumArraySchema, addEnumSchema, isEnumArray, isEnumDefined } from '../utils/enum.utils.js';
import { createParamDecorator, getTypeIsArrayTuple } from './helpers.js';
const defaultBodyMetadata = {
type: String,
required: true
};
export function ApiBody(options) {
const [type, isArray] = getTypeIsArrayTuple(options.type, options.isArray);
const param = {
in: 'body',
...omit(options, 'enum'),
type,
isArray
};
if (isEnumArray(options)) {
addEnumArraySchema(param, options);
}
else if (isEnumDefined(options)) {
addEnumSchema(param, options);
}
return createParamDecorator(param, defaultBodyMetadata);
}