{"version":3,"file":"asLink.cjs","sources":["../../../src/graphql/asLink.ts"],"sourcesContent":["// TODO: Migrate once fixed https://github.com/microsoft/TypeScript/issues/33079\nimport {\n\tFilledMinimalLinkToDocumentField,\n\tLinkField,\n\tLinkType,\n} from \"@prismicio/types/dist/graphql\";\nimport { LinkResolverFunction } from \"./types\";\n\n/**\n * Resolves any type of link field to a URL\n *\n * @typeParam LinkResolverLinkToDocumentField - Link resolver link to document\n *   field type\n * @typeParam LinkResolverFunctionReturnType - Link resolver function return\n *   type\n * @param linkField - Any kind of link field to resolve\n * @param linkResolver - A link resolver function, without it you're expected to\n *   use the `routes` from the API\n *\n * @returns Resolved URL, null if provided link is empty\n * @experimental\n * @see Prismic link resolver documentation: {@link https://prismic.io/docs/technologies/link-resolver-javascript}\n * @see Prismic API `routes` options documentation: {@link https://prismic.io/docs/technologies/route-resolver-nuxtjs}\n */\nexport const asLink = <\n\tLinkResolverLinkToDocumentField extends FilledMinimalLinkToDocumentField = FilledMinimalLinkToDocumentField,\n\tLinkResolverFunctionReturnType = string,\n>(\n\tlinkField: LinkField<LinkResolverLinkToDocumentField>,\n\tlinkResolver?: LinkResolverFunction<\n\t\tLinkResolverLinkToDocumentField,\n\t\tLinkResolverFunctionReturnType\n\t> | null,\n):\n\t| ReturnType<\n\t\t\tLinkResolverFunction<\n\t\t\t\tLinkResolverLinkToDocumentField,\n\t\t\t\tLinkResolverFunctionReturnType\n\t\t\t>\n\t  >\n\t| string\n\t| null => {\n\tif (!linkField) {\n\t\treturn null;\n\t}\n\n\tif (\"url\" in linkField) {\n\t\treturn linkField.url;\n\t} else if (linkField._linkType === LinkType.Document) {\n\t\treturn linkResolver ? linkResolver(linkField) : null;\n\t} else {\n\t\treturn null;\n\t}\n};\n"],"names":["LinkType"],"mappings":";;;AAwBa,MAAA,SAAS,CAIrB,WACA,iBAYS;AACT,MAAI,CAAC,WAAW;AACR,WAAA;AAAA,EACP;AAED,MAAI,SAAS,WAAW;AACvB,WAAO,UAAU;AAAA,EACP,WAAA,UAAU,cAAcA,QAAAA,SAAS,UAAU;AAC9C,WAAA,eAAe,aAAa,SAAS,IAAI;AAAA,EAAA,OAC1C;AACC,WAAA;AAAA,EACP;AACF;;"}