Server IP : 92.205.26.207 / Your IP : 216.73.216.16 Web Server : Apache System : Linux 207.26.205.92.host.secureserver.net 4.18.0-553.60.1.el8_10.x86_64 #1 SMP Thu Jul 10 04:01:16 EDT 2025 x86_64 User : zikryat ( 1002) PHP Version : 8.3.23 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/zikryat/public_html/node_modules/ajv-formats/src/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
import { DefinedFormats, FormatMode, FormatName, formatNames, fastFormats, fullFormats, } from "./formats" import formatLimit from "./limit" import type Ajv from "ajv" import type {Plugin, Format} from "ajv" import {_, Name} from "ajv/dist/compile/codegen" export {FormatMode, FormatName} from "./formats" export {LimitFormatError} from "./limit" export interface FormatOptions { mode?: FormatMode formats?: FormatName[] keywords?: boolean } export type FormatsPluginOptions = FormatName[] | FormatOptions export interface FormatsPlugin extends Plugin<FormatsPluginOptions> { get: (format: FormatName, mode?: FormatMode) => Format } const fullName = new Name("fullFormats") const fastName = new Name("fastFormats") const formatsPlugin: FormatsPlugin = ( ajv: Ajv, opts: FormatsPluginOptions = {keywords: true} ): Ajv => { if (Array.isArray(opts)) { addFormats(ajv, opts, fullFormats, fullName) return ajv } const [formats, exportName] = opts.mode === "fast" ? [fastFormats, fastName] : [fullFormats, fullName] const list = opts.formats || formatNames addFormats(ajv, list, formats, exportName) if (opts.keywords) formatLimit(ajv) return ajv } formatsPlugin.get = (name: FormatName, mode: FormatMode = "full"): Format => { const formats = mode === "fast" ? fastFormats : fullFormats const f = formats[name] if (!f) throw new Error(`Unknown format "${name}"`) return f } function addFormats(ajv: Ajv, list: FormatName[], fs: DefinedFormats, exportName: Name): void { ajv.opts.code.formats ??= _`require("ajv-formats/dist/formats").${exportName}` for (const f of list) ajv.addFormat(f, fs[f]) } module.exports = exports = formatsPlugin Object.defineProperty(exports, "__esModule", {value: true}) export default formatsPlugin