UNPKG

@dpkit/core

Version:

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

58 lines 7.72 kB
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=