@samchon/openapi
Version:
OpenAPI definitions and converters for 'typia' and 'nestia'.
99 lines (95 loc) • 3.33 kB
JavaScript
var OpenApiConstraintShifter;
(function(OpenApiConstraintShifter) {
OpenApiConstraintShifter.shiftArray = v => {
const tags = [];
if (v.minItems !== undefined) {
tags.push(`@minItems ${v.minItems}`);
delete v.minItems;
}
if (v.maxItems !== undefined) {
tags.push(`@maxItems ${v.maxItems}`);
delete v.maxItems;
}
if (v.uniqueItems !== undefined) {
if (v.uniqueItems === true) tags.push(`@uniqueItems`);
delete v.uniqueItems;
}
v.description = writeTagWithDescription({
description: v.description,
tags
});
return v;
};
OpenApiConstraintShifter.shiftNumeric = v => {
const tags = [];
if (v.exclusiveMinimum === undefined && v.minimum !== undefined) {
tags.push(`@minimum ${v.minimum}`);
delete v.minimum;
}
if (v.exclusiveMaximum === undefined && v.maximum !== undefined) {
tags.push(`@maximum ${v.maximum}`);
delete v.maximum;
}
if (v.minimum !== undefined && v.exclusiveMinimum === true) {
tags.push(`@exclusiveMinimum ${v.minimum}`);
delete v.minimum;
delete v.exclusiveMinimum;
}
if (v.maximum !== undefined && v.exclusiveMaximum === true) {
tags.push(`@exclusiveMaximum ${v.maximum}`);
delete v.maximum;
delete v.exclusiveMaximum;
}
if (v.multipleOf !== undefined) {
tags.push(`@multipleOf ${v.multipleOf}`);
delete v.multipleOf;
}
v.description = writeTagWithDescription({
description: v.description,
tags
});
if (v.default !== undefined) {
tags.push(`@default ${v.default}`);
delete v.default;
}
return v;
};
OpenApiConstraintShifter.shiftString = v => {
const tags = [];
if (v.minLength !== undefined) {
tags.push(`@minLength ${v.minLength}`);
delete v.minLength;
}
if (v.maxLength !== undefined) {
tags.push(`@maxLength ${v.maxLength}`);
delete v.maxLength;
}
if (v.format !== undefined) {
tags.push(`@format ${v.format}`);
delete v.format;
}
if (v.pattern !== undefined) {
tags.push(`@pattern ${v.pattern}`);
delete v.pattern;
}
if (v.contentMediaType !== undefined) {
tags.push(`@contentMediaType ${v.contentMediaType}`);
delete v.contentMediaType;
}
if (v.default !== undefined) {
tags.push(`@default ${v.default}`);
delete v.default;
}
v.description = writeTagWithDescription({
description: v.description,
tags
});
return v;
};
})(OpenApiConstraintShifter || (OpenApiConstraintShifter = {}));
const writeTagWithDescription = props => {
if (props.tags.length === 0) return props.description;
return [ ...props.description?.length ? [ props.description, "\n" ] : [], ...props.tags ].join("\n");
};
export { OpenApiConstraintShifter };
//# sourceMappingURL=OpenApiConstraintShifter.mjs.map