UNPKG

decode-it

Version:

a simple zero-dependency type safe json decoder for typescript

16 lines (15 loc) 739 B
import type { toNativeType } from './toNativeType'; import { FailedValidation } from './validators/ValidationResult'; import { Validator } from './validators/Validator'; export interface Schema<T> { [key: string]: Schema<T> | Validator<T>; } export interface FailedDecode { actual: unknown; expectedType: FailedValidation['type']; expectedValue?: FailedValidation['literal']; path: string; wrapper?: FailedValidation['wrapper']; } export declare const getFailedDecodes: <T extends Schema<any> | Validator<any[]>, J extends toNativeType<T>>(schema: T, json: J) => FailedDecode[]; export declare const createDecoder: <T extends Schema<any> | Validator<any[]>>(schema: T) => <J extends toNativeType<T>>(json: J) => J;