UNPKG

gatsby-source-prismic

Version:

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

36 lines (32 loc) 1.14 kB
import * as RTE from "fp-ts/ReaderTaskEither"; import { pipe } from "fp-ts/function"; import { buildInferredNodeType } from "../lib/buildInferredNodeType"; import { createType } from "../lib/createType"; import { getTypeName } from "../lib/getTypeName"; import { Dependencies, FieldConfigCreator } from "../types"; /** * Builds a GraphQL field configuration object for an Integration Fields Custom * Type field. It uses the `@link` extension to connect data to the field. Data * for each Integration Fields field is created as a separate node to allow * Gatsby to infer the fields and types. The resulting configuration object can * be used in a GraphQL type. * * This function registers a typepath for the field. * * @param path - Path to the field. * * @returns GraphQL field configuration object. */ export const buildIntegrationFieldConfig: FieldConfigCreator = ( path: string[], ) => pipe( RTE.ask<Dependencies>(), RTE.chain(() => buildInferredNodeType([...path, "IntegrationType"])), RTE.chainFirst(createType), RTE.map(getTypeName), RTE.map((type) => ({ type, extensions: { link: {} }, })), );