gatsby-source-prismic
Version:
Gatsby source plugin for building websites using Prismic as a data source
33 lines (30 loc) • 1.08 kB
text/typescript
import * as prismicT from "@prismicio/types";
import * as RTE from "fp-ts/ReaderTaskEither";
import { pipe } from "fp-ts/function";
import { Dependencies } from "../types";
/**
* Queries a list of documents by their IDs from a Prismic repository using the
* environment's configuration. The following fields from the environment's
* `pluginOptions` are used, in addition to those used in `createClient`:
*
* - `pluginOptions.releaseID`: Prismic Release ID from which to fetch documents.
* If not provided, the master ref is used.
* - `pluginOptions.fetchLinks`: List of document link fields to fetch.
* - `pluginOptions.lang`: Language of documents to fetch. If not provided, all
* languages are fetched.
*
* @returns List of Prismic documents.
*/
export const queryDocumentsByIds = (
ids: string[],
): RTE.ReaderTaskEither<Dependencies, Error, prismicT.PrismicDocument[]> =>
pipe(
RTE.ask<Dependencies>(),
RTE.chain((env) =>
RTE.fromTask(() =>
env.prismicClient.getAllByIDs(ids, {
pageSize: env.pluginOptions.pageSize,
}),
),
),
);