import fs from "node:fs"; const overrides = JSON.parse(fs.readFileSync(new URL("../resources/catalog-overrides.json", import.meta.url), "utf8")); /** 把本项目已实现的参数契约覆盖到派生目录,避免重新生成时恢复旧的错误元数据。 */ export function applyCatalogOverrides(catalog) { for (const component of catalog.components) { const override = overrides[component.id]; if (!override) continue; const { fields = {}, removeFields = [], ...metadata } = override; Object.assign(component, metadata); component.fields = component.fields.filter(field => !removeFields.includes(field.key)) .map(field => ({ ...field, ...fields[field.key] })); } catalog.counts.fields = catalog.components.reduce((count, component) => count + component.fields.length, 0); return catalog; }