normul
Version:
Normul is a tiny TypeScript/JavaScript library for data normalization and transformation
21 lines (20 loc) • 581 B
TypeScript
import type { Schema } from './schemas/Schema.js';
export type Simplify<T> = T extends object ? {
[K in keyof T]: T[K];
} & {} : T;
export type Infer<T extends Schema> = T extends Schema<infer U> ? Simplify<U> : never;
export interface Issue {
path: (string | number)[];
message: string;
level: 'info' | 'warn' | 'error';
expected?: string | number | boolean | undefined | null;
received?: unknown;
}
export interface ParseResult<T> {
data: T;
issues: Issue[];
}
export interface ParseContext {
path: (string | number)[];
issues: Issue[];
}