cmux/node_modules/json-schema-to-ts/lib/parse-schema/mixed.d.ts
2026-01-29 17:36:26 -08:00

11 lines
497 B
TypeScript

import { Union } from "../meta-types";
import { Get, Head, Tail, DeepMergeUnsafe } from "../utils";
import { ParseSchema } from ".";
export declare type ParseMixedSchema<S> = Union<RecurseOnMixedSchema<Get<S, "type">, S>>;
declare type RecurseOnMixedSchema<T, S, R = never> = {
stop: R;
continue: T extends any[] ? RecurseOnMixedSchema<Tail<T>, S, R | ParseSchema<DeepMergeUnsafe<S, {
type: Head<T>;
}>>> : never;
}[T extends [any, ...any[]] ? "continue" : "stop"];
export {};