Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export default async function prerenderObjs(
objClassesBlacklist,
storeResult,
reportError
) {
console.time("[prerenderObjs]");
console.time("Loading all objs");
const objs = await Scrivito.load(() => allObjs(objClassesBlacklist));
console.timeEnd("Loading all objs");
console.log(`Loaded ${objs.length} objs`);
let failedCount = 0;
const objsGroups = chunk(objs, 10);
await asyncForEachSequential(objsGroups, async objsGroup =>
asyncForEach(objsGroup, async obj => {
try {
const prerenderedFiles = await prerenderObj(obj);
await asyncForEach(prerenderedFiles, storeResult);
} catch (e) {
failedCount += 1;
const pageId = obj.id();
const pageUrl = Scrivito.urlFor(obj);
reportError(
export default async function prerenderSitemap(
objClassesWhitelist,
storeResult
) {
console.time("[prerenderSitemap]");
const pages = await Scrivito.load(() =>
prerenderSitemapSearch(objClassesWhitelist).take()
);
const sitemapUrls = await Scrivito.load(() => pages.map(pageToSitemapUrl));
const content = sitemapUrlsToSitemapXml(sitemapUrls);
console.log(
`[prerenderSitemap] Generated sitemap.xml with ${sitemapUrls.length} items.`
);
console.timeEnd("[prerenderSitemap]");
await storeResult({ filename: "/sitemap.xml", content });
}
function configureGoogleAnalytics() {
return Scrivito.load(() => {
const rootPage = Scrivito.Obj.root();
if (!rootPage) {
return undefined;
}
return rootPage.get("googleAnalyticsTrackingId");
}).then(trackingId => {
if (trackingId) {
window.ga =
window.ga ||
function ga(...args) {
(window.ga.q = window.ga.q || []).push(args);
};
window.ga.l = +new Date();
window.ga("create", trackingId, "auto");
window.ga("set", "anonymizeIp", true);
window.ga("require", "urlChangeTracker");
function pageToSitemapUrl(page) {
return {
url: [
{ loc: Scrivito.urlFor(page) },
{ lastmod: formatDate(page.lastChanged(), "yyyy-mm-dd") },
],
};
}
function writeXmlContentToExtract(content) {
const metaTag = document.getElementsByName("scrivito-content-to-extract")[0];
metaTag.setAttribute("content", `data:text/xml;base64,${btoa(content)}`);
}
window.prerenderReady = false;
Scrivito.load(sitemapXml)
.then(writeXmlContentToExtract)
.then(() => {
window.prerenderReady = true;
});
componentDidMount() {
Scrivito.load(() => {
const rootPage = Scrivito.Obj.root();
if (!rootPage) {
return undefined;
}
return rootPage.get("intercomAppId");
}).then(intercomAppId => {
if (intercomAppId) {
Scrivito.finishLoading().then(() => {
installIntercom(intercomAppId);
this.setState({ intercomAppId });
});
}
});
}
componentDidMount() {
Scrivito.load(() => {
const link = this.props.page.get("link");
const url = link && Scrivito.urlFor(link);
return { link, url };
}).then(({ link, url }) => {
if (!link) {
return;
}
if (link.isExternal()) {
window.top.location.replace(url);
} else {
window.location.replace(url);
}
});
}