UNPKG

@dpkit/github

Version:

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

24 lines 3.54 kB
import { getFilename, getFormat, getName } from "@dpkit/core"; export function convertResourceFromGithub(githubResource, options) { const path = convertPath({ ...githubResource, ref: options.defaultBranch, }); const filename = getFilename(path); const resource = { path, name: getName(filename) ?? githubResource.sha, bytes: githubResource.size, hash: `sha1:${githubResource.sha}`, format: getFormat(filename), "github:key": githubResource.path, "github:url": path, }; return resource; } function convertPath(options) { const url = new URL(options.url); const [owner, repo] = url.pathname.split("/").slice(2); return `https://raw.githubusercontent.com/${owner}/${repo}/refs/heads/${options.ref}/${options.path}`; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUdpdGh1Yi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Jlc291cmNlL2NvbnZlcnQvZnJvbUdpdGh1Yi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFHN0QsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxjQUE4QixFQUM5QixPQUVDO0lBRUQsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDO1FBQ3ZCLEdBQUcsY0FBYztRQUNqQixHQUFHLEVBQUUsT0FBTyxDQUFDLGFBQWE7S0FDM0IsQ0FBQyxDQUFBO0lBRUYsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2xDLE1BQU0sUUFBUSxHQUFhO1FBQ3pCLElBQUk7UUFDSixJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxHQUFHO1FBQzdDLEtBQUssRUFBRSxjQUFjLENBQUMsSUFBSTtRQUMxQixJQUFJLEVBQUUsUUFBUSxjQUFjLENBQUMsR0FBRyxFQUFFO1FBQ2xDLE1BQU0sRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQzNCLFlBQVksRUFBRSxjQUFjLENBQUMsSUFBSTtRQUNqQyxZQUFZLEVBQUUsSUFBSTtLQUNuQixDQUFBO0lBRUQsT0FBTyxRQUFRLENBQUE7QUFDakIsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLE9BSXBCO0lBQ0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2hDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3RELE9BQU8scUNBQXFDLEtBQUssSUFBSSxJQUFJLGVBQWUsT0FBTyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7QUFDdkcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVzb3VyY2UgfSBmcm9tIFwiQGRwa2l0L2NvcmVcIlxuaW1wb3J0IHsgZ2V0RmlsZW5hbWUsIGdldEZvcm1hdCwgZ2V0TmFtZSB9IGZyb20gXCJAZHBraXQvY29yZVwiXG5pbXBvcnQgdHlwZSB7IEdpdGh1YlJlc291cmNlIH0gZnJvbSBcIi4uL1Jlc291cmNlLnRzXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRSZXNvdXJjZUZyb21HaXRodWIoXG4gIGdpdGh1YlJlc291cmNlOiBHaXRodWJSZXNvdXJjZSxcbiAgb3B0aW9uczoge1xuICAgIGRlZmF1bHRCcmFuY2g6IHN0cmluZ1xuICB9LFxuKSB7XG4gIGNvbnN0IHBhdGggPSBjb252ZXJ0UGF0aCh7XG4gICAgLi4uZ2l0aHViUmVzb3VyY2UsXG4gICAgcmVmOiBvcHRpb25zLmRlZmF1bHRCcmFuY2gsXG4gIH0pXG5cbiAgY29uc3QgZmlsZW5hbWUgPSBnZXRGaWxlbmFtZShwYXRoKVxuICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgcGF0aCxcbiAgICBuYW1lOiBnZXROYW1lKGZpbGVuYW1lKSA/PyBnaXRodWJSZXNvdXJjZS5zaGEsXG4gICAgYnl0ZXM6IGdpdGh1YlJlc291cmNlLnNpemUsXG4gICAgaGFzaDogYHNoYTE6JHtnaXRodWJSZXNvdXJjZS5zaGF9YCxcbiAgICBmb3JtYXQ6IGdldEZvcm1hdChmaWxlbmFtZSksXG4gICAgXCJnaXRodWI6a2V5XCI6IGdpdGh1YlJlc291cmNlLnBhdGgsXG4gICAgXCJnaXRodWI6dXJsXCI6IHBhdGgsXG4gIH1cblxuICByZXR1cm4gcmVzb3VyY2Vcbn1cblxuZnVuY3Rpb24gY29udmVydFBhdGgob3B0aW9uczoge1xuICB1cmw6IHN0cmluZ1xuICByZWY6IHN0cmluZ1xuICBwYXRoOiBzdHJpbmdcbn0pIHtcbiAgY29uc3QgdXJsID0gbmV3IFVSTChvcHRpb25zLnVybClcbiAgY29uc3QgW293bmVyLCByZXBvXSA9IHVybC5wYXRobmFtZS5zcGxpdChcIi9cIikuc2xpY2UoMilcbiAgcmV0dXJuIGBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vJHtvd25lcn0vJHtyZXBvfS9yZWZzL2hlYWRzLyR7b3B0aW9ucy5yZWZ9LyR7b3B0aW9ucy5wYXRofWBcbn1cbiJdfQ==