hashbrown

Schema

API

export type Schema<T> =
   IsStringUnion <T> extends true
    ? [T] extends [string]
      ?  UnionToTuple <T> extends infer U
        ? U extends string[]
          ?  EnumType <U>
          : never
        : never
      : never
    :  IsUnion <T> extends true
      ?  SchemaForUnion <T>
      : T extends  Array <infer U>
        ?  ArrayType < Schema <U>>
        : T extends string
          ? string extends T
            ?  StringType 
            :  LiteralType <T>
          : T extends number
            ?  NumberType 
            : T extends boolean
              ?  BooleanType 
              : T extends null
                ?  NullType 
                : T extends object
                  ?  ObjectType <{
                      [K in keyof T]:  Schema <T[K]>;
                    }>
                  : never;
Schema
@typeT