UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

212 lines (182 loc) 3.54 kB
import type { AssetTag } from "./tag" /** * Asset types. */ export const AssetType = { All: "all", Audio: "audio", Document: "document", Image: "image", Video: "video", } as const /** * An object representing an asset returned by the Asset API. * * @see Prismic Asset API technical reference: {@link https://prismic.io/docs/asset-api-technical-reference} */ export type Asset = { /** * Asset ID. */ id: string /** * Asset URL. */ url: string /** * Asset creation date. */ created_at: number /** * Asset last modification date. */ last_modified: number /** * Asset filename. */ filename: string /** * Asset extension. */ extension: string /** * Asset size in bytes. */ size: number /** * Asset kind. */ kind: Exclude< (typeof AssetType)[keyof typeof AssetType], (typeof AssetType)["All"] > /** * Asset width in pixels. */ width?: number /** * Asset height in pixels. */ height?: number /** * Asset notes. */ notes?: string /** * Asset credits. */ credits?: string /** * Asset alt text. */ alt?: string /** * Asset tags. */ tags?: AssetTag[] /** * @internal */ origin_url?: string /** * @internal */ uploader_id?: string /** * @internal */ search_highlight?: { filename?: string[] notes?: string[] credits?: string[] alt?: string[] } } /** * Available query parameters when querying assets from the Asset API. * * @see Prismic Asset API technical reference: {@link https://prismic.io/docs/asset-api-technical-reference} */ export type GetAssetsParams = { // Pagination /** * Number of items to return. */ pageSize?: number /** * @internal */ cursor?: string // Filtering /** * Asset type to filter by. */ assetType?: (typeof AssetType)[keyof typeof AssetType] /** * Search query. */ keyword?: string /** * Asset IDs to filter by. */ ids?: string[] /** * Asset tags to filter by. */ tags?: string[] } /** * An object representing the result of querying assets from the Asset API. * * @see Prismic Asset API technical reference: {@link https://prismic.io/docs/asset-api-technical-reference} */ export type GetAssetsResult = { items: Asset[] total: number cursor?: string missing_ids?: string[] is_opensearch_result: boolean } /** * Parameters for uploading an asset to the Asset API. * * @see Prismic Asset API technical reference: {@link https://prismic.io/docs/asset-api-technical-reference} */ export type PostAssetParams = { file: BlobPart notes?: string credits?: string alt?: string } /** * Result of uploading an asset to the Asset API. * * @see Prismic Asset API technical reference: {@link https://prismic.io/docs/asset-api-technical-reference} */ export type PostAssetResult = Asset /** * Parameters for updating an asset in the Asset API. * * @see Prismic Asset API technical reference: {@link https://prismic.io/docs/asset-api-technical-reference} */ export type PatchAssetParams = { notes?: string credits?: string alt?: string filename?: string tags?: string[] } /** * Result of updating an asset in the Asset API. * * @see Prismic Asset API technical reference: {@link https://prismic.io/docs/asset-api-technical-reference} */ export type PatchAssetResult = Asset /** * Parameters for deleting an asset from the Asset API. * * @see Prismic Asset API technical reference: {@link https://prismic.io/docs/asset-api-technical-reference} */ export type BulkDeleteAssetsParams = { ids: string[] }