@dpkit/core
Version:
Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames
32 lines • 4.43 kB
JavaScript
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZS9wcm9jZXNzL25vcm1hbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUUzRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLFVBQXNCLEVBQ3RCLE9BRUM7SUFFRCxVQUFVLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUVuRCxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUM1QixrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDdkMscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUE7SUFFakMsT0FBTyxVQUFVLENBQUE7QUFDbkIsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsVUFBc0I7SUFDOUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUE7QUFDL0QsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQ3pCLFVBQXNCLEVBQ3RCLE9BRUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDeEMsVUFBVSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQW9CLEVBQUUsRUFBRSxDQUN2RSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQzVELENBQUE7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsVUFBc0I7SUFDbkQsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQTtJQUM1QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEIsT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUNoQyxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUE7WUFDN0IsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxXQUFXLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQzFCLFdBQVcsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFBO1lBQzlCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERlc2NyaXB0b3IgfSBmcm9tIFwiLi4vLi4vZ2VuZXJhbC9pbmRleC50c1wiXG5pbXBvcnQgeyBub3JtYWxpemVSZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZS9pbmRleC50c1wiXG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQYWNrYWdlKFxuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICBvcHRpb25zOiB7XG4gICAgYmFzZXBhdGg/OiBzdHJpbmdcbiAgfSxcbikge1xuICBkZXNjcmlwdG9yID0gZ2xvYmFsVGhpcy5zdHJ1Y3R1cmVkQ2xvbmUoZGVzY3JpcHRvcilcblxuICBub3JtYWxpemVQcm9maWxlKGRlc2NyaXB0b3IpXG4gIG5vcm1hbGl6ZVJlc291cmNlcyhkZXNjcmlwdG9yLCBvcHRpb25zKVxuICBub3JtYWxpemVDb250cmlidXRvcnMoZGVzY3JpcHRvcilcblxuICByZXR1cm4gZGVzY3JpcHRvclxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVQcm9maWxlKGRlc2NyaXB0b3I6IERlc2NyaXB0b3IpIHtcbiAgZGVzY3JpcHRvci4kc2NoZW1hID0gZGVzY3JpcHRvci4kc2NoZW1hID8/IGRlc2NyaXB0b3IucHJvZmlsZVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVSZXNvdXJjZXMoXG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3IsXG4gIG9wdGlvbnM6IHtcbiAgICBiYXNlcGF0aD86IHN0cmluZ1xuICB9LFxuKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGRlc2NyaXB0b3IucmVzb3VyY2VzKSkge1xuICAgIGRlc2NyaXB0b3IucmVzb3VyY2VzID0gZGVzY3JpcHRvci5yZXNvdXJjZXMubWFwKChyZXNvdXJjZTogRGVzY3JpcHRvcikgPT5cbiAgICAgIG5vcm1hbGl6ZVJlc291cmNlKHJlc291cmNlLCB7IGJhc2VwYXRoOiBvcHRpb25zLmJhc2VwYXRoIH0pLFxuICAgIClcbiAgfVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVDb250cmlidXRvcnMoZGVzY3JpcHRvcjogRGVzY3JpcHRvcikge1xuICBjb25zdCBjb250cmlidXRvcnMgPSBkZXNjcmlwdG9yLmNvbnRyaWJ1dG9yc1xuICBpZiAoIWNvbnRyaWJ1dG9ycykge1xuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoY29udHJpYnV0b3JzKSkge1xuICAgIGZvciAoY29uc3QgY29udHJpYnV0b3Igb2YgY29udHJpYnV0b3JzKSB7XG4gICAgICBjb25zdCByb2xlID0gY29udHJpYnV0b3Iucm9sZVxuICAgICAgaWYgKHJvbGUpIHtcbiAgICAgICAgY29udHJpYnV0b3Iucm9sZXMgPSBbcm9sZV1cbiAgICAgICAgY29udHJpYnV0b3Iucm9sZSA9IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19