decode-it
Version:
a simple zero-dependency type safe json decoder for typescript
16 lines (15 loc) • 739 B
TypeScript
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;