UNPKG

@dpkit/core

Version:

Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames

25 lines (21 loc) 693 B
import type { MetadataError } from "../../error/index.ts" import { ajv } from "../profile/ajv.ts" import type { Descriptor } from "./Descriptor.ts" /** * Validate a descriptor (JSON Object) against a JSON Schema * It uses Ajv for JSON Schema validation under the hood * It returns a list of errors (empty if valid) */ export async function validateDescriptor( descriptor: Descriptor, options: { profile: Descriptor }, ) { const validate = await ajv.compileAsync(options.profile) const valid = validate(descriptor) const errors: MetadataError[] = validate.errors ? validate.errors?.map(error => ({ ...error, type: "metadata" })) : [] return { valid, errors } }