import { Ajv as _Ajv } from 'ajv'; import addFormats from 'ajv-formats'; export type addFormatsType = (ajv: _Ajv) => void; // Singleton Ajv instance export type AjvType = typeof _Ajv & { addFormats: addFormatsType }; export const Ajv: AjvType = (globalThis as { Ajv?: AjvType })?.Ajv || (() => { const __Ajv = _Ajv; (__Ajv as unknown as AjvType).addFormats = addFormats as unknown as addFormatsType; return __Ajv as AjvType; })(); export const ajv = new Ajv({ allErrors: true, allowUnionTypes: true, }); Ajv.addFormats(ajv);