UNPKG

arc-xp-custom-blocks

Version:

arc libraries for ingala

106 lines (105 loc) 3.2 kB
import generateResizedImageUrl from "./generateResizedImageUrl.js"; function searchPageMetaDataGenerator(fusionContext = {}, metaValue = () => { }) { var _a, _b, _c, _d; const { arcSite, globalContent = {}, requestUri, siteProperties = {} } = fusionContext; const { fallbackImageAlt, fallbackImageAuth, fallbackImageFocalPoint, fallbackImageUrl, keywords, metaData = { ogImageWidth: 1200, ogImageHeight: 630 }, resizerTokenVersion = "1", resizerURL, twitterUsername, websiteDomain, websiteName } = siteProperties; const { ogImageWidth, ogImageHeight, twitterCard } = metaData; const config = { resizerTokenVersion, resizerURL }; const promoItem = { url: fallbackImageUrl, auth: { [resizerTokenVersion]: fallbackImageAuth }, focal_point: fallbackImageFocalPoint }; const searchKeywords = ((_a = metaValue("keywords")) == null ? void 0 : _a.trim()) || (keywords == null ? void 0 : keywords.trim()); const searchTitle = ((_b = metaValue("title")) == null ? void 0 : _b.trim()) || websiteName; const imageUrl = generateResizedImageUrl(promoItem, config, ogImageWidth, ogImageHeight); const robots = ((_c = metaValue("robots")) == null ? void 0 : _c.trim()) || ((_d = siteProperties == null ? void 0 : siteProperties.robots) == null ? void 0 : _d.trim()); const url = requestUri && `${websiteDomain}${requestUri}` || websiteDomain; const metadata = {}; const metadataProperties = { "robots": robots && { name: "robots", content: robots }, "og:site_name": websiteName && { property: "og:site_name", content: websiteName }, "og:type": { property: "og:type", content: "website" }, "og:url": url && { name: "og:url", content: url }, "og:title": searchTitle && { property: "og:title", content: searchTitle }, "twitter:title": searchTitle && { name: "twitter:title", content: searchTitle }, "author": websiteName && { name: "author", content: websiteName }, "keywords": searchKeywords && { name: "keywords", content: searchKeywords }, "og:image": imageUrl && { property: "og:image", content: imageUrl }, "twitter:image": imageUrl && { name: "twitter:image", content: imageUrl }, "og:image:alt": fallbackImageAlt && { property: "og:image:alt", content: fallbackImageAlt }, "twitter:image:alt": fallbackImageAlt && { name: "twitter:image:alt", content: fallbackImageAlt }, "og:image:width": imageUrl && { property: "og:image:width", content: ogImageWidth }, "og:image:height": imageUrl && { property: "og:image:height", content: ogImageHeight }, "twitter:card": twitterCard && { name: "twitter:card", content: twitterCard }, "twitter:site": twitterUsername && { name: "twitter:site", content: `@${twitterUsername}` } }; Object.entries(metadataProperties).forEach(([key, value]) => { value ? metadata[key] = value : null; }); return metadata; } export { searchPageMetaDataGenerator as default };