import { EnumTsonSchemaOf } from './EnumTsonSchemaOf'; import { FromTsonSchema } from './FromTsonSchema'; import { TsonSchema } from './TsonSchema'; import { SchemaBase } from '../generic'; import { StringTsonSchema } from './StringTsonSchema'; export type MapTsonSchema = { readonly type: 'map'; readonly keys: StringTsonSchema | EnumTsonSchemaOf; readonly values: TsonSchema; readonly partial?: boolean; readonly default?: Record; readonly examples?: Record[]; }; export type MapTsonSchemaOf, V, P = false> = SchemaBase & { readonly type: 'map'; readonly keys: K; readonly values: V; readonly partial: P; }; export type FromMapTsonSchema = S['partial'] extends true ? { -readonly [key in S['keys'] extends EnumTsonSchemaOf ? M : string]?: FromTsonSchema; } : { -readonly [key in S['keys'] extends EnumTsonSchemaOf ? M : string]: FromTsonSchema; };