UNPKG

@wordpress/media-utils

Version:
217 lines (208 loc) 4.9 kB
/** * A media attachment object in a REST API context. * * Simplified version of what's defined in the wp-types package. * * @see https://www.npmjs.com/package/wp-types */ interface WP_REST_API_Attachment { /** * Unique identifier for the attachment. */ id: number; /** * The ID of the featured media for the post. */ featured_media: number; /** * URL to the attachment. */ link: string; /** * The date the attachment was published, in the site's timezone. */ date: string; /** * The date the attachment was published, as GMT. */ date_gmt: string; /** * The date the attachment was last modified, in the site's timezone. */ modified: string; /** * The date the attachment was last modified, as GMT. */ modified_gmt: string; /** * An alphanumeric identifier for the attachment unique to its type. */ slug: string; /** * A named status for the attachment. */ status: string; /** * Type of Post for the attachment. */ type: 'attachment'; /** * Alternative text to display when attachment is not displayed. */ alt_text: string; /** * The attachment caption. */ caption: { /** * Caption for the attachment, as it exists in the database. Only present when using the 'edit' context. */ raw?: string; /** * HTML caption for the attachment, transformed for display. */ rendered: string; }; /** * The attachment description. */ description: { /** * Description for the attachment, as it exists in the database. Only present when using the 'edit' context. */ raw?: string; /** * HTML description for the attachment, transformed for display. */ rendered: string; }; /** * Attachment type. */ media_type: 'image' | 'file'; /** * The attachment MIME type. */ mime_type: string; /** * Details about the media file, specific to its type. */ media_details: { [ k: string ]: unknown; }; /** * The ID for the associated post of the attachment. */ post: number | null; /** * URL to the original attachment file. */ source_url: string; /** * List of the missing image sizes of the attachment. Only present when using the 'edit' context. */ missing_image_sizes?: string[]; /** * Permalink template for the attachment. Only present when using the 'edit' context and the post type is public. */ permalink_template?: string; /** * Slug automatically generated from the attachment title. Only present when using the 'edit' context and the post type is public. */ generated_slug?: string; /** * An array of the class names for the post container element. */ class_list: string[]; /** * The title for the attachment. */ title: { /** * Title for the attachment, as it exists in the database. Only present when using the 'edit' context. */ raw?: string; /** * HTML title for the attachment, transformed for display. */ rendered: string; }; /** * The ID for the author of the attachment. */ author: number; /** * Whether or not comments are open on the attachment. */ comment_status: string; /** * Whether or not the attachment can be pinged. */ ping_status: string; /** * Meta fields. */ meta: | [] | { [ k: string ]: unknown; }; /** * The theme file to use to display the attachment. */ template: string; _links: { [ k: string ]: { href: string; embeddable?: boolean; [ k: string ]: unknown; }[]; }; /** * The embedded representation of relations. Only present when the '_embed' query parameter is set. */ _embedded?: { /** * The author of the post. */ author: unknown[]; /** * The featured image post. */ 'wp:featuredmedia'?: WP_REST_API_Attachment[]; [ k: string ]: unknown; }; [ k: string ]: unknown; } /** * REST API attachment object with additional fields added by this project. */ export interface RestAttachment extends WP_REST_API_Attachment {} type BetterOmit< T, K extends PropertyKey > = { [ P in keyof T as P extends K ? never : P ]: T[ P ]; }; /** * Transformed attachment object. */ export type Attachment = BetterOmit< RestAttachment, 'alt_text' | 'source_url' | 'caption' | 'title' > & { alt: WP_REST_API_Attachment[ 'alt_text' ]; caption: WP_REST_API_Attachment[ 'caption' ][ 'raw' ] & string; title: WP_REST_API_Attachment[ 'title' ][ 'raw' ]; url: WP_REST_API_Attachment[ 'source_url' ]; poster?: WP_REST_API_Attachment[ 'source_url' ]; }; export type OnChangeHandler = ( attachments: Partial< Attachment >[] ) => void; export type OnErrorHandler = ( error: Error ) => void; export type CreateRestAttachment = Partial< RestAttachment >; export type AdditionalData = BetterOmit< CreateRestAttachment, 'meta' >; export interface CreateSideloadFile { image_size?: string; upload_request?: string; } export interface SideloadAdditionalData { post: RestAttachment[ 'id' ]; image_size?: string; }