@dpkit/zenodo
Version:
Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames
43 lines • 5.75 kB
JavaScript
import { convertResourceFromZenodo } from "../../resource/index.js";
export function convertPackageFromZenodo(zenodoPackage) {
const datapackage = {
name: `record-${zenodoPackage.id}`,
resources: [],
};
const metadata = zenodoPackage.metadata;
datapackage.title = metadata.title;
datapackage.description = metadata.description;
if (metadata.version) {
datapackage.version = metadata.version;
}
if (zenodoPackage.files && zenodoPackage.files.length > 0) {
datapackage.resources = zenodoPackage.files.map(zenodoResource => convertResourceFromZenodo(zenodoResource));
}
if (metadata.license) {
const license = {
name: metadata.license,
};
datapackage.licenses = [license];
}
if (metadata.creators && metadata.creators.length > 0) {
const contributors = metadata.creators.map(creator => {
const contributor = {
title: creator.name,
role: "author",
};
if (creator.affiliation) {
contributor.path = creator.affiliation;
}
return contributor;
});
datapackage.contributors = contributors;
}
if (metadata.keywords && metadata.keywords.length > 0) {
datapackage.keywords = metadata.keywords;
}
if (metadata.publication_date) {
datapackage.created = metadata.publication_date;
}
return datapackage;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbVplbm9kby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2UvY29udmVydC9mcm9tWmVub2RvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBR25FLE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsYUFBNEI7SUFFNUIsTUFBTSxXQUFXLEdBQVk7UUFDM0IsSUFBSSxFQUFFLFVBQVUsYUFBYSxDQUFDLEVBQUUsRUFBRTtRQUNsQyxTQUFTLEVBQUUsRUFBRTtLQUNkLENBQUE7SUFFRCxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFBO0lBRXZDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQTtJQUNsQyxXQUFXLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUE7SUFFOUMsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsV0FBVyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFBO0lBQ3hDLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxLQUFLLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUQsV0FBVyxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUMvRCx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsQ0FDMUMsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyQixNQUFNLE9BQU8sR0FBWTtZQUN2QixJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU87U0FDdkIsQ0FBQTtRQUNELFdBQVcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RELE1BQU0sWUFBWSxHQUFrQixRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNsRSxNQUFNLFdBQVcsR0FBZ0I7Z0JBQy9CLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSTtnQkFDbkIsSUFBSSxFQUFFLFFBQVE7YUFDZixDQUFBO1lBRUQsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3hCLFdBQVcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQTtZQUN4QyxDQUFDO1lBRUQsT0FBTyxXQUFXLENBQUE7UUFDcEIsQ0FBQyxDQUFDLENBQUE7UUFFRixXQUFXLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtJQUN6QyxDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RELFdBQVcsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQTtJQUMxQyxDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM5QixXQUFXLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQTtJQUNqRCxDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUE7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29udHJpYnV0b3IsIExpY2Vuc2UsIFBhY2thZ2UgfSBmcm9tIFwiQGRwa2l0L2NvcmVcIlxuaW1wb3J0IHsgY29udmVydFJlc291cmNlRnJvbVplbm9kbyB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZS9pbmRleC50c1wiXG5pbXBvcnQgdHlwZSB7IFplbm9kb1BhY2thZ2UgfSBmcm9tIFwiLi4vUGFja2FnZS50c1wiXG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0UGFja2FnZUZyb21aZW5vZG8oXG4gIHplbm9kb1BhY2thZ2U6IFplbm9kb1BhY2thZ2UsXG4pOiBQYWNrYWdlIHtcbiAgY29uc3QgZGF0YXBhY2thZ2U6IFBhY2thZ2UgPSB7XG4gICAgbmFtZTogYHJlY29yZC0ke3plbm9kb1BhY2thZ2UuaWR9YCxcbiAgICByZXNvdXJjZXM6IFtdLFxuICB9XG5cbiAgY29uc3QgbWV0YWRhdGEgPSB6ZW5vZG9QYWNrYWdlLm1ldGFkYXRhXG5cbiAgZGF0YXBhY2thZ2UudGl0bGUgPSBtZXRhZGF0YS50aXRsZVxuICBkYXRhcGFja2FnZS5kZXNjcmlwdGlvbiA9IG1ldGFkYXRhLmRlc2NyaXB0aW9uXG5cbiAgaWYgKG1ldGFkYXRhLnZlcnNpb24pIHtcbiAgICBkYXRhcGFja2FnZS52ZXJzaW9uID0gbWV0YWRhdGEudmVyc2lvblxuICB9XG5cbiAgaWYgKHplbm9kb1BhY2thZ2UuZmlsZXMgJiYgemVub2RvUGFja2FnZS5maWxlcy5sZW5ndGggPiAwKSB7XG4gICAgZGF0YXBhY2thZ2UucmVzb3VyY2VzID0gemVub2RvUGFja2FnZS5maWxlcy5tYXAoemVub2RvUmVzb3VyY2UgPT5cbiAgICAgIGNvbnZlcnRSZXNvdXJjZUZyb21aZW5vZG8oemVub2RvUmVzb3VyY2UpLFxuICAgIClcbiAgfVxuXG4gIGlmIChtZXRhZGF0YS5saWNlbnNlKSB7XG4gICAgY29uc3QgbGljZW5zZTogTGljZW5zZSA9IHtcbiAgICAgIG5hbWU6IG1ldGFkYXRhLmxpY2Vuc2UsXG4gICAgfVxuICAgIGRhdGFwYWNrYWdlLmxpY2Vuc2VzID0gW2xpY2Vuc2VdXG4gIH1cblxuICBpZiAobWV0YWRhdGEuY3JlYXRvcnMgJiYgbWV0YWRhdGEuY3JlYXRvcnMubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGNvbnRyaWJ1dG9yczogQ29udHJpYnV0b3JbXSA9IG1ldGFkYXRhLmNyZWF0b3JzLm1hcChjcmVhdG9yID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyaWJ1dG9yOiBDb250cmlidXRvciA9IHtcbiAgICAgICAgdGl0bGU6IGNyZWF0b3IubmFtZSxcbiAgICAgICAgcm9sZTogXCJhdXRob3JcIixcbiAgICAgIH1cblxuICAgICAgaWYgKGNyZWF0b3IuYWZmaWxpYXRpb24pIHtcbiAgICAgICAgY29udHJpYnV0b3IucGF0aCA9IGNyZWF0b3IuYWZmaWxpYXRpb25cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9yXG4gICAgfSlcblxuICAgIGRhdGFwYWNrYWdlLmNvbnRyaWJ1dG9ycyA9IGNvbnRyaWJ1dG9yc1xuICB9XG5cbiAgaWYgKG1ldGFkYXRhLmtleXdvcmRzICYmIG1ldGFkYXRhLmtleXdvcmRzLmxlbmd0aCA+IDApIHtcbiAgICBkYXRhcGFja2FnZS5rZXl3b3JkcyA9IG1ldGFkYXRhLmtleXdvcmRzXG4gIH1cblxuICBpZiAobWV0YWRhdGEucHVibGljYXRpb25fZGF0ZSkge1xuICAgIGRhdGFwYWNrYWdlLmNyZWF0ZWQgPSBtZXRhZGF0YS5wdWJsaWNhdGlvbl9kYXRlXG4gIH1cblxuICByZXR1cm4gZGF0YXBhY2thZ2Vcbn1cbiJdfQ==