UNPKG

@paroicms/cli

Version:
54 lines 2.09 kB
import { rename, writeFile } from "node:fs/promises"; import { join } from "node:path"; export async function migrateFrom7To8(directory, oldSchema) { const newSchema = { ...oldSchema, }; newSchema.version = "8"; if (oldSchema.nodeTypes) { newSchema.nodeTypes = oldSchema.nodeTypes.map((nodeType) => { if (nodeType.kind !== "document") return nodeType; if (nodeType.labeling && nodeType.labeling.length > 0) { if (!nodeType.fields) { nodeType.fields = []; } for (const labelingObj of nodeType.labeling) { nodeType.fields.unshift({ name: labelingObj.taxonomy, localized: false, storedAs: "labeling", taxonomy: labelingObj.taxonomy, multiple: labelingObj.relation === "multiple", }); } } if (nodeType.labeling) { delete nodeType.labeling; } return nodeType; }); newSchema.nodeTypes = oldSchema.nodeTypes.map((nodeType) => { if (!("fields" in nodeType)) return nodeType; for (const f of nodeType.fields ?? []) { if (typeof f === "string") continue; if (f.dataType === "quillDelta") { f.dataType = "json"; f.renderAs = "html"; } else if (f.dataType === "html") { f.dataType = "string"; f.renderAs = "html"; } delete f.visibility; } return nodeType; }); } await rename(join(directory, "site-schema.json"), join(directory, "site-schema-v7.json")); await writeFile(join(directory, "site-schema.json"), JSON.stringify(newSchema, undefined, 2)); return newSchema; } //# sourceMappingURL=site-schema-migration-7-to-8.js.map