import type {KeywordErrorDefinition, KeywordErrorCxt, ErrorObject} from "../../types" import {_, Code} from "../../compile/codegen" export type _JTDTypeError = ErrorObject< K, {type: T; nullable: boolean}, S > export function typeError(t: string): KeywordErrorDefinition { return { message: (cxt) => typeErrorMessage(cxt, t), params: (cxt) => typeErrorParams(cxt, t), } } export function typeErrorMessage({parentSchema}: KeywordErrorCxt, t: string): string { return parentSchema?.nullable ? `must be ${t} or null` : `must be ${t}` } export function typeErrorParams({parentSchema}: KeywordErrorCxt, t: string): Code { return _`{type: ${t}, nullable: ${!!parentSchema?.nullable}}` }