@dpkit/zenodo
Version:
Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames
79 lines • 8.59 kB
JavaScript
export function convertPackageToZenodo(dataPackage) {
const metadata = {
upload_type: "dataset",
};
if (dataPackage.title) {
metadata.title = dataPackage.title;
}
if (dataPackage.description) {
metadata.description = dataPackage.description;
}
else if (dataPackage.title) {
metadata.description = dataPackage.title;
}
else {
metadata.description = "Dataset created with @dpkit/zenodo";
}
if (dataPackage.version) {
metadata.version = dataPackage.version;
}
if (dataPackage.licenses && dataPackage.licenses.length > 0) {
const license = dataPackage.licenses[0];
if (license?.name) {
metadata.license = license.name;
}
}
if (dataPackage.contributors && dataPackage.contributors.length > 0) {
const creators = [];
const authors = dataPackage.contributors.filter(c => c.role === "author");
if (authors.length > 0) {
authors.forEach(author => {
const creator = {
name: author.title,
};
if (author.path) {
creator.affiliation = author.path;
}
creators.push(creator);
});
}
else {
const firstContributor = dataPackage.contributors[0];
if (firstContributor) {
const creator = {
name: firstContributor.title,
};
if (firstContributor.path) {
creator.affiliation = firstContributor.path;
}
creators.push(creator);
}
}
if (creators.length > 0) {
metadata.creators = creators;
}
else {
metadata.creators = [
{
name: "Unknown Author",
affiliation: "Unknown Affiliation",
},
];
}
}
else {
metadata.creators = [
{
name: "Unknown Author",
affiliation: "Unknown Affiliation",
},
];
}
if (dataPackage.keywords && dataPackage.keywords.length > 0) {
metadata.keywords = dataPackage.keywords;
}
return {
metadata: metadata,
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9aZW5vZG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlL2NvbnZlcnQvdG9aZW5vZG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxXQUFvQjtJQUVwQixNQUFNLFFBQVEsR0FBdUM7UUFDbkQsV0FBVyxFQUFFLFNBQVM7S0FDdkIsQ0FBQTtJQUVELElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLFFBQVEsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQTtJQUNwQyxDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUIsUUFBUSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFBO0lBQ2hELENBQUM7U0FBTSxJQUFJLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixRQUFRLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUE7SUFDMUMsQ0FBQztTQUFNLENBQUM7UUFDTixRQUFRLENBQUMsV0FBVyxHQUFHLG9DQUFvQyxDQUFBO0lBQzdELENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QixRQUFRLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUE7SUFDeEMsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLFFBQVEsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1RCxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3ZDLElBQUksT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2xCLFFBQVEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQTtRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLFlBQVksSUFBSSxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNwRSxNQUFNLFFBQVEsR0FBb0IsRUFBRSxDQUFBO1FBRXBDLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQTtRQUN6RSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxPQUFPLEdBQWtCO29CQUM3QixJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUs7aUJBQ25CLENBQUE7Z0JBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ2hCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQTtnQkFDbkMsQ0FBQztnQkFFRCxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3hCLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDcEQsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNyQixNQUFNLE9BQU8sR0FBa0I7b0JBQzdCLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO2lCQUM3QixDQUFBO2dCQUVELElBQUksZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQzFCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFBO2dCQUM3QyxDQUFDO2dCQUVELFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDeEIsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEIsUUFBUSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTixRQUFRLENBQUMsUUFBUSxHQUFHO2dCQUNsQjtvQkFDRSxJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixXQUFXLEVBQUUscUJBQXFCO2lCQUNuQzthQUNGLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixRQUFRLENBQUMsUUFBUSxHQUFHO1lBQ2xCO2dCQUNFLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLFdBQVcsRUFBRSxxQkFBcUI7YUFDbkM7U0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLFFBQVEsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1RCxRQUFRLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUE7SUFDMUMsQ0FBQztJQUVELE9BQU87UUFDTCxRQUFRLEVBQUUsUUFBcUM7S0FDaEQsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhY2thZ2UgfSBmcm9tIFwiQGRwa2l0L2NvcmVcIlxuaW1wb3J0IHR5cGUgeyBaZW5vZG9DcmVhdG9yIH0gZnJvbSBcIi4uL0NyZWF0b3IudHNcIlxuaW1wb3J0IHR5cGUgeyBaZW5vZG9QYWNrYWdlIH0gZnJvbSBcIi4uL1BhY2thZ2UudHNcIlxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFBhY2thZ2VUb1plbm9kbyhcbiAgZGF0YVBhY2thZ2U6IFBhY2thZ2UsXG4pOiBQYXJ0aWFsPFplbm9kb1BhY2thZ2U+IHtcbiAgY29uc3QgbWV0YWRhdGE6IFBhcnRpYWw8WmVub2RvUGFja2FnZVtcIm1ldGFkYXRhXCJdPiA9IHtcbiAgICB1cGxvYWRfdHlwZTogXCJkYXRhc2V0XCIsXG4gIH1cblxuICBpZiAoZGF0YVBhY2thZ2UudGl0bGUpIHtcbiAgICBtZXRhZGF0YS50aXRsZSA9IGRhdGFQYWNrYWdlLnRpdGxlXG4gIH1cblxuICBpZiAoZGF0YVBhY2thZ2UuZGVzY3JpcHRpb24pIHtcbiAgICBtZXRhZGF0YS5kZXNjcmlwdGlvbiA9IGRhdGFQYWNrYWdlLmRlc2NyaXB0aW9uXG4gIH0gZWxzZSBpZiAoZGF0YVBhY2thZ2UudGl0bGUpIHtcbiAgICBtZXRhZGF0YS5kZXNjcmlwdGlvbiA9IGRhdGFQYWNrYWdlLnRpdGxlXG4gIH0gZWxzZSB7XG4gICAgbWV0YWRhdGEuZGVzY3JpcHRpb24gPSBcIkRhdGFzZXQgY3JlYXRlZCB3aXRoIEBkcGtpdC96ZW5vZG9cIlxuICB9XG5cbiAgaWYgKGRhdGFQYWNrYWdlLnZlcnNpb24pIHtcbiAgICBtZXRhZGF0YS52ZXJzaW9uID0gZGF0YVBhY2thZ2UudmVyc2lvblxuICB9XG5cbiAgaWYgKGRhdGFQYWNrYWdlLmxpY2Vuc2VzICYmIGRhdGFQYWNrYWdlLmxpY2Vuc2VzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBsaWNlbnNlID0gZGF0YVBhY2thZ2UubGljZW5zZXNbMF1cbiAgICBpZiAobGljZW5zZT8ubmFtZSkge1xuICAgICAgbWV0YWRhdGEubGljZW5zZSA9IGxpY2Vuc2UubmFtZVxuICAgIH1cbiAgfVxuXG4gIGlmIChkYXRhUGFja2FnZS5jb250cmlidXRvcnMgJiYgZGF0YVBhY2thZ2UuY29udHJpYnV0b3JzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBjcmVhdG9yczogWmVub2RvQ3JlYXRvcltdID0gW11cblxuICAgIGNvbnN0IGF1dGhvcnMgPSBkYXRhUGFja2FnZS5jb250cmlidXRvcnMuZmlsdGVyKGMgPT4gYy5yb2xlID09PSBcImF1dGhvclwiKVxuICAgIGlmIChhdXRob3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF1dGhvcnMuZm9yRWFjaChhdXRob3IgPT4ge1xuICAgICAgICBjb25zdCBjcmVhdG9yOiBaZW5vZG9DcmVhdG9yID0ge1xuICAgICAgICAgIG5hbWU6IGF1dGhvci50aXRsZSxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhdXRob3IucGF0aCkge1xuICAgICAgICAgIGNyZWF0b3IuYWZmaWxpYXRpb24gPSBhdXRob3IucGF0aFxuICAgICAgICB9XG5cbiAgICAgICAgY3JlYXRvcnMucHVzaChjcmVhdG9yKVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZmlyc3RDb250cmlidXRvciA9IGRhdGFQYWNrYWdlLmNvbnRyaWJ1dG9yc1swXVxuICAgICAgaWYgKGZpcnN0Q29udHJpYnV0b3IpIHtcbiAgICAgICAgY29uc3QgY3JlYXRvcjogWmVub2RvQ3JlYXRvciA9IHtcbiAgICAgICAgICBuYW1lOiBmaXJzdENvbnRyaWJ1dG9yLnRpdGxlLFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpcnN0Q29udHJpYnV0b3IucGF0aCkge1xuICAgICAgICAgIGNyZWF0b3IuYWZmaWxpYXRpb24gPSBmaXJzdENvbnRyaWJ1dG9yLnBhdGhcbiAgICAgICAgfVxuXG4gICAgICAgIGNyZWF0b3JzLnB1c2goY3JlYXRvcilcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3JlYXRvcnMubGVuZ3RoID4gMCkge1xuICAgICAgbWV0YWRhdGEuY3JlYXRvcnMgPSBjcmVhdG9yc1xuICAgIH0gZWxzZSB7XG4gICAgICBtZXRhZGF0YS5jcmVhdG9ycyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiVW5rbm93biBBdXRob3JcIixcbiAgICAgICAgICBhZmZpbGlhdGlvbjogXCJVbmtub3duIEFmZmlsaWF0aW9uXCIsXG4gICAgICAgIH0sXG4gICAgICBdXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG1ldGFkYXRhLmNyZWF0b3JzID0gW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcIlVua25vd24gQXV0aG9yXCIsXG4gICAgICAgIGFmZmlsaWF0aW9uOiBcIlVua25vd24gQWZmaWxpYXRpb25cIixcbiAgICAgIH0sXG4gICAgXVxuICB9XG5cbiAgaWYgKGRhdGFQYWNrYWdlLmtleXdvcmRzICYmIGRhdGFQYWNrYWdlLmtleXdvcmRzLmxlbmd0aCA+IDApIHtcbiAgICBtZXRhZGF0YS5rZXl3b3JkcyA9IGRhdGFQYWNrYWdlLmtleXdvcmRzXG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1ldGFkYXRhOiBtZXRhZGF0YSBhcyBaZW5vZG9QYWNrYWdlW1wibWV0YWRhdGFcIl0sXG4gIH1cbn1cbiJdfQ==