UNPKG

from-schema

Version:

Infer TypeScript types from JSON schemas

13 lines (11 loc) 1.01 kB
import { BooleanTsonSchema } from './BooleanTsonSchema'; import { NumberTsonSchema } from './NumberTsonSchema'; import { ObjectTsonSchema } from './ObjectTsonSchema'; import { StringTsonSchema } from './StringTsonSchema'; import { PrimitiveOrFromTsonSchema } from './PrimitiveOrFromTsonSchema'; import { FromObjectTsonSchema } from './FromObjectTsonSchema'; import { ArrayTsonSchema } from './ArrayTsonSchema'; import { EnumTsonSchemaOf } from './EnumTsonSchemaOf'; import { FromMapTsonSchema, MapTsonSchema } from './MapTsonSchema'; import { DateTsonSchema } from './DateTsonSchema'; export type FromTsonSchema<T> = T extends DateTsonSchema ? string : T extends StringTsonSchema ? string : T extends NumberTsonSchema ? number : T extends BooleanTsonSchema ? boolean : T extends EnumTsonSchemaOf<infer P> ? PrimitiveOrFromTsonSchema<P> : T extends ObjectTsonSchema ? FromObjectTsonSchema<T> : T extends MapTsonSchema ? FromMapTsonSchema<T> : T extends ArrayTsonSchema ? FromTsonSchema<T['items']>[] : never;