index.ts 947 B

1234567891011121314151617181920212223242526272829
  1. import type Ajv from "../../core"
  2. import type {AnySchemaObject} from "../../types"
  3. import * as metaSchema from "./schema.json"
  4. import * as metaApplicator from "./meta/applicator.json"
  5. import * as metaContent from "./meta/content.json"
  6. import * as metaCore from "./meta/core.json"
  7. import * as metaFormat from "./meta/format.json"
  8. import * as metaMetadata from "./meta/meta-data.json"
  9. import * as metaValidation from "./meta/validation.json"
  10. const META_SUPPORT_DATA = ["/properties"]
  11. export default function addMetaSchema2019(this: Ajv, $data?: boolean): Ajv {
  12. ;[
  13. metaSchema,
  14. metaApplicator,
  15. metaContent,
  16. metaCore,
  17. with$data(this, metaFormat),
  18. metaMetadata,
  19. with$data(this, metaValidation),
  20. ].forEach((sch) => this.addMetaSchema(sch, undefined, false))
  21. return this
  22. function with$data(ajv: Ajv, sch: AnySchemaObject): AnySchemaObject {
  23. return $data ? ajv.$dataMetaSchema(sch, META_SUPPORT_DATA) : sch
  24. }
  25. }