UNPKG

@samchon/openapi

Version:

OpenAPI definitions and converters for 'typia' and 'nestia'.

103 lines (102 loc) 3.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenApiConstraintShifter = void 0; 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 || (exports.OpenApiConstraintShifter = OpenApiConstraintShifter = {})); const writeTagWithDescription = (props) => { var _a; if (props.tags.length === 0) return props.description; return [ ...(((_a = props.description) === null || _a === void 0 ? void 0 : _a.length) ? [props.description, "\n"] : []), ...props.tags, ].join("\n"); };