npm.io
0.10.0 • Published 1 week agoCLI

@diplodoc/ajv

Licence
MIT
Version
0.10.0
Deps
1
Size
9.8 MB
Vulns
0
Weekly
0

english | русский


NPM version Quality Gate Status Coverage Maintainability Rating Reliability Rating Security Rating

@diplodoc/ajv

JSON schemas for Diplodoc configuration files (toc.yaml, presets.yaml, frontmatter, page-constructor, theme, redirects, leading pages, .yfm, .yfmlint). The schemas are enriched with editor metadata (markdownDescription, defaultSnippets, titles) so they power autocompletion and inline docs in editors such as the Diplodoc VS Code extension.

Install

npm install @diplodoc/ajv

Usage

import {schemas, tocSchema, type SchemaName} from '@diplodoc/ajv';

// the toc.yaml schema
console.log(tocSchema.title);

// or look one up by name
const name: SchemaName = 'presets-schema';
const schema = schemas[name];

The raw JSON files are also published and can be imported directly:

import tocSchema from '@diplodoc/ajv/schemas/toc-schema.json';

How schemas are maintained

  • Source of truth: src/yaml/*.yaml — full, ready-to-use schemas. Edit only the YAML.
  • Generated output: src/json/*.json — produced from the YAML by the build script. These are committed and shipped.

The build script does one thing: parse YAML and write JSON (formatted with Prettier). No overlays, no transformations.

npm run build:schemas          # regenerate src/json from src/yaml
# or, the exported CLI:
npx diplodoc-ajv-build-schemas

You never edit the JSON by hand. On every pull request the sync-schemas workflow regenerates the JSON from the YAML and commits the result back to the PR branch, so the JSON always matches the YAML.

Development

npm install
npm run build      # build:schemas + bundle + d.ts
npm test
npm run typecheck
npm run lint