Skip to content

Commit

Permalink
docs: update link resolver, route resolver, and rich text serializer …
Browse files Browse the repository at this point in the history
…names (#297)
  • Loading branch information
angeloashmore authored May 17, 2023
1 parent 1fce99c commit a991a6c
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 32 deletions.
6 changes: 3 additions & 3 deletions src/createClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ export type ClientConfig = {
ref?: RefStringOrThunk;

/**
* A list of Route Resolver objects that define how a document's `url` property
* A list of route resolver objects that define how a document's `url` property
* is resolved.
*
* {@link https://prismic.io/docs/route-resolver}
Expand Down Expand Up @@ -327,7 +327,7 @@ type ResolvePreviewArgs<LinkResolverReturnType> = {
linkResolver?: LinkResolverFunction<LinkResolverReturnType>;

/**
* A fallback URL if the Link Resolver does not return a value.
* A fallback URL if the link resolver does not return a value.
*/
defaultURL: string;

Expand Down Expand Up @@ -415,7 +415,7 @@ export class Client<TDocuments extends PrismicDocument = PrismicDocument> {
accessToken?: string;

/**
* A list of Route Resolver objects that define how a document's `url` field
* A list of route resolver objects that define how a document's `url` field
* is resolved.
*
* {@link https://prismic.io/docs/route-resolver}
Expand Down
6 changes: 3 additions & 3 deletions src/helpers/asHTML.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ export type HTMLRichTextSerializer =
| HTMLRichTextFunctionSerializer;

/**
* Creates a default HTML rich text Serializer with a given Link Resolver providing
* Creates a default HTML rich text serializer with a given link resolver providing
* sensible and safe defaults for every node type
*
* @internal
Expand Down Expand Up @@ -211,7 +211,7 @@ type AsHTMLConfig = {
linkResolver?: LinkResolverFunction | null;

/**
* An optional rich text Serializer, unhandled cases will fallback to the default serializer
* An optional rich text serializer, unhandled cases will fallback to the default serializer
*/
serializer?: HTMLRichTextSerializer | null;
};
Expand Down Expand Up @@ -253,7 +253,7 @@ export const asHTML: {
* @param richTextField - A rich text or title field from Prismic
* @param linkResolver - An optional link resolver function to resolve links,
* without it you're expected to use the `routes` options from the API
* @param serializer - An optional rich text Serializer, unhandled cases will fallback
* @param serializer - An optional rich text serializer, unhandled cases will fallback
* to the default serializer
*
* @returns HTML equivalent of the provided rich text or title field
Expand Down
22 changes: 11 additions & 11 deletions src/helpers/asLink.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ import { documentToLinkField } from "./documentToLinkField";
/**
* Resolves a link to a Prismic document to a URL
*
* @typeParam ReturnType - Return type of your Link Resolver function, useful if
* @typeParam ReturnType - Return type of your link resolver function, useful if
* you prefer to return a complex object
* @param linkToDocumentField - A document link field to resolve
*
* @returns Resolved URL
* @see Prismic Link Resolver documentation: {@link https://prismic.io/docs/route-resolver#link-resolver}
* @see Prismic link resolver documentation: {@link https://prismic.io/docs/route-resolver#link-resolver}
*/
export type LinkResolverFunction<ReturnType = string | null | undefined> = (
linkToDocumentField: FilledContentRelationshipField,
Expand All @@ -25,7 +25,7 @@ export type LinkResolverFunction<ReturnType = string | null | undefined> = (
type AsLinkConfig<LinkResolverFunctionReturnType = string | null | undefined> =
{
/**
* An optional Link Resolver function. Without it, you are
* An optional link resolver function. Without it, you are
* expected to use the `routes` options from the API.
*/
linkResolver?: LinkResolverFunction<LinkResolverFunctionReturnType> | null;
Expand Down Expand Up @@ -64,14 +64,14 @@ export const asLink: {
/**
* Resolves any type of link field or Prismic document to a URL.
*
* @typeParam LinkResolverFunctionReturnType - Link Resolver function return
* @typeParam LinkResolverFunctionReturnType - link resolver function return
* type
* @typeParam Field - Link field or Prismic document to resolve to a URL
* @param linkFieldOrDocument - Any kind of link field or a document to resolve
* @param config - Configuration that determines the output of `asLink()`
*
* @returns Resolved URL or, if the provided link field or document is empty, `null`
* @see Prismic Link Resolver documentation: {@link https://prismic.io/docs/route-resolver#link-resolver}
* @see Prismic link resolver documentation: {@link https://prismic.io/docs/route-resolver#link-resolver}
* @see Prismic API `routes` options documentation: {@link https://prismic.io/docs/route-resolver}
*/
<
Expand All @@ -89,15 +89,15 @@ export const asLink: {
/**
* Resolves any type of link field or Prismic document to a URL.
*
* @typeParam LinkResolverFunctionReturnType - Link Resolver function return
* @typeParam LinkResolverFunctionReturnType - link resolver function return
* type
* @typeParam Field - Link field or Prismic document to resolve to a URL
* @param linkFieldOrDocument - Any kind of link field or a document to resolve
* @param linkResolver - An optional Link Resolver function. Without it, you are
* @param linkResolver - An optional link resolver function. Without it, you are
* expected to use the `routes` options from the API
*
* @returns Resolved URL or, if the provided link field or document is empty, `null`
* @see Prismic Link Resolver documentation: {@link https://prismic.io/docs/route-resolver#link-resolver}
* @see Prismic link resolver documentation: {@link https://prismic.io/docs/route-resolver#link-resolver}
* @see Prismic API `routes` options documentation: {@link https://prismic.io/docs/route-resolver}
*
* @deprecated Use object-style configuration instead.
Expand Down Expand Up @@ -172,7 +172,7 @@ export const asLink: {

case LinkType.Document: {
if ("id" in linkField && config.linkResolver) {
// When using Link Resolver...
// When using link resolver...
const resolvedURL = config.linkResolver(linkField);

if (resolvedURL != null) {
Expand All @@ -184,14 +184,14 @@ export const asLink: {
}

if ("url" in linkField && linkField.url) {
// When using Route Resolver...
// When using route resolver...
return linkField.url as AsLinkReturnType<
LinkResolverFunctionReturnType,
Field
>;
}

// When empty or Link Resolver and Route Resolver are not used...
// When empty or link resolver and route resolver are not used...
return null as AsLinkReturnType<LinkResolverFunctionReturnType, Field>;
}

Expand Down
4 changes: 2 additions & 2 deletions src/helpers/asLinkAttrs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,14 @@ type AsLinkAttrsReturnType<
*
* 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
* @typeParam LinkResolverFunctionReturnType - link resolver function return
* type
* @typeParam Field - Link field or Prismic document to resolve to link attributes
* @param linkFieldOrDocument - Any kind of link field or a document to resolve
* @param config - Configuration that determines the output of `asLinkAttrs()`
*
* @returns Resolved set of link attributes or, if the provided link field or document is empty, and empty object
* @see Prismic Link Resolver documentation: {@link https://prismic.io/docs/route-resolver#link-resolver}
* @see Prismic link resolver documentation: {@link https://prismic.io/docs/route-resolver#link-resolver}
* @see Prismic API `routes` options documentation: {@link https://prismic.io/docs/route-resolver}
*/
export const asLinkAttrs = <
Expand Down
22 changes: 11 additions & 11 deletions test/helpers-asLink.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ it("returns null when link field is empty", () => {
expect(asLink(field, linkResolver)).toBeNull();
});

it("resolves a link to document field without Route Resolver", () => {
it("resolves a link to document field without route resolver", () => {
const field = {
id: "XvoFFREAAM0WGBng",
type: "page",
Expand All @@ -48,28 +48,28 @@ it("resolves a link to document field without Route Resolver", () => {

expect(
asLink(field),
"returns null if both Link Resolver and Route Resolver are not used",
"returns null if both link resolver and route resolver are not used",
).toBeNull();
expect(
asLink(field, { linkResolver }),
"uses Link Resolver URL if Link Resolver returns a non-nullish value",
"uses link resolver URL if link resolver returns a non-nullish value",
).toBe("/test");
// TODO: Remove when we remove support for deprecated tuple-style configuration.
expect(
asLink(field, linkResolver),
"uses Link Resolver URL if Link Resolver returns a non-nullish value (deprecated tuple configuration)",
"uses link resolver URL if link resolver returns a non-nullish value (deprecated tuple configuration)",
).toBe("/test");
expect(
asLink(field, { linkResolver: () => undefined }),
"returns null if Link Resolver returns undefined",
"returns null if link resolver returns undefined",
).toBeNull();
expect(
asLink(field, { linkResolver: () => null }),
"returns null if Link Resolver returns null",
"returns null if link resolver returns null",
).toBeNull();
});

it("resolves a link to document field with Route Resolver", () => {
it("resolves a link to document field with route resolver", () => {
const field = {
id: "XvoFFREAAM0WGBng",
type: "page",
Expand All @@ -84,19 +84,19 @@ it("resolves a link to document field with Route Resolver", () => {

expect(
asLink(field),
"uses Route Resolver URL if Link Resolver is not given",
"uses route resolver URL if link resolver is not given",
).toBe(field.url);
expect(
asLink(field, { linkResolver: () => "link-resolver-value" }),
"uses Link Resolver URL if Link Resolver returns a non-nullish value",
"uses link resolver URL if link resolver returns a non-nullish value",
).toBe("link-resolver-value");
expect(
asLink(field, { linkResolver: () => undefined }),
"uses Route Resolver URL if Link Resolver returns undefined",
"uses route resolver URL if link resolver returns undefined",
).toBe(field.url);
expect(
asLink(field, { linkResolver: () => null }),
"uses Route Resolver URL if Link Resolver returns null",
"uses route resolver URL if link resolver returns null",
).toBe(field.url);
});

Expand Down
4 changes: 2 additions & 2 deletions test/helpers-asLinkAttrs.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ it("returns empty object when link to web field is empty", (ctx) => {
expect(asLinkAttrs(field)).toEqual({});
});

it("resolves a link to document field with Route Resolver", (ctx) => {
it("resolves a link to document field with route resolver", (ctx) => {
const field = ctx.mock.value.link({ type: "Document" });
field.url = "/url";

Expand All @@ -47,7 +47,7 @@ it("resolves a link to document field with Route Resolver", (ctx) => {
});
});

it("resolves a link to document field without Route Resolver", (ctx) => {
it("resolves a link to document field without route resolver", (ctx) => {
const field = ctx.mock.value.link({ type: "Document" });
field.url = undefined;

Expand Down

0 comments on commit a991a6c

Please sign in to comment.