UNPKG

contentful-management

Version:
95 lines (94 loc) 3.34 kB
import type { DefaultElements, ISO8601Timestamp, Link, MakeRequest, MakeRequestPayload, VersionedLink } from '../common-types'; import type { AsyncActionProcessingOptions } from '../methods/action'; /** Entity types supported by the BulkAction API */ type Entity = 'Entry' | 'Asset'; type Collection<T> = Array<T>; type EntityError = { entity: VersionedLink<Entity> | Link<Entity>; error: any; }; export type BulkActionType = 'publish' | 'unpublish' | 'validate'; /** Represents the state of the BulkAction */ export declare enum BulkActionStatus { /** BulkAction is pending execution */ created = "created", /** BulkAction has been started and pending completion */ inProgress = "inProgress", /** BulkAction was completed successfully (terminal state) */ succeeded = "succeeded", /** BulkAction failed to complete (terminal state) */ failed = "failed" } declare const STATUSES: BulkActionStatus[]; type BulkActionStatuses = typeof STATUSES[number]; interface BulkActionFailedError { sys: { type: 'Error'; id: 'BulkActionFailed'; }; message?: string; details?: { errors: Collection<EntityError>; }; } export type BulkActionPayload = BulkActionPublishPayload | BulkActionUnpublishPayload | BulkActionValidatePayload; export interface BulkActionValidatePayload extends MakeRequestPayload { action?: 'publish'; entities: { sys?: { type: 'Array'; }; items: Collection<Link<Entity>>; }; } export interface BulkActionUnpublishPayload extends MakeRequestPayload { entities: { sys?: { type: 'Array'; }; items: Collection<Link<Entity>>; }; } export interface BulkActionPublishPayload extends MakeRequestPayload { entities: { sys?: { type: 'Array'; }; items: Collection<VersionedLink<Entity>>; }; } export type BulkActionSysProps = { id: string; type: 'BulkAction'; status: BulkActionStatuses; space: Link<'Space'>; environment: Link<'Environment'>; createdBy: Link<'User'>; createdAt: ISO8601Timestamp; updatedAt: ISO8601Timestamp; }; /** The object returned by the BulkActions API */ export interface BulkActionProps<TPayload extends BulkActionPayload = any> { sys: BulkActionSysProps; action: BulkActionType; /** original payload when BulkAction was created */ payload: TPayload; /** error information, if present */ error?: BulkActionFailedError; } export interface BulkActionApiMethods { /** Performs a new GET request and returns the wrapper BulkAction */ get(): BulkAction; /** Waits until the BulkAction is in one of the final states (`succeeded` or `failed`) and returns it. */ waitProcessing(options?: AsyncActionProcessingOptions): Promise<BulkAction>; } export interface BulkAction<T extends BulkActionPayload = any> extends BulkActionProps<T>, BulkActionApiMethods, DefaultElements<BulkActionProps<T>> { } /** * @private * @param makeRequest - function to make requests via an adapter * @param data - Raw BulkAction data * @return Wrapped BulkAction data */ export declare function wrapBulkAction<TPayload extends BulkActionPayload = any>(makeRequest: MakeRequest, data: BulkActionProps<BulkActionPayload>): BulkAction<TPayload>; export {};