UNPKG

@prismicio/helpers

Version:
38 lines (37 loc) 1.26 kB
"use strict"; 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