@dpkit/datahub
Version:
Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames
18 lines • 2.2 kB
JavaScript
import { isRemotePath } from "@dpkit/core";
import { loadPackageFromDatahub } from "./package/index.js";
export class DatahubPlugin {
async loadPackage(source) {
const isDatahub = getIsDatahub(source);
if (!isDatahub)
return undefined;
const dataPackage = await loadPackageFromDatahub(source);
return dataPackage;
}
}
function getIsDatahub(path) {
const isRemote = isRemotePath(path);
if (!isRemote)
return false;
return new URL(path).hostname === "datahub.io";
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFM0QsTUFBTSxPQUFPLGFBQWE7SUFDeEIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1FBQzlCLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN0QyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sU0FBUyxDQUFBO1FBRWhDLE1BQU0sV0FBVyxHQUFHLE1BQU0sc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDeEQsT0FBTyxXQUFXLENBQUE7SUFDcEIsQ0FBQztDQUNGO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBWTtJQUNoQyxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbkMsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUUzQixPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsS0FBSyxZQUFZLENBQUE7QUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSBcIkBkcGtpdC9jb3JlXCJcbmltcG9ydCB7IGlzUmVtb3RlUGF0aCB9IGZyb20gXCJAZHBraXQvY29yZVwiXG5pbXBvcnQgeyBsb2FkUGFja2FnZUZyb21EYXRhaHViIH0gZnJvbSBcIi4vcGFja2FnZS9pbmRleC50c1wiXG5cbmV4cG9ydCBjbGFzcyBEYXRhaHViUGx1Z2luIGltcGxlbWVudHMgUGx1Z2luIHtcbiAgYXN5bmMgbG9hZFBhY2thZ2Uoc291cmNlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBpc0RhdGFodWIgPSBnZXRJc0RhdGFodWIoc291cmNlKVxuICAgIGlmICghaXNEYXRhaHViKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBkYXRhUGFja2FnZSA9IGF3YWl0IGxvYWRQYWNrYWdlRnJvbURhdGFodWIoc291cmNlKVxuICAgIHJldHVybiBkYXRhUGFja2FnZVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldElzRGF0YWh1YihwYXRoOiBzdHJpbmcpIHtcbiAgY29uc3QgaXNSZW1vdGUgPSBpc1JlbW90ZVBhdGgocGF0aClcbiAgaWYgKCFpc1JlbW90ZSkgcmV0dXJuIGZhbHNlXG5cbiAgcmV0dXJuIG5ldyBVUkwocGF0aCkuaG9zdG5hbWUgPT09IFwiZGF0YWh1Yi5pb1wiXG59XG4iXX0=