UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

109 lines (108 loc) 3.39 kB
import type { Asset } from "../api/asset/asset"; import type { FilledImageFieldImage } from "../value/image"; import type { LinkToMediaField } from "../value/linkToMedia"; import { type RTImageNode } from "../value/richText"; import type { InjectMigrationSpecificTypes } from "./Document"; /** * An asset to be uploaded to Prismic media library. */ export type MigrationAssetConfig = { /** * ID the assets is indexed with on the migration instance. * * @remarks * This property's value is not necessarily the same as the as the one in the * `file` property. It is mainly used for deduplication within a `Migration` * instance. */ id: string | URL | File | NonNullable<ConstructorParameters<File>[0]>[0]; /** * File to be uploaded as an asset. */ file: string | URL | File | NonNullable<ConstructorParameters<File>[0]>[0]; /** * Filename of the asset. */ filename: string; /** * Notes about the asset. Notes are private and only visible in Prismic media * library. */ notes?: string; /** * Credits and copyright for the asset if any. */ credits?: string; /** * Alternate text for the asset. */ alt?: string; /** * Tags associated with the asset. * * @remarks * Tags should be at least 3 characters long and 20 characters at most. */ tags?: string[]; }; /** * An image field in a migration. */ export type MigrationImage = PrismicMigrationAsset | ({ /** * A reference to the migration asset used to resolve the image field's * value. */ id: PrismicMigrationAsset; } & Record<string, PrismicMigrationAsset>); /** * A link to media field in a migration. */ export type MigrationLinkToMedia = Pick<LinkToMediaField<"filled">, "link_type" | "text"> & { /** * A reference to the migration asset used to resolve the link to media * field's value. */ id: PrismicMigrationAsset; }; /** * The minimum amount of information needed to represent a link to media field * with the migration API. */ export type MigrationLinkToMediaField = Pick<LinkToMediaField<"filled">, "link_type" | "id" | "text"> | LinkToMediaField<"empty">; /** * A rich text image node in a migration. */ export type MigrationRTImageNode = InjectMigrationSpecificTypes<Pick<RTImageNode, "type" | "linkTo">> & { /** * A reference to the migration asset used to resolve the rich text image * node's value. */ id: PrismicMigrationAsset; }; /** * A migration asset used with the Prismic Migration API. */ export declare class PrismicMigrationAsset { /** * Asset object from Prismic, available once created. */ asset?: Asset; /** * Configuration of the asset. */ config: MigrationAssetConfig; /** * The initial field value this migration field was created with. */ originalField?: FilledImageFieldImage | LinkToMediaField<"filled"> | RTImageNode; /** * Creates a migration asset used with the Prismic Migration API. * * @param config - Configuration of the asset. * @param initialField - The initial field value if any. * * @returns A migration asset instance. */ constructor(config: MigrationAssetConfig, initialField?: FilledImageFieldImage | LinkToMediaField<"filled"> | RTImageNode); }