@prismicio/client
Version:
The official JavaScript + TypeScript client library for Prismic
109 lines (108 loc) • 3.39 kB
TypeScript
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);
}