UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

85 lines (75 loc) 2.44 kB
import type { PrismicDocument, PrismicDocumentWithUID, } from "../../value/document" /** * An object representing the parameters required when creating a document * through the Migration API. * * @typeParam TDocument - Type of the Prismic document to create. * * @see Prismic Migration API technical reference: {@link https://prismic.io/docs/migration-api-technical-reference} */ export type PostDocumentParams< TDocument extends PrismicDocument = PrismicDocument, > = TDocument extends PrismicDocument<infer TData, infer TType, infer TLang> ? { title: string type: TType lang: TLang alternate_language_id?: string tags?: string[] data: TData | Record<string, never> } & (TDocument extends PrismicDocumentWithUID ? { uid: TDocument["uid"] } : { uid?: TDocument["uid"] }) : never /** * Result of creating a document with the Migration API. * * @typeParam TDocument - Type of the created Prismic document. * * @see Prismic Asset API technical reference: {@link https://prismic.io/docs/asset-api-technical-reference} */ export type PostDocumentResult< TDocument extends PrismicDocument = PrismicDocument, > = TDocument extends PrismicDocument<infer _TData, infer TType, infer TLang> ? { title: string id: string type: TType lang: TLang } & (TDocument["uid"] extends string ? { uid: TDocument["uid"] } : { uid?: TDocument["uid"] }) : never /** * An object representing the parameters required when updating a document * through the Migration API. * * @typeParam TDocument - Type of the Prismic document to update. * * @see Prismic Migration API technical reference: {@link https://prismic.io/docs/migration-api-technical-reference} */ export type PutDocumentParams< TDocument extends PrismicDocument = PrismicDocument, > = { title?: string uid?: string tags?: string[] // We don't need to infer the document type as above here because we don't // need to pair the document type with the document data in put requests. data: TDocument["data"] | Record<string, never> } /** * Result of updating a document with the Migration API. * * @typeParam TDocument - Type of the updated Prismic document. * * @see Prismic Asset API technical reference: {@link https://prismic.io/docs/asset-api-technical-reference} */ export type PutDocumentResult< TDocument extends PrismicDocument = PrismicDocument, > = PostDocumentResult<TDocument>