@paroicms/site-generator-plugin
Version:
ParoiCMS Site Generator Plugin
32 lines (31 loc) • 1.3 kB
JavaScript
import { getFirstSiteLanguage, isMultilingual } from "./jt-site-schema-helpers.js";
export function indent(template, level, { skipFirst = false } = {}) {
const indentStr = " ".repeat(level);
if (skipFirst) {
const lines = template.split("\n");
return lines.map((line, index) => (index === 0 ? line : indentStr + line)).join("\n");
}
// For firstLine true, indent all lines.
return template.replace(/^/gm, indentStr);
}
export function getPredefinedDataType(ctx, qualifiedFieldName) {
const predefinedField = ctx.predefinedFields.get(qualifiedFieldName);
if (!predefinedField) {
throw new Error(`Predefined field not found: "${qualifiedFieldName}"`);
}
return {
dataType: predefinedField.dataType,
renderAs: predefinedField.renderAs,
name: predefinedField.fieldName,
};
}
export function localizedLabelTemplate(ctx, label) {
const { siteSchema, setLocalizedLabel: appendLocalizedLabel } = ctx;
const firstLanguage = getFirstSiteLanguage(siteSchema);
const defaultLabel = firstLanguage in label ? label[firstLanguage] : label.en;
if (!isMultilingual(siteSchema)) {
return defaultLabel;
}
appendLocalizedLabel(label);
return `{{ "${defaultLabel.replaceAll('"', '\\"')}" | t }}`;
}