@prismicio/client
Version:
The official JavaScript + TypeScript client library for Prismic
29 lines (28 loc) • 1.22 kB
JavaScript
import { isInternalURL } from "../lib/isInternalURL.js";
import { asLink } from "./asLink.js";
import { link } from "./isFilled.js";
const asLinkAttrs = (linkFieldOrDocument, config = {}) => {
if (linkFieldOrDocument && // eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore - Bug in TypeScript 4.9: https://github.com/microsoft/TypeScript/issues/51501
("link_type" in linkFieldOrDocument ? link(linkFieldOrDocument) : linkFieldOrDocument)) {
const target = (
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore - Bug in TypeScript 4.9: https://github.com/microsoft/TypeScript/issues/51501
"target" in linkFieldOrDocument ? linkFieldOrDocument.target : void 0
);
const rawHref = asLink(linkFieldOrDocument, config.linkResolver);
const href = rawHref == null ? void 0 : rawHref;
const isExternal = typeof href === "string" ? !isInternalURL(href) : false;
const rel = config.rel ? config.rel({ href, isExternal, target }) : isExternal ? "noreferrer" : void 0;
return {
href,
target,
rel: rel == null ? void 0 : rel
};
}
return {};
};
export {
asLinkAttrs
};
//# sourceMappingURL=asLinkAttrs.js.map