UNPKG

@dpkit/zenodo

Version:

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

23 lines 2.96 kB
import { getFormat, getName } from "@dpkit/core"; /** * Normalizes a Zenodo file to Frictionless Data resource format * @param props Object containing the Zenodo file to normalize * @returns Normalized Resource object */ export function normalizeZenodoResource(zenodoResource) { const path = normalizeZenodoPath(zenodoResource.links.self); const resource = { path, name: getName(zenodoResource.key) ?? zenodoResource.id, format: getFormat(zenodoResource.key), bytes: zenodoResource.size, hash: zenodoResource.checksum, "zenodo:key": zenodoResource.key, "zenodo:url": path, }; return resource; } function normalizeZenodoPath(link) { return link.replace("/api/", "/").replace(/\/content$/, ""); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcmVzb3VyY2UvcHJvY2Vzcy9ub3JtYWxpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFHaEQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxjQUE4QjtJQUNwRSxNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRTNELE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSTtRQUNKLElBQUksRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxFQUFFO1FBQ3RELE1BQU0sRUFBRSxTQUFTLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztRQUNyQyxLQUFLLEVBQUUsY0FBYyxDQUFDLElBQUk7UUFDMUIsSUFBSSxFQUFFLGNBQWMsQ0FBQyxRQUFRO1FBQzdCLFlBQVksRUFBRSxjQUFjLENBQUMsR0FBRztRQUNoQyxZQUFZLEVBQUUsSUFBSTtLQUNuQixDQUFBO0lBRUQsT0FBTyxRQUFRLENBQUE7QUFDakIsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsSUFBWTtJQUN2QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUE7QUFDN0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEZvcm1hdCwgZ2V0TmFtZSB9IGZyb20gXCJAZHBraXQvY29yZVwiXG5pbXBvcnQgdHlwZSB7IFplbm9kb1Jlc291cmNlIH0gZnJvbSBcIi4uL1Jlc291cmNlLnRzXCJcblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgWmVub2RvIGZpbGUgdG8gRnJpY3Rpb25sZXNzIERhdGEgcmVzb3VyY2UgZm9ybWF0XG4gKiBAcGFyYW0gcHJvcHMgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIFplbm9kbyBmaWxlIHRvIG5vcm1hbGl6ZVxuICogQHJldHVybnMgTm9ybWFsaXplZCBSZXNvdXJjZSBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVplbm9kb1Jlc291cmNlKHplbm9kb1Jlc291cmNlOiBaZW5vZG9SZXNvdXJjZSkge1xuICBjb25zdCBwYXRoID0gbm9ybWFsaXplWmVub2RvUGF0aCh6ZW5vZG9SZXNvdXJjZS5saW5rcy5zZWxmKVxuXG4gIGNvbnN0IHJlc291cmNlID0ge1xuICAgIHBhdGgsXG4gICAgbmFtZTogZ2V0TmFtZSh6ZW5vZG9SZXNvdXJjZS5rZXkpID8/IHplbm9kb1Jlc291cmNlLmlkLFxuICAgIGZvcm1hdDogZ2V0Rm9ybWF0KHplbm9kb1Jlc291cmNlLmtleSksXG4gICAgYnl0ZXM6IHplbm9kb1Jlc291cmNlLnNpemUsXG4gICAgaGFzaDogemVub2RvUmVzb3VyY2UuY2hlY2tzdW0sXG4gICAgXCJ6ZW5vZG86a2V5XCI6IHplbm9kb1Jlc291cmNlLmtleSxcbiAgICBcInplbm9kbzp1cmxcIjogcGF0aCxcbiAgfVxuXG4gIHJldHVybiByZXNvdXJjZVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVaZW5vZG9QYXRoKGxpbms6IHN0cmluZykge1xuICByZXR1cm4gbGluay5yZXBsYWNlKFwiL2FwaS9cIiwgXCIvXCIpLnJlcGxhY2UoL1xcL2NvbnRlbnQkLywgXCJcIilcbn1cbiJdfQ==