@prismicio/helpers
Version:
Set of helpers to manage Prismic data
38 lines (37 loc) • 1.26 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const types = require("@prismicio/types");
const documentToLinkField = require("./documentToLinkField.cjs");
const asLink = (linkFieldOrDocument, linkResolver) => {
if (!linkFieldOrDocument) {
return null;
}
const linkField = (
// prettier-ignore
// @ts-expect-error - Bug in TypeScript 4.9: https://github.com/microsoft/TypeScript/issues/51501
// TODO: Remove the `prettier-ignore` comment when this bug is fixed.
"link_type" in linkFieldOrDocument ? linkFieldOrDocument : documentToLinkField.documentToLinkField(linkFieldOrDocument)
);
switch (linkField.link_type) {
case types.LinkType.Media:
case types.LinkType.Web:
return "url" in linkField ? linkField.url : null;
case types.LinkType.Document: {
if ("id" in linkField && linkResolver) {
const resolvedURL = linkResolver(linkField);
if (resolvedURL != null) {
return resolvedURL;
}
}
if ("url" in linkField && linkField.url) {
return linkField.url;
}
return null;
}
case types.LinkType.Any:
default:
return null;
}
};
exports.asLink = asLink;
//# sourceMappingURL=asLink.cjs.map