UNPKG

@dpkit/core

Version:

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

61 lines 7.18 kB
export function normalizeField(descriptor) { descriptor = globalThis.structuredClone(descriptor); normalizeFieldFormat(descriptor); normalizeFieldMissingValues(descriptor); normalizeFieldCategories(descriptor); normalizeFieldCategoriesOrdered(descriptor); normalizeFieldJsonschema(descriptor); return descriptor; } function normalizeFieldFormat(descriptor) { const format = descriptor.format; if (!format) { return; } if (typeof format === "string") { if (format.startsWith("fmt:")) { descriptor.format = format.slice(4); } } } function normalizeFieldMissingValues(descriptor) { const missingValues = descriptor.missingValues; if (!missingValues) { return; } if (!Array.isArray(missingValues)) { descriptor.missingValues = undefined; console.warn(`Ignoring v2.0 incompatible missingValues: ${missingValues}`); } } function normalizeFieldCategories(descriptor) { const categories = descriptor.categories; if (!categories) { return; } if (categories && !Array.isArray(categories)) { descriptor.categories = undefined; console.warn(`Ignoring v2.0 incompatible categories: ${categories}`); } } function normalizeFieldCategoriesOrdered(descriptor) { const categoriesOrdered = descriptor.categoriesOrdered; if (!categoriesOrdered) { return; } if (typeof categoriesOrdered !== "boolean") { descriptor.categoriesOrdered = undefined; console.warn(`Ignoring v2.0 incompatible categoriesOrdered: ${categoriesOrdered}`); } } function normalizeFieldJsonschema(descriptor) { const jsonschema = descriptor.jsonschema; if (!jsonschema) { return; } if (typeof jsonschema !== "object") { descriptor.jsonschema = undefined; console.warn(`Ignoring v2.0 incompatible jsonschema: ${jsonschema}`); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZmllbGQvcHJvY2Vzcy9ub3JtYWxpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGNBQWMsQ0FBQyxVQUFzQjtJQUNuRCxVQUFVLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUVuRCxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNoQywyQkFBMkIsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN2Qyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNwQywrQkFBK0IsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUMzQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUVwQyxPQUFPLFVBQVUsQ0FBQTtBQUNuQixDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxVQUFzQjtJQUNsRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFBO0lBQ2hDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE9BQU07SUFDUixDQUFDO0lBRUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMvQixJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM5QixVQUFVLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDckMsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUywyQkFBMkIsQ0FBQyxVQUFzQjtJQUN6RCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFBO0lBQzlDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNuQixPQUFNO0lBQ1IsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDbEMsVUFBVSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7UUFDcEMsT0FBTyxDQUFDLElBQUksQ0FBQyw2Q0FBNkMsYUFBYSxFQUFFLENBQUMsQ0FBQTtJQUM1RSxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsVUFBc0I7SUFDdEQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQTtJQUN4QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLFVBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUM3QyxVQUFVLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQTtRQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDLDBDQUEwQyxVQUFVLEVBQUUsQ0FBQyxDQUFBO0lBQ3RFLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUywrQkFBK0IsQ0FBQyxVQUFzQjtJQUM3RCxNQUFNLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQTtJQUN0RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN2QixPQUFNO0lBQ1IsQ0FBQztJQUVELElBQUksT0FBTyxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMzQyxVQUFVLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFBO1FBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQ1YsaURBQWlELGlCQUFpQixFQUFFLENBQ3JFLENBQUE7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsVUFBc0I7SUFDdEQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQTtJQUN4QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ25DLFVBQVUsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFBO1FBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMENBQTBDLFVBQVUsRUFBRSxDQUFDLENBQUE7SUFDdEUsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERlc2NyaXB0b3IgfSBmcm9tIFwiLi4vLi4vZ2VuZXJhbC9pbmRleC50c1wiXG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVGaWVsZChkZXNjcmlwdG9yOiBEZXNjcmlwdG9yKSB7XG4gIGRlc2NyaXB0b3IgPSBnbG9iYWxUaGlzLnN0cnVjdHVyZWRDbG9uZShkZXNjcmlwdG9yKVxuXG4gIG5vcm1hbGl6ZUZpZWxkRm9ybWF0KGRlc2NyaXB0b3IpXG4gIG5vcm1hbGl6ZUZpZWxkTWlzc2luZ1ZhbHVlcyhkZXNjcmlwdG9yKVxuICBub3JtYWxpemVGaWVsZENhdGVnb3JpZXMoZGVzY3JpcHRvcilcbiAgbm9ybWFsaXplRmllbGRDYXRlZ29yaWVzT3JkZXJlZChkZXNjcmlwdG9yKVxuICBub3JtYWxpemVGaWVsZEpzb25zY2hlbWEoZGVzY3JpcHRvcilcblxuICByZXR1cm4gZGVzY3JpcHRvclxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVGaWVsZEZvcm1hdChkZXNjcmlwdG9yOiBEZXNjcmlwdG9yKSB7XG4gIGNvbnN0IGZvcm1hdCA9IGRlc2NyaXB0b3IuZm9ybWF0XG4gIGlmICghZm9ybWF0KSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAodHlwZW9mIGZvcm1hdCA9PT0gXCJzdHJpbmdcIikge1xuICAgIGlmIChmb3JtYXQuc3RhcnRzV2l0aChcImZtdDpcIikpIHtcbiAgICAgIGRlc2NyaXB0b3IuZm9ybWF0ID0gZm9ybWF0LnNsaWNlKDQpXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUZpZWxkTWlzc2luZ1ZhbHVlcyhkZXNjcmlwdG9yOiBEZXNjcmlwdG9yKSB7XG4gIGNvbnN0IG1pc3NpbmdWYWx1ZXMgPSBkZXNjcmlwdG9yLm1pc3NpbmdWYWx1ZXNcbiAgaWYgKCFtaXNzaW5nVmFsdWVzKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoIUFycmF5LmlzQXJyYXkobWlzc2luZ1ZhbHVlcykpIHtcbiAgICBkZXNjcmlwdG9yLm1pc3NpbmdWYWx1ZXMgPSB1bmRlZmluZWRcbiAgICBjb25zb2xlLndhcm4oYElnbm9yaW5nIHYyLjAgaW5jb21wYXRpYmxlIG1pc3NpbmdWYWx1ZXM6ICR7bWlzc2luZ1ZhbHVlc31gKVxuICB9XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUZpZWxkQ2F0ZWdvcmllcyhkZXNjcmlwdG9yOiBEZXNjcmlwdG9yKSB7XG4gIGNvbnN0IGNhdGVnb3JpZXMgPSBkZXNjcmlwdG9yLmNhdGVnb3JpZXNcbiAgaWYgKCFjYXRlZ29yaWVzKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoY2F0ZWdvcmllcyAmJiAhQXJyYXkuaXNBcnJheShjYXRlZ29yaWVzKSkge1xuICAgIGRlc2NyaXB0b3IuY2F0ZWdvcmllcyA9IHVuZGVmaW5lZFxuICAgIGNvbnNvbGUud2FybihgSWdub3JpbmcgdjIuMCBpbmNvbXBhdGlibGUgY2F0ZWdvcmllczogJHtjYXRlZ29yaWVzfWApXG4gIH1cbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplRmllbGRDYXRlZ29yaWVzT3JkZXJlZChkZXNjcmlwdG9yOiBEZXNjcmlwdG9yKSB7XG4gIGNvbnN0IGNhdGVnb3JpZXNPcmRlcmVkID0gZGVzY3JpcHRvci5jYXRlZ29yaWVzT3JkZXJlZFxuICBpZiAoIWNhdGVnb3JpZXNPcmRlcmVkKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAodHlwZW9mIGNhdGVnb3JpZXNPcmRlcmVkICE9PSBcImJvb2xlYW5cIikge1xuICAgIGRlc2NyaXB0b3IuY2F0ZWdvcmllc09yZGVyZWQgPSB1bmRlZmluZWRcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgSWdub3JpbmcgdjIuMCBpbmNvbXBhdGlibGUgY2F0ZWdvcmllc09yZGVyZWQ6ICR7Y2F0ZWdvcmllc09yZGVyZWR9YCxcbiAgICApXG4gIH1cbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplRmllbGRKc29uc2NoZW1hKGRlc2NyaXB0b3I6IERlc2NyaXB0b3IpIHtcbiAgY29uc3QganNvbnNjaGVtYSA9IGRlc2NyaXB0b3IuanNvbnNjaGVtYVxuICBpZiAoIWpzb25zY2hlbWEpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmICh0eXBlb2YganNvbnNjaGVtYSAhPT0gXCJvYmplY3RcIikge1xuICAgIGRlc2NyaXB0b3IuanNvbnNjaGVtYSA9IHVuZGVmaW5lZFxuICAgIGNvbnNvbGUud2FybihgSWdub3JpbmcgdjIuMCBpbmNvbXBhdGlibGUganNvbnNjaGVtYTogJHtqc29uc2NoZW1hfWApXG4gIH1cbn1cbiJdfQ==