UNPKG

@dpkit/core

Version:

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

21 lines 2.77 kB
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=