UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

46 lines (45 loc) 2.98 kB
import { FilledContentRelationshipField } from "../types/value/contentRelationship.cjs"; import { FilledLinkToMediaField } from "../types/value/linkToMedia.cjs"; import { FilledLinkToWebField, LinkField } from "../types/value/link.cjs"; import { PrismicDocument } from "../types/value/document.cjs"; import { AsLinkReturnType, LinkResolverFunction } from "./asLink.cjs"; //#region src/helpers/asLinkAttrs.d.ts type AsLinkAttrsConfigRelArgs<LinkResolverFunctionReturnType = ReturnType<LinkResolverFunction>, Field extends LinkField | PrismicDocument | null | undefined = LinkField | PrismicDocument | null | undefined> = { href: NonNullable<AsLinkReturnType<LinkResolverFunctionReturnType, Field>> | undefined; isExternal: boolean; target?: string; }; type AsLinkAttrsConfig<LinkResolverFunctionReturnType = ReturnType<LinkResolverFunction>, Field extends LinkField | PrismicDocument | null | undefined = LinkField | PrismicDocument | null | undefined> = { linkResolver?: LinkResolverFunction<LinkResolverFunctionReturnType>; rel?: (args: AsLinkAttrsConfigRelArgs<LinkResolverFunctionReturnType, Field>) => string | undefined | void; }; /** The return type of `asLinkAttrs()`. */ type AsLinkAttrsReturnType<LinkResolverFunctionReturnType = ReturnType<LinkResolverFunction>, Field extends LinkField | PrismicDocument | null | undefined = LinkField | PrismicDocument | null | undefined> = Field extends FilledLinkToWebField | FilledLinkToMediaField | FilledContentRelationshipField | PrismicDocument ? { href: NonNullable<AsLinkReturnType<LinkResolverFunctionReturnType, Field>> | undefined; target?: string; rel?: string; } : { href?: undefined; target?: undefined; rel?: undefined; }; /** * Resolves any type of link field or Prismic page to a set of link attributes. The attributes are * designed to be passed to link HTML elements, like `<a>`. * * If a resolved URL is external (i.e. starts with a protocol like `https://`), `rel` is returned as * `"noreferrer"`. * * @typeParam LinkResolverFunctionReturnType - Link resolver function return * type * @typeParam Field - Link field or Prismic page to resolve to link attributes * @param linkFieldOrDocument - Any kind of link field or a page to resolve * @param config - Configuration that determines the output of `asLinkAttrs()` * @returns Resolved set of link attributes or, if the provided link field or page is empty, and * empty object * @see Learn about route resolvers and link resolvers: {@link https://prismic.io/docs/routes} */ declare const asLinkAttrs: <LinkResolverFunctionReturnType = ReturnType<LinkResolverFunction>, Field extends LinkField | PrismicDocument | null | undefined = LinkField | PrismicDocument | null | undefined>(linkFieldOrDocument: Field, config?: AsLinkAttrsConfig<LinkResolverFunctionReturnType>) => AsLinkAttrsReturnType<LinkResolverFunctionReturnType>; //#endregion export { AsLinkAttrsConfig, asLinkAttrs }; //# sourceMappingURL=asLinkAttrs.d.cts.map