Files
web/server/routers/contentstack/base/utils.ts

32 lines
987 B
TypeScript

import { removeMultipleSlashes } from "@/utils/url"
import { InternalExternalLink, InternalExternalLinkData } from "./output"
export function makeLinkObjectFromInternalExternalLink(
data: InternalExternalLinkData | undefined
): InternalExternalLink | null {
if (!data) {
return null
}
const linkConnectionNode =
data.page_link.linkConnection.edges[0]?.node || null
const isExternalLink = data.is_external_link && data.external_link.href
const isOriginalLink = linkConnectionNode?.web?.original_url
const externalLink = data.external_link
const href = isExternalLink
? externalLink.href
: linkConnectionNode?.web?.original_url ||
removeMultipleSlashes(
`/${linkConnectionNode.system.locale}/${linkConnectionNode.url}`
)
const title = isExternalLink ? externalLink.title : data.page_link.link_title
return {
openInNewTab: data.open_in_new_tab,
title,
href,
isExternal: !!(isExternalLink || isOriginalLink),
}
}