@prismicio/helpers
Version:
Set of helpers to manage Prismic data
22 lines (21 loc) • 1.97 kB
TypeScript
import { FilledLinkToDocumentField, FilledLinkToMediaField, FilledLinkToWebField, LinkField, PrismicDocument } from "@prismicio/types";
import { LinkResolverFunction } from "./types";
/**
* The return type of `asLink()`.
*/
type AsLinkReturnType<LinkResolverFunctionReturnType = string, Field extends LinkField | PrismicDocument | null | undefined = LinkField | PrismicDocument | null | undefined> = Field extends FilledLinkToWebField | FilledLinkToMediaField | FilledLinkToDocumentField | PrismicDocument ? LinkResolverFunctionReturnType | string | null : null;
/**
* Resolves any type of link field or document to a URL
*
* @typeParam LinkResolverFunctionReturnType - Link resolver function return
* type
* @param linkFieldOrDocument - Any kind of link field or a document to resolve
* @param linkResolver - An optional link resolver function, without it you're
* expected to use the `routes` options from the API
*
* @returns Resolved URL, null if provided link is empty
* @see Prismic link resolver documentation: {@link https://prismic.io/docs/technologies/link-resolver-javascript}
* @see Prismic API `routes` options documentation: {@link https://prismic.io/docs/technologies/route-resolver-nuxtjs}
*/
export declare const asLink: <LinkResolverFunctionReturnType = string, Field extends PrismicDocument<Record<string, any>, string, string> | FilledLinkToDocumentField<string, string, unknown> | import("@prismicio/types").EmptyLinkField<"Any"> | FilledLinkToWebField | FilledLinkToMediaField | null | undefined = PrismicDocument<Record<string, any>, string, string> | FilledLinkToDocumentField<string, string, unknown> | import("@prismicio/types").EmptyLinkField<"Any"> | FilledLinkToWebField | FilledLinkToMediaField | null | undefined>(linkFieldOrDocument: Field, linkResolver?: LinkResolverFunction<LinkResolverFunctionReturnType> | null | undefined) => AsLinkReturnType<LinkResolverFunctionReturnType, Field>;
export {};