@paroicms/cli
Version:
CLI of ParoiCMS
61 lines • 2.3 kB
JavaScript
import { rename, writeFile } from "node:fs/promises";
import { join } from "node:path";
export async function migrateFrom6To7(directory, oldSchema) {
const newSchema = {
...oldSchema,
};
newSchema.version = "7";
if (oldSchema.nodeTypes) {
newSchema.nodeTypes = oldSchema.nodeTypes.map((nodeType) => {
if (nodeType.kind === "site")
return nodeType;
if (nodeType.kind === "document") {
let { typeName, kind, documentKind, route, redirectTo, ogType, disableFeaturedImage, fields, ...rest } = nodeType;
fields = fields?.map((field) => {
if (typeof field === "string")
return field;
const { name, storedOn, ...rest } = field;
return {
name,
localized: storedOn === "nodel",
...rest,
};
});
return {
typeName,
kind,
documentKind,
route,
redirectTo,
ogType,
withFeaturedImage: !disableFeaturedImage,
fields,
...rest,
};
}
if (nodeType.kind === "part") {
let { typeName, kind, fields, ...rest } = nodeType;
fields = fields?.map((field) => {
if (typeof field === "string")
return field;
const { name, storedOn, ...rest } = field;
return {
name,
localized: storedOn === "nodel",
...rest,
};
});
return {
typeName,
kind,
fields,
...rest,
};
}
});
}
await rename(join(directory, "site-schema.json"), join(directory, "site-schema-v6.json"));
await writeFile(join(directory, "site-schema.json"), JSON.stringify(newSchema, undefined, 2));
return newSchema;
}
//# sourceMappingURL=site-schema-migration-6-to-7.js.map