@samchon/openapi
Version:
OpenAPI definitions and converters for 'typia' and 'nestia'.
47 lines (45 loc) • 1.26 kB
text/typescript
import { OpenApi } from "../OpenApi";
export namespace OpenApiExclusiveEmender {
export const emend = <
Schema extends Pick<
OpenApi.IJsonSchema.INumber,
"exclusiveMinimum" | "exclusiveMaximum" | "minimum" | "maximum"
>,
>(
schema: Schema,
): Schema => {
const minimum =
typeof schema.minimum === "number" &&
typeof schema.exclusiveMinimum === "number"
? {
minimum:
schema.minimum > schema.exclusiveMinimum
? schema.minimum
: undefined,
exclusiveMinimum:
schema.minimum > schema.exclusiveMinimum
? undefined
: schema.exclusiveMinimum,
}
: {};
const maximum =
typeof schema.maximum === "number" &&
typeof schema.exclusiveMaximum === "number"
? {
maximum:
schema.maximum < schema.exclusiveMaximum
? schema.maximum
: undefined,
exclusiveMaximum:
schema.maximum < schema.exclusiveMaximum
? undefined
: schema.exclusiveMaximum,
}
: {};
return {
...schema,
...minimum,
...maximum,
};
};
}