@paroicms/site-generator-plugin
Version:
ParoiCMS Site Generator Plugin
64 lines (63 loc) • 1.81 kB
JavaScript
import { getRandomImagePath } from "../lib/images-lib.js";
import { generateLocalizedFooterMention } from "./create-node-contents.js";
export async function updateSiteFields(ctx, _report, options) {
const { service, logger } = ctx;
logger.debug("Updating site fields…");
const { fqdn, siteSchema, siteTitle } = options;
const siteType = siteSchema.nodeTypes._site;
const logoImageFile = getRandomImagePath();
const fields = [
[
"title",
{
dataType: "string",
localized: true,
value: siteTitle,
},
],
[
"favicon",
{
dataType: "media",
localized: false,
value: {
file: logoImageFile,
},
},
],
[
"ogImage",
{
dataType: "media",
localized: false,
value: {
file: logoImageFile,
},
},
],
];
if (siteType.fields.some((f) => f.name === "logo")) {
fields.push([
"logo",
{
dataType: "media",
localized: false,
value: {
file: logoImageFile,
},
},
]);
}
if (siteType.fields.some((f) => f.name === "footerMention")) {
fields.push([
"footerMention",
{
dataType: "json",
localized: true,
value: generateLocalizedFooterMention(siteSchema),
},
]);
}
await service.connector.updateSiteFields(fqdn, Object.fromEntries(fields));
logger.debug("… Site fields updated");
}