@dpkit/core
Version:
Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames
21 lines • 2.77 kB
JavaScript
import { loadDescriptor } from "../descriptor/load.js";
import { cache } from "./cache.js";
import { validateProfile } from "./validate.js";
export async function loadProfile(path, options) {
let profile = cache.get(path);
if (!profile) {
const descriptor = await loadDescriptor(path, { onlyRemote: true });
const result = await validateProfile({
descriptor,
path,
type: options?.type,
});
if (!result.profile) {
throw new Error(`Profile at path ${path} is invalid`);
}
profile = result.profile;
cache.set(path, profile);
}
return profile;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2dlbmVyYWwvcHJvZmlsZS9sb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRWxDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFL0MsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQy9CLElBQVksRUFDWixPQUFnQztJQUVoQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRTdCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE1BQU0sVUFBVSxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ25FLE1BQU0sTUFBTSxHQUFHLE1BQU0sZUFBZSxDQUFDO1lBQ25DLFVBQVU7WUFDVixJQUFJO1lBQ0osSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJO1NBQ3BCLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxhQUFhLENBQUMsQ0FBQTtRQUN2RCxDQUFDO1FBRUQsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUE7UUFDeEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDMUIsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2FkRGVzY3JpcHRvciB9IGZyb20gXCIuLi9kZXNjcmlwdG9yL2xvYWQudHNcIlxuaW1wb3J0IHsgY2FjaGUgfSBmcm9tIFwiLi9jYWNoZS50c1wiXG5pbXBvcnQgdHlwZSB7IFByb2ZpbGVUeXBlIH0gZnJvbSBcIi4vcmVnaXN0cnkudHNcIlxuaW1wb3J0IHsgdmFsaWRhdGVQcm9maWxlIH0gZnJvbSBcIi4vdmFsaWRhdGUudHNcIlxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFByb2ZpbGUoXG4gIHBhdGg6IHN0cmluZyxcbiAgb3B0aW9ucz86IHsgdHlwZT86IFByb2ZpbGVUeXBlIH0sXG4pIHtcbiAgbGV0IHByb2ZpbGUgPSBjYWNoZS5nZXQocGF0aClcblxuICBpZiAoIXByb2ZpbGUpIHtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0gYXdhaXQgbG9hZERlc2NyaXB0b3IocGF0aCwgeyBvbmx5UmVtb3RlOiB0cnVlIH0pXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmFsaWRhdGVQcm9maWxlKHtcbiAgICAgIGRlc2NyaXB0b3IsXG4gICAgICBwYXRoLFxuICAgICAgdHlwZTogb3B0aW9ucz8udHlwZSxcbiAgICB9KVxuXG4gICAgaWYgKCFyZXN1bHQucHJvZmlsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9maWxlIGF0IHBhdGggJHtwYXRofSBpcyBpbnZhbGlkYClcbiAgICB9XG5cbiAgICBwcm9maWxlID0gcmVzdWx0LnByb2ZpbGVcbiAgICBjYWNoZS5zZXQocGF0aCwgcHJvZmlsZSlcbiAgfVxuXG4gIHJldHVybiBwcm9maWxlXG59XG4iXX0=