UNPKG

@dpkit/core

Version:

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

32 lines 4.41 kB
import { normalizeResource } from "../resource/index.js"; export function normalizePackage(descriptor, options) { descriptor = globalThis.structuredClone(descriptor); normalizeProfile(descriptor); normalizeResources(descriptor, options); normalizeContributors(descriptor); return descriptor; } function normalizeProfile(descriptor) { descriptor.$schema = descriptor.$schema ?? descriptor.profile; } function normalizeResources(descriptor, options) { if (Array.isArray(descriptor.resources)) { descriptor.resources = descriptor.resources.map((resource) => normalizeResource(resource, { basepath: options.basepath })); } } function normalizeContributors(descriptor) { const contributors = descriptor.contributors; if (!contributors) { return; } if (Array.isArray(contributors)) { for (const contributor of contributors) { const role = contributor.role; if (role) { contributor.roles = [role]; contributor.role = undefined; } } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcGFja2FnZS9ub3JtYWxpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFeEQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixVQUFzQixFQUN0QixPQUVDO0lBRUQsVUFBVSxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUE7SUFFbkQsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDNUIsa0JBQWtCLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3ZDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRWpDLE9BQU8sVUFBVSxDQUFBO0FBQ25CLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLFVBQXNCO0lBQzlDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFBO0FBQy9ELENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUN6QixVQUFzQixFQUN0QixPQUVDO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3hDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFvQixFQUFFLEVBQUUsQ0FDdkUsaUJBQWlCLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUM1RCxDQUFBO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLFVBQXNCO0lBQ25ELE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUE7SUFDNUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xCLE9BQU07SUFDUixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDaEMsS0FBSyxNQUFNLFdBQVcsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUN2QyxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFBO1lBQzdCLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsV0FBVyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUMxQixXQUFXLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQTtZQUM5QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXNjcmlwdG9yIH0gZnJvbSBcIi4uL2dlbmVyYWwvaW5kZXgudHNcIlxuaW1wb3J0IHsgbm9ybWFsaXplUmVzb3VyY2UgfSBmcm9tIFwiLi4vcmVzb3VyY2UvaW5kZXgudHNcIlxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUGFja2FnZShcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcixcbiAgb3B0aW9uczoge1xuICAgIGJhc2VwYXRoPzogc3RyaW5nXG4gIH0sXG4pIHtcbiAgZGVzY3JpcHRvciA9IGdsb2JhbFRoaXMuc3RydWN0dXJlZENsb25lKGRlc2NyaXB0b3IpXG5cbiAgbm9ybWFsaXplUHJvZmlsZShkZXNjcmlwdG9yKVxuICBub3JtYWxpemVSZXNvdXJjZXMoZGVzY3JpcHRvciwgb3B0aW9ucylcbiAgbm9ybWFsaXplQ29udHJpYnV0b3JzKGRlc2NyaXB0b3IpXG5cbiAgcmV0dXJuIGRlc2NyaXB0b3Jcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplUHJvZmlsZShkZXNjcmlwdG9yOiBEZXNjcmlwdG9yKSB7XG4gIGRlc2NyaXB0b3IuJHNjaGVtYSA9IGRlc2NyaXB0b3IuJHNjaGVtYSA/PyBkZXNjcmlwdG9yLnByb2ZpbGVcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplUmVzb3VyY2VzKFxuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICBvcHRpb25zOiB7XG4gICAgYmFzZXBhdGg/OiBzdHJpbmdcbiAgfSxcbikge1xuICBpZiAoQXJyYXkuaXNBcnJheShkZXNjcmlwdG9yLnJlc291cmNlcykpIHtcbiAgICBkZXNjcmlwdG9yLnJlc291cmNlcyA9IGRlc2NyaXB0b3IucmVzb3VyY2VzLm1hcCgocmVzb3VyY2U6IERlc2NyaXB0b3IpID0+XG4gICAgICBub3JtYWxpemVSZXNvdXJjZShyZXNvdXJjZSwgeyBiYXNlcGF0aDogb3B0aW9ucy5iYXNlcGF0aCB9KSxcbiAgICApXG4gIH1cbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplQ29udHJpYnV0b3JzKGRlc2NyaXB0b3I6IERlc2NyaXB0b3IpIHtcbiAgY29uc3QgY29udHJpYnV0b3JzID0gZGVzY3JpcHRvci5jb250cmlidXRvcnNcbiAgaWYgKCFjb250cmlidXRvcnMpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KGNvbnRyaWJ1dG9ycykpIHtcbiAgICBmb3IgKGNvbnN0IGNvbnRyaWJ1dG9yIG9mIGNvbnRyaWJ1dG9ycykge1xuICAgICAgY29uc3Qgcm9sZSA9IGNvbnRyaWJ1dG9yLnJvbGVcbiAgICAgIGlmIChyb2xlKSB7XG4gICAgICAgIGNvbnRyaWJ1dG9yLnJvbGVzID0gW3JvbGVdXG4gICAgICAgIGNvbnRyaWJ1dG9yLnJvbGUgPSB1bmRlZmluZWRcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==