@dpkit/core
Version:
Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames
58 lines • 7.72 kB
JavaScript
import { readFile, writeFile } from "node:fs/promises";
import fs from "node:fs/promises";
import { join } from "node:path";
const registryDir = join(import.meta.dirname, "..", "registry");
const files = (await fs.readdir(registryDir)).filter(file => file.endsWith(".json"));
console.log(`Found ${files.length} JSON files in registry directory`);
for (const file of files) {
const filePath = join(registryDir, file);
console.log(`Processing ${file}...`);
const content = await readFile(filePath, "utf8");
const profile = JSON.parse(content);
let modified = false;
const pruneProperties = (obj) => {
if ("description" in obj) {
if (!isObject(obj.description)) {
obj.description = undefined;
modified = true;
}
}
if ("context" in obj) {
if (!isObject(obj.context)) {
obj.context = undefined;
modified = true;
}
}
if ("examples" in obj) {
if (!isObject(obj.examples)) {
obj.examples = undefined;
modified = true;
}
}
for (const key in obj) {
if (isObject(obj[key])) {
pruneProperties(obj[key]);
}
else if (Array.isArray(obj[key])) {
for (const item of obj[key]) {
if (isObject(item)) {
pruneProperties(item);
}
}
}
}
};
pruneProperties(profile);
if (modified) {
await writeFile(filePath, JSON.stringify(profile, null, 2), "utf8");
console.log(`Updated ${file} - removed non-object descriptions and examples`);
}
else {
console.log(`No changes needed for ${file}`);
}
}
console.log("Pruning completed successfully!");
function isObject(value) {
return !!(value && typeof value === "object" && !Array.isArray(value));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJ1bmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9nZW5lcmFsL3Byb2ZpbGUvc2NyaXB0cy9wcnVuZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFaEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQTtBQUMvRCxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUN2QixDQUFBO0FBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEtBQUssQ0FBQyxNQUFNLG1DQUFtQyxDQUFDLENBQUE7QUFFckUsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLEtBQUssQ0FBQyxDQUFBO0lBRXBDLE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUNoRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRW5DLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQTtJQUVwQixNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQTRCLEVBQVEsRUFBRTtRQUM3RCxJQUFJLGFBQWEsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUMvQixHQUFHLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQTtnQkFDM0IsUUFBUSxHQUFHLElBQUksQ0FBQTtZQUNqQixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksU0FBUyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLEdBQUcsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFBO2dCQUN2QixRQUFRLEdBQUcsSUFBSSxDQUFBO1lBQ2pCLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxVQUFVLElBQUksR0FBRyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsR0FBRyxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUE7Z0JBQ3hCLFFBQVEsR0FBRyxJQUFJLENBQUE7WUFDakIsQ0FBQztRQUNILENBQUM7UUFFRCxLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUE0QixDQUFDLENBQUE7WUFDdEQsQ0FBQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsS0FBSyxNQUFNLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDNUIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDbkIsZUFBZSxDQUFDLElBQStCLENBQUMsQ0FBQTtvQkFDbEQsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUE7SUFFRCxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFeEIsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNiLE1BQU0sU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDbkUsT0FBTyxDQUFDLEdBQUcsQ0FDVCxXQUFXLElBQUksaURBQWlELENBQ2pFLENBQUE7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLElBQUksRUFBRSxDQUFDLENBQUE7SUFDOUMsQ0FBQztBQUNILENBQUM7QUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxDQUFDLENBQUE7QUFFOUMsU0FBUyxRQUFRLENBQUMsS0FBVTtJQUMxQixPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFDeEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRGaWxlLCB3cml0ZUZpbGUgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiXG5pbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIlxuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIlxuXG5jb25zdCByZWdpc3RyeURpciA9IGpvaW4oaW1wb3J0Lm1ldGEuZGlybmFtZSwgXCIuLlwiLCBcInJlZ2lzdHJ5XCIpXG5jb25zdCBmaWxlcyA9IChhd2FpdCBmcy5yZWFkZGlyKHJlZ2lzdHJ5RGlyKSkuZmlsdGVyKGZpbGUgPT5cbiAgZmlsZS5lbmRzV2l0aChcIi5qc29uXCIpLFxuKVxuXG5jb25zb2xlLmxvZyhgRm91bmQgJHtmaWxlcy5sZW5ndGh9IEpTT04gZmlsZXMgaW4gcmVnaXN0cnkgZGlyZWN0b3J5YClcblxuZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gIGNvbnN0IGZpbGVQYXRoID0gam9pbihyZWdpc3RyeURpciwgZmlsZSlcbiAgY29uc29sZS5sb2coYFByb2Nlc3NpbmcgJHtmaWxlfS4uLmApXG5cbiAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGZpbGVQYXRoLCBcInV0ZjhcIilcbiAgY29uc3QgcHJvZmlsZSA9IEpTT04ucGFyc2UoY29udGVudClcblxuICBsZXQgbW9kaWZpZWQgPSBmYWxzZVxuXG4gIGNvbnN0IHBydW5lUHJvcGVydGllcyA9IChvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZCA9PiB7XG4gICAgaWYgKFwiZGVzY3JpcHRpb25cIiBpbiBvYmopIHtcbiAgICAgIGlmICghaXNPYmplY3Qob2JqLmRlc2NyaXB0aW9uKSkge1xuICAgICAgICBvYmouZGVzY3JpcHRpb24gPSB1bmRlZmluZWRcbiAgICAgICAgbW9kaWZpZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKFwiY29udGV4dFwiIGluIG9iaikge1xuICAgICAgaWYgKCFpc09iamVjdChvYmouY29udGV4dCkpIHtcbiAgICAgICAgb2JqLmNvbnRleHQgPSB1bmRlZmluZWRcbiAgICAgICAgbW9kaWZpZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKFwiZXhhbXBsZXNcIiBpbiBvYmopIHtcbiAgICAgIGlmICghaXNPYmplY3Qob2JqLmV4YW1wbGVzKSkge1xuICAgICAgICBvYmouZXhhbXBsZXMgPSB1bmRlZmluZWRcbiAgICAgICAgbW9kaWZpZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICBpZiAoaXNPYmplY3Qob2JqW2tleV0pKSB7XG4gICAgICAgIHBydW5lUHJvcGVydGllcyhvYmpba2V5XSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvYmpba2V5XSkpIHtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIG9ialtrZXldKSB7XG4gICAgICAgICAgaWYgKGlzT2JqZWN0KGl0ZW0pKSB7XG4gICAgICAgICAgICBwcnVuZVByb3BlcnRpZXMoaXRlbSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcnVuZVByb3BlcnRpZXMocHJvZmlsZSlcblxuICBpZiAobW9kaWZpZWQpIHtcbiAgICBhd2FpdCB3cml0ZUZpbGUoZmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KHByb2ZpbGUsIG51bGwsIDIpLCBcInV0ZjhcIilcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBVcGRhdGVkICR7ZmlsZX0gLSByZW1vdmVkIG5vbi1vYmplY3QgZGVzY3JpcHRpb25zIGFuZCBleGFtcGxlc2AsXG4gICAgKVxuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUubG9nKGBObyBjaGFuZ2VzIG5lZWRlZCBmb3IgJHtmaWxlfWApXG4gIH1cbn1cblxuY29uc29sZS5sb2coXCJQcnVuaW5nIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkhXCIpXG5cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuICEhKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG59XG4iXX0=