@dpkit/github
Version:
Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames
24 lines • 3.54 kB
JavaScript
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==