UNPKG

gatsby-source-prismic

Version:

Gatsby source plugin for building websites using Prismic as a data source

28 lines (24 loc) 902 B
import * as RTE from "fp-ts/ReaderTaskEither"; import { constVoid, pipe } from "fp-ts/function"; import { Dependencies, Mutable } from "../types"; import { createGloballyUniqueNodes } from "./createGloballyUniqueNodes"; import { normalizeDocuments } from "./normalizeDocuments"; import { queryDocumentsByIds } from "./queryDocumentsByIds"; /** * Queries documents in a list of Prismic document IDs from the environment's * Prismic repository and creates nodes for each document. * * @param documentIds - List of Prismic document IDs to query and with which to * create nodes. */ export const sourceNodesForDocumentIds = ( documentIds: string[], ): RTE.ReaderTaskEither<Dependencies, Error, void> => pipe( queryDocumentsByIds(documentIds), RTE.chainW(normalizeDocuments), RTE.chainW((docs) => createGloballyUniqueNodes(docs as Mutable<typeof docs>), ), RTE.map(constVoid), );