UNPKG

@sjsf/ajv8-validator

Version:

The ajv-8 based validator for svelte-jsonschema-form

23 lines (22 loc) 1.09 kB
import { ADDITIONAL_PROPERTY_FLAG } from "@sjsf/form/core"; export const DEFAULT_AJV_CONFIG = { allErrors: true, multipleOfPrecision: 8, strict: false, verbose: true, discriminator: true, }; export const COLOR_FORMAT_REGEX = /^(#?([0-9A-Fa-f]{3}){1,2}\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\(\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*\))|(rgb\(\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*\)))$/; export const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/; export function addFormFormats(ajv) { ajv.addFormat("color", COLOR_FORMAT_REGEX); ajv.addFormat("data-url", DATA_URL_FORMAT_REGEX); return ajv; } export function addFormKeywords(ajv) { ajv.addKeyword(ADDITIONAL_PROPERTY_FLAG); return ajv; } export function addFormComponents(ajv) { return addFormKeywords(addFormFormats(ajv)); }