@prismicio/client
Version:
The official JavaScript + TypeScript client library for Prismic
61 lines (60 loc) • 2.28 kB
TypeScript
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[];
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>;