import { resolveTypeChecker } from "./resolveTypeChecker" import type { AnyType, TypeToData } from "./schemas" import type { TypeCheckError } from "./TypeCheckError" /** * Checks if a value conforms to a given type. * * @template T Type. * @param type Type to check for. * @param value Value to check. * @returns A TypeError if the check fails or null if no error. */ export function typeCheck(type: T, value: TypeToData): TypeCheckError | null { const typeChecker = resolveTypeChecker(type) if (typeChecker.unchecked || typeChecker.skipCheck) { return null } return typeChecker.check(value, [], value) }