@samchon/openapi
Version:
OpenAPI definitions and converters for 'typia' and 'nestia'.
34 lines (30 loc) • 1.53 kB
JavaScript
import { OpenApiStationValidator } from "./OpenApiStationValidator.mjs";
var OpenApiTupleValidator;
(function(OpenApiTupleValidator) {
OpenApiTupleValidator.validate = ctx => {
if (!Array.isArray(ctx.value)) return ctx.report(ctx); else if (!!ctx.schema.additionalItems === false) {
if (ctx.value.length !== ctx.schema.prefixItems.length) return ctx.report(ctx);
return ctx.value.map(((v, i) => OpenApiStationValidator.validate({
...ctx,
schema: ctx.schema.prefixItems[i],
value: v,
path: `${ctx.path}[${i}]`
}))).every((v => v));
}
if (ctx.value.length < ctx.schema.prefixItems.length) return ctx.report(ctx);
const next = typeof ctx.schema.additionalItems === "object" && ctx.schema.additionalItems !== null ? (v, i) => OpenApiStationValidator.validate({
...ctx,
schema: ctx.schema.additionalItems,
value: v,
path: `${ctx.path}[${i}]`
}) : () => true;
return ctx.value.length >= ctx.schema.prefixItems.length && ctx.value.map(((v, i) => i < ctx.schema.prefixItems.length ? OpenApiStationValidator.validate({
...ctx,
schema: ctx.schema.prefixItems[i],
value: v,
path: `${ctx.path}[${i}]`
}) : next(v, i))).every((v => v));
};
})(OpenApiTupleValidator || (OpenApiTupleValidator = {}));
export { OpenApiTupleValidator };
//# sourceMappingURL=OpenApiTupleValidator.mjs.map