UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

29 lines (27 loc) 1.26 kB
const require_link = require('../types/value/link.cjs'); const require_documentToLinkField = require('./documentToLinkField.cjs'); //#region src/helpers/asLink.ts const asLink = (linkFieldOrDocument, ...configObjectOrTuple) => { if (!linkFieldOrDocument) return null; const linkField = "link_type" in linkFieldOrDocument ? linkFieldOrDocument : require_documentToLinkField.documentToLinkField(linkFieldOrDocument); const [configObjectOrLinkResolver] = configObjectOrTuple; let config; if (typeof configObjectOrLinkResolver === "function" || configObjectOrLinkResolver == null) config = { linkResolver: configObjectOrLinkResolver }; else config = { ...configObjectOrLinkResolver }; switch (linkField.link_type) { case require_link.LinkType.Media: case require_link.LinkType.Web: return "url" in linkField ? linkField.url : null; case require_link.LinkType.Document: if ("id" in linkField && config.linkResolver) { const resolvedURL = config.linkResolver(linkField); if (resolvedURL != null) return resolvedURL; } if ("url" in linkField && linkField.url) return linkField.url; return null; case require_link.LinkType.Any: default: return null; } }; //#endregion exports.asLink = asLink; //# sourceMappingURL=asLink.cjs.map