ajv-formats

ajv-formats: JSON Schema Format Validators for Ajv v8+

Library
npm
v3.0.1
228 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
42 /100 Fair
Development Activity 0
Maintenance 32
Community 56
Maturity 60
Momentum 20

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
73 /100 Good
Architecture 70
Code Quality 78
Innovation 68
Learning Curve 75

ajv-formats plugs a full set of JSON Schema string format validators into Ajv, the widely used JSON Schema validator for JavaScript and TypeScript. Rather than writing custom regex or ad-hoc checks for values like dates, emails, and UUIDs, developers register this plugin once and get spec-compliant format keyword validation across their whole schema set.

The package ships both a full and a fast validation mode, plus companion comparison keywords (formatMinimum, formatMaximum, and their exclusive variants) for ordering constraints on formatted strings such as dates and times. It has no runtime dependency beyond Ajv itself, making it a lightweight drop-in for any project already validating JSON Schemas.

What You Get

  • Over 20 predefined JSON Schema formats: date, time, date-time, duration, uri, uri-reference, uri-template, email, hostname, ipv4, ipv6, regex, uuid, json-pointer, and more
  • A mode option (“full” or “fast”) to trade strict RFC compliance for faster, simplified regex checks in performance-sensitive paths
  • Comparison keywords formatMinimum/formatMaximum/formatExclusiveMinimum/formatExclusiveMaximum for range constraints on ordered formats like dates and times
  • A formats.get() accessor for reusing a single format validator function outside of an Ajv instance
  • Zero required runtime dependencies beyond Ajv, keeping bundle size and supply-chain surface small

Common Use Cases

  • Validating REST or GraphQL API request bodies where fields like email, date-time, or uuid must match a precise external format
  • Enforcing OpenAPI 3.0 data-type formats (int32, int64, float, double, byte, binary, password) when validating schemas generated from an OpenAPI spec
  • Adding date/time range checks (e.g. a startDate must be before an endDate) using the formatMinimum/formatMaximum keywords
  • Selectively whitelisting only a handful of formats (e.g. just "date" and "time") to keep validation footprint minimal in constrained environments

Under The Hood

Architecture ajv-formats is a single default-export function (formatsPlugin in src/index.ts) that Ajv’s plugin convention calls with an Ajv instance and an options object; it looks up either the fullFormats or fastFormats table exported from src/formats.ts and registers each named format via ajv.addFormat(), optionally also wiring the comparison keywords defined in src/limit.ts. Tech Stack The codebase is a small TypeScript project (three source files, ~430 lines) built with tsc, tested with Jest against the shared JSON-Schema-Test-Suite fixtures, and linted with ESLint/Prettier via the @ajv-validator/config shared config; its only runtime dependency is a peer dependency on ajv itself. Code Quality Tests are thorough for the package’s scope: tests/index.spec.ts, tests/formatLimit.spec.ts, and a json-schema.spec.js runner exercise every format against the official JSON-Schema-Test-Suite submodule, and CI (npm test) chains prettier-check, build, eslint, and coverage before allowing a commit via a Husky pre-commit hook. Code is typed throughout with explicit interfaces (FormatsPlugin, FormatOptions) rather than any. API Design The public surface is intentionally minimal: a single function call (addFormats(ajv, options)) with a well-documented options object supporting an array shorthand or an object form, plus a static .get() accessor for reusing one validator function outside of Ajv. This keeps onboarding friction low but the format-name union type and mode-switching options require reading the README to discover, since types alone don’t convey the RFC-source-per-format nuance.

Used by 25 apps in this directory

Ruby
66%
Other

GitLab

Developer Tools · Devops

24,537

The complete DevOps platform that unifies Git hosting, CI/CD, issue tracking, and security scanning into a single self-hostable application.

View details
87
Repo Health
86
Technical
65
Dependency
Built with
Ruby 66%
JavaScript 20%
Updated 1 weeks ago
TypeScript
98%
Other

Kibana

Analytics · Monitoring

21,338

Your open source window into the Elastic Stack — query, visualize, and act on data stored in Elasticsearch with real-time dashboards, AI-assisted search, and automated alerting.

View details
98
Repo Health
87
Technical
63
Dependency
Built with
TypeScript 98%
Updated 6 days ago
TypeScript
98%
MIT

Kimi Code CLI

AI Agents · AI Code Assistants · Developer Tools

7,983

A single-binary, terminal-native coding agent that reads, edits, and runs code end to end, built by Moonshot AI for Kimi models but pluggable with Anthropic, OpenAI, and Google providers too.

View details
83
Repo Health
87
Technical
67
Dependency
Built with
TypeScript 98%
Updated 1 weeks ago
TypeScript
96%
Other

Langfuse

AI Development · Monitoring

36,276

Open source AI engineering platform for LLM observability, prompt management, evaluation, and debugging — self-host in minutes or use Langfuse Cloud.

View details
92
Repo Health
81
Technical
65
Dependency
Built with
TypeScript 96%
Updated 6 days ago
TypeScript
97%
Other

Lightdash

Analytics · Data Engineering

6,196

The open-source Looker alternative that turns your dbt project's metrics and dimensions into governed, self-serve charts and dashboards — no license key required.

View details
93
Repo Health
84
Technical
64
Dependency
Built with
TypeScript 97%
Updated 6 days ago
JavaScript
55%
Other

Lokus

Knowledge Management · Note Taking

829

Local-first note-taking with graph view, canvas & AI plugins—your Markdown files, zero telemetry, blazing-fast Rust performance.

View details
75
Repo Health
75
Technical
64
Dependency
Built with
JavaScript 55%
HTML 21%
Rust 12%
Updated 2 months ago
TypeScript
97%
Other

nango

Authentication · Automation · Developer Tools

12,963

Build product integrations with AI using 800+ APIs — auth, proxy, and TypeScript functions on production-grade infrastructure.

View details
94
Repo Health
85
Technical
67
Dependency
Built with
TypeScript 97%
Updated 1 weeks ago
TypeScript
65%
Other

NocoDB

Databases · Low Code Platforms · No Code Platforms

65,340

Turn any SQL database into a collaborative no-code spreadsheet with automatic REST APIs and real-time views.

View details
91
Repo Health
77
Technical
63
Dependency
Built with
TypeScript 65%
Vue 30%
Updated 6 days ago
TypeScript
98%
Other

Novu

Developer Tools

40,195

Open-source communication infrastructure that connects your products and AI agents to every channel your users live on — Inbox, Email, SMS, Push, Chat, and more.

View details
93
Repo Health
80
Technical
64
Dependency
Built with
TypeScript 98%
Updated 6 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers