UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

69 lines (59 loc) 2.4 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>