nestjs-swagger-dto
Version:
Nestjs swagger dto decorators
16 lines • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.IsNumber = void 0;
const class_transformer_1 = require("class-transformer");
const class_validator_1 = require("class-validator");
const core_1 = require("../core");
/**
* *NOTE*: If type is not set it defaults to number
*
* *NOTE*: `format` is only used for OpenAPI spec
*
* **WARNING**: Setting `type: 'integer'` will not convert floats to integers during `classToPlain`
*/
const IsNumber = ({ min, max, stringified, type, format, ...base } = {}) => (0, core_1.compose)({ type: type ?? 'number', format, minimum: min, maximum: max }, base, (0, class_validator_1.IsNumber)({ ...(type === 'integer' && { maxDecimalPlaces: 0 }) }, { each: !!base.isArray }), stringified ? (0, class_transformer_1.Transform)(({ value }) => ((0, class_validator_1.isNumberString)(value) ? Number(value) : value)) : core_1.noop, min !== undefined ? (0, class_validator_1.Min)(min, { each: !!base.isArray }) : core_1.noop, max !== undefined ? (0, class_validator_1.Max)(max, { each: !!base.isArray }) : core_1.noop);
exports.IsNumber = IsNumber;
//# sourceMappingURL=is-number.js.map