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