UNPKG

@dpkit/core

Version:

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

24 lines 3.62 kB
import { validateDescriptor } from "../general/index.js"; import { loadProfile } from "../general/index.js"; import { normalizePackage } from "./normalize.js"; const DEFAULT_PROFILE = "https://datapackage.org/profiles/1.0/datapackage.json"; /** * Validate a Package descriptor (JSON Object) against its profile */ export async function validatePackageDescriptor(source, options) { const descriptor = source; const $schema = typeof descriptor.$schema === "string" ? descriptor.$schema : DEFAULT_PROFILE; const profile = await loadProfile($schema); const { valid, errors } = await validateDescriptor(descriptor, { profile }); let dataPackage = undefined; if (valid) { // Validation + normalization = we can cast it dataPackage = normalizePackage(descriptor, { basepath: options?.basepath, }); } return { valid, errors, dataPackage }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9wYWNrYWdlL3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFakQsTUFBTSxlQUFlLEdBQUcsdURBQXVELENBQUE7QUFFL0U7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QixDQUM3QyxNQUE0QixFQUM1QixPQUVDO0lBRUQsTUFBTSxVQUFVLEdBQUcsTUFBb0IsQ0FBQTtJQUV2QyxNQUFNLE9BQU8sR0FDWCxPQUFPLFVBQVUsQ0FBQyxPQUFPLEtBQUssUUFBUTtRQUNwQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU87UUFDcEIsQ0FBQyxDQUFDLGVBQWUsQ0FBQTtJQUVyQixNQUFNLE9BQU8sR0FBRyxNQUFNLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMxQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sa0JBQWtCLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUUzRSxJQUFJLFdBQVcsR0FBd0IsU0FBUyxDQUFBO0lBQ2hELElBQUksS0FBSyxFQUFFLENBQUM7UUFDViw4Q0FBOEM7UUFDOUMsV0FBVyxHQUFHLGdCQUFnQixDQUFDLFVBQVUsRUFBRTtZQUN6QyxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVE7U0FDNUIsQ0FBdUIsQ0FBQTtJQUMxQixDQUFDO0lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUE7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGVzY3JpcHRvciwgdmFsaWRhdGVEZXNjcmlwdG9yIH0gZnJvbSBcIi4uL2dlbmVyYWwvaW5kZXgudHNcIlxuaW1wb3J0IHsgbG9hZFByb2ZpbGUgfSBmcm9tIFwiLi4vZ2VuZXJhbC9pbmRleC50c1wiXG5pbXBvcnQgdHlwZSB7IFBhY2thZ2UgfSBmcm9tIFwiLi9QYWNrYWdlLnRzXCJcbmltcG9ydCB7IG5vcm1hbGl6ZVBhY2thZ2UgfSBmcm9tIFwiLi9ub3JtYWxpemUudHNcIlxuXG5jb25zdCBERUZBVUxUX1BST0ZJTEUgPSBcImh0dHBzOi8vZGF0YXBhY2thZ2Uub3JnL3Byb2ZpbGVzLzEuMC9kYXRhcGFja2FnZS5qc29uXCJcblxuLyoqXG4gKiBWYWxpZGF0ZSBhIFBhY2thZ2UgZGVzY3JpcHRvciAoSlNPTiBPYmplY3QpIGFnYWluc3QgaXRzIHByb2ZpbGVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlUGFja2FnZURlc2NyaXB0b3IoXG4gIHNvdXJjZTogRGVzY3JpcHRvciB8IFBhY2thZ2UsXG4gIG9wdGlvbnM/OiB7XG4gICAgYmFzZXBhdGg/OiBzdHJpbmdcbiAgfSxcbikge1xuICBjb25zdCBkZXNjcmlwdG9yID0gc291cmNlIGFzIERlc2NyaXB0b3JcblxuICBjb25zdCAkc2NoZW1hID1cbiAgICB0eXBlb2YgZGVzY3JpcHRvci4kc2NoZW1hID09PSBcInN0cmluZ1wiXG4gICAgICA/IGRlc2NyaXB0b3IuJHNjaGVtYVxuICAgICAgOiBERUZBVUxUX1BST0ZJTEVcblxuICBjb25zdCBwcm9maWxlID0gYXdhaXQgbG9hZFByb2ZpbGUoJHNjaGVtYSlcbiAgY29uc3QgeyB2YWxpZCwgZXJyb3JzIH0gPSBhd2FpdCB2YWxpZGF0ZURlc2NyaXB0b3IoZGVzY3JpcHRvciwgeyBwcm9maWxlIH0pXG5cbiAgbGV0IGRhdGFQYWNrYWdlOiBQYWNrYWdlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4gIGlmICh2YWxpZCkge1xuICAgIC8vIFZhbGlkYXRpb24gKyBub3JtYWxpemF0aW9uID0gd2UgY2FuIGNhc3QgaXRcbiAgICBkYXRhUGFja2FnZSA9IG5vcm1hbGl6ZVBhY2thZ2UoZGVzY3JpcHRvciwge1xuICAgICAgYmFzZXBhdGg6IG9wdGlvbnM/LmJhc2VwYXRoLFxuICAgIH0pIGFzIHVua25vd24gYXMgUGFja2FnZVxuICB9XG5cbiAgcmV0dXJuIHsgdmFsaWQsIGVycm9ycywgZGF0YVBhY2thZ2UgfVxufVxuIl19