UNPKG

@dpkit/core

Version:

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

36 lines 5.79 kB
import { denormalizeDialect } from "../../dialect/index.js"; import { denormalizePath } from "../../general/index.js"; import { denormalizeSchema } from "../../schema/index.js"; export function denormalizeResource(resource, options) { resource = globalThis.structuredClone(resource); denormalizePaths(resource, options); const dialect = denormalizeResourceDialect(resource); const schema = denormalizeResourceSchema(resource); return { ...resource, dialect, schema }; } function denormalizePaths(resource, options) { const basepath = options?.basepath; if (resource.path) { resource.path = Array.isArray(resource.path) ? resource.path.map(path => denormalizePath(path, { basepath })) : denormalizePath(resource.path, { basepath }); } for (const name of ["dialect", "schema"]) { if (typeof resource[name] === "string") { resource[name] = denormalizePath(resource[name], { basepath }); } } } function denormalizeResourceDialect(resource) { if (!resource.dialect || typeof resource.dialect === "string") { return resource.dialect; } return denormalizeDialect(resource.dialect); } function denormalizeResourceSchema(resource) { if (!resource.schema || typeof resource.schema === "string") { return resource.schema; } return denormalizeSchema(resource.schema); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVub3JtYWxpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9yZXNvdXJjZS9wcm9jZXNzL2Rlbm9ybWFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUV4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUd6RCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLFFBQWtCLEVBQ2xCLE9BRUM7SUFFRCxRQUFRLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUUvQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFFbkMsTUFBTSxPQUFPLEdBQUcsMEJBQTBCLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDcEQsTUFBTSxNQUFNLEdBQUcseUJBQXlCLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFbEQsT0FBTyxFQUFFLEdBQUcsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQWdCLENBQUE7QUFDdkQsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQ3ZCLFFBQWtCLEVBQ2xCLE9BRUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsUUFBUSxDQUFBO0lBRWxDLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLFFBQVEsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQzFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFVLEVBQUUsQ0FBQztRQUNsRCxJQUFJLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUNoRSxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUFDLFFBQWtCO0lBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLE9BQU8sUUFBUSxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5RCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUE7SUFDekIsQ0FBQztJQUVELE9BQU8sa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQzdDLENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUFDLFFBQWtCO0lBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM1RCxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUE7SUFDeEIsQ0FBQztJQUVELE9BQU8saUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZW5vcm1hbGl6ZURpYWxlY3QgfSBmcm9tIFwiLi4vLi4vZGlhbGVjdC9pbmRleC50c1wiXG5pbXBvcnQgeyBkZW5vcm1hbGl6ZVBhdGggfSBmcm9tIFwiLi4vLi4vZ2VuZXJhbC9pbmRleC50c1wiXG5pbXBvcnQgdHlwZSB7IERlc2NyaXB0b3IgfSBmcm9tIFwiLi4vLi4vZ2VuZXJhbC9pbmRleC50c1wiXG5pbXBvcnQgeyBkZW5vcm1hbGl6ZVNjaGVtYSB9IGZyb20gXCIuLi8uLi9zY2hlbWEvaW5kZXgudHNcIlxuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZSB9IGZyb20gXCIuLi9SZXNvdXJjZS50c1wiXG5cbmV4cG9ydCBmdW5jdGlvbiBkZW5vcm1hbGl6ZVJlc291cmNlKFxuICByZXNvdXJjZTogUmVzb3VyY2UsXG4gIG9wdGlvbnM/OiB7XG4gICAgYmFzZXBhdGg/OiBzdHJpbmdcbiAgfSxcbikge1xuICByZXNvdXJjZSA9IGdsb2JhbFRoaXMuc3RydWN0dXJlZENsb25lKHJlc291cmNlKVxuXG4gIGRlbm9ybWFsaXplUGF0aHMocmVzb3VyY2UsIG9wdGlvbnMpXG5cbiAgY29uc3QgZGlhbGVjdCA9IGRlbm9ybWFsaXplUmVzb3VyY2VEaWFsZWN0KHJlc291cmNlKVxuICBjb25zdCBzY2hlbWEgPSBkZW5vcm1hbGl6ZVJlc291cmNlU2NoZW1hKHJlc291cmNlKVxuXG4gIHJldHVybiB7IC4uLnJlc291cmNlLCBkaWFsZWN0LCBzY2hlbWEgfSBhcyBEZXNjcmlwdG9yXG59XG5cbmZ1bmN0aW9uIGRlbm9ybWFsaXplUGF0aHMoXG4gIHJlc291cmNlOiBSZXNvdXJjZSxcbiAgb3B0aW9ucz86IHtcbiAgICBiYXNlcGF0aD86IHN0cmluZ1xuICB9LFxuKSB7XG4gIGNvbnN0IGJhc2VwYXRoID0gb3B0aW9ucz8uYmFzZXBhdGhcblxuICBpZiAocmVzb3VyY2UucGF0aCkge1xuICAgIHJlc291cmNlLnBhdGggPSBBcnJheS5pc0FycmF5KHJlc291cmNlLnBhdGgpXG4gICAgICA/IHJlc291cmNlLnBhdGgubWFwKHBhdGggPT4gZGVub3JtYWxpemVQYXRoKHBhdGgsIHsgYmFzZXBhdGggfSkpXG4gICAgICA6IGRlbm9ybWFsaXplUGF0aChyZXNvdXJjZS5wYXRoLCB7IGJhc2VwYXRoIH0pXG4gIH1cblxuICBmb3IgKGNvbnN0IG5hbWUgb2YgW1wiZGlhbGVjdFwiLCBcInNjaGVtYVwiXSBhcyBjb25zdCkge1xuICAgIGlmICh0eXBlb2YgcmVzb3VyY2VbbmFtZV0gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJlc291cmNlW25hbWVdID0gZGVub3JtYWxpemVQYXRoKHJlc291cmNlW25hbWVdLCB7IGJhc2VwYXRoIH0pXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRlbm9ybWFsaXplUmVzb3VyY2VEaWFsZWN0KHJlc291cmNlOiBSZXNvdXJjZSkge1xuICBpZiAoIXJlc291cmNlLmRpYWxlY3QgfHwgdHlwZW9mIHJlc291cmNlLmRpYWxlY3QgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gcmVzb3VyY2UuZGlhbGVjdFxuICB9XG5cbiAgcmV0dXJuIGRlbm9ybWFsaXplRGlhbGVjdChyZXNvdXJjZS5kaWFsZWN0KVxufVxuXG5mdW5jdGlvbiBkZW5vcm1hbGl6ZVJlc291cmNlU2NoZW1hKHJlc291cmNlOiBSZXNvdXJjZSkge1xuICBpZiAoIXJlc291cmNlLnNjaGVtYSB8fCB0eXBlb2YgcmVzb3VyY2Uuc2NoZW1hID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHJlc291cmNlLnNjaGVtYVxuICB9XG5cbiAgcmV0dXJuIGRlbm9ybWFsaXplU2NoZW1hKHJlc291cmNlLnNjaGVtYSlcbn1cbiJdfQ==