UNPKG

gatsby-source-prismic

Version:

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

32 lines (31 loc) 1.92 kB
import * as prismic from "@prismicio/client"; import type { NodePluginArgs } from "gatsby"; import type { FieldModelValueType, PrismicDocumentForModel } from "../types"; import type { PluginOptions } from "../types"; type NormalizeDocumentFieldArgs<Model extends prismic.CustomTypeModelField = prismic.CustomTypeModelField> = { model: Model; value: FieldModelValueType<Model>; path: string[]; gatsbyNodeArgs: NodePluginArgs; pluginOptions: PluginOptions; sharedSliceModels: prismic.SharedSliceModel[]; }; type NormalizeDocumentFieldReturnType<Model extends prismic.CustomTypeModelField = prismic.CustomTypeModelField> = Model extends prismic.CustomTypeModelGroupField ? prismic.GroupField<{ [P in keyof NonNullable<NonNullable<Model["config"]>["fields"]>]: NormalizeDocumentFieldReturnType<NonNullable<NonNullable<Model["config"]>["fields"]>[P]>; }> : Model extends prismic.CustomTypeModelLinkField ? FieldModelValueType<Model> & { localFile: string | null; } : Model extends prismic.CustomTypeModelEmbedField ? string | null : Model extends prismic.CustomTypeModelImageField<infer ThumbnailNames> ? FieldModelValueType<Model> & { localFile: string | null; } & { [ThumbnailName in keyof ThumbnailNames]: prismic.ImageFieldImage & { localFile: string | null; }; } : Model extends prismic.CustomTypeModelIntegrationField ? string | null : FieldModelValueType<Model>; type NormalizeDocumentArgs<Model extends prismic.CustomTypeModel> = Omit<NormalizeDocumentFieldArgs, "model" | "value" | "path"> & { document: PrismicDocumentForModel<Model>; model: Model; }; export declare const normalizeDocument: <Model extends prismic.CustomTypeModel<string, prismic.CustomTypeModelDefinition<string>>>(args: NormalizeDocumentArgs<Model>) => Promise<Omit<PrismicDocumentForModel<Model>, "data"> & { data: Record<string, NormalizeDocumentFieldReturnType>; }>; export {};