@paroicms/site-generator-plugin
Version:
ParoiCMS Site Generator Plugin
32 lines (31 loc) • 1.36 kB
JavaScript
import { getHandleOfSiteField } from "@paroicms/public-server-lib";
import { getRandomImagePath } from "../lib/images-lib.js";
import { generateLocalizedFooterMention } from "./create-node-contents.js";
export async function updateSiteFields(ctx, _report, options) {
const { logger, siteSchema, siteConnector } = ctx;
logger.debug("Updating site fields…");
const { siteTitle } = options;
const siteType = siteSchema.nodeTypes._site;
const footerMention = generateLocalizedFooterMention(siteSchema);
// Update site fields for each language
for (const language of siteSchema.languages) {
const values = {
title: siteTitle[language],
};
if (siteType.fields.some((f) => f.name === "footerMention")) {
values.footerMention = footerMention[language];
}
await siteConnector.updateSiteFields(language, values);
}
for (const fieldName of ["favicon", "ogImage", "logo"]) {
const fieldType = siteType.fields.find((f) => f.name === fieldName);
if (!fieldType || fieldType.storedAs !== "mediaHandle")
continue;
await siteConnector.setMedia({
handle: getHandleOfSiteField(fieldName),
filePath: getRandomImagePath(),
replace: true,
});
}
logger.debug("… Site fields updated");
}