@prismicio/client
Version:
The official JavaScript + TypeScript client library for Prismic
29 lines (28 loc) • 1.36 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const isInternalURL = require("../lib/isInternalURL.cjs");
const asLink = require("./asLink.cjs");
const isFilled = require("./isFilled.cjs");
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 ? isFilled.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.asLink(linkFieldOrDocument, config.linkResolver);
const href = rawHref == null ? void 0 : rawHref;
const isExternal = typeof href === "string" ? !isInternalURL.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 {};
};
exports.asLinkAttrs = asLinkAttrs;
//# sourceMappingURL=asLinkAttrs.cjs.map