@paroicms/server
Version:
The ParoiCMS server
44 lines • 1.78 kB
JavaScript
import { rename, writeFile } from "node:fs/promises";
import { join } from "node:path";
export async function migrateFrom8To9(directory, oldSchema) {
const newSchema = {
ParoiCMSSiteSchemaFormatVersion: "9",
...oldSchema,
};
delete newSchema.version;
if (newSchema.configuration?.backOffice) {
newSchema.configuration.adminUi = newSchema.configuration.backOffice;
delete newSchema.configuration.backOffice;
}
if (newSchema.plugins) {
newSchema.plugins = newSchema.plugins.map((plugin) => {
if (typeof plugin === "object" && plugin.configuration?.backOffice) {
plugin.configuration.adminUi = plugin.configuration.backOffice;
delete plugin.configuration.backOffice;
}
return plugin;
});
}
if (newSchema.nodeTypes) {
newSchema.nodeTypes = newSchema.nodeTypes.map((nodeType) => {
if (nodeType.backOffice) {
nodeType.adminUi = nodeType.backOffice;
delete nodeType.backOffice;
}
if (nodeType.fields) {
nodeType.fields = nodeType.fields.map((field) => {
if (typeof field === "object" && field.backOffice) {
field.adminUi = field.backOffice;
delete field.backOffice;
}
return field;
});
}
return nodeType;
});
}
await rename(join(directory, "site-schema.json"), join(directory, "site-schema-v8.json"));
await writeFile(join(directory, "site-schema.json"), JSON.stringify(newSchema, undefined, 2));
return newSchema;
}
//# sourceMappingURL=site-schema-migration-8-to-9.js.map