UNPKG

contentful-management

Version:
60 lines (57 loc) 2.14 kB
import { toPlainObject, freezeSys } from 'contentful-sdk-core'; import copy from 'fast-copy'; import enhanceWithMethods from '../enhance-with-methods.js'; import { pollAsyncActionStatus } from '../methods/action.js'; /* eslint-disable @typescript-eslint/no-explicit-any */ /** Represents the state of the BulkAction */ var BulkActionStatus; (function (BulkActionStatus) { /** BulkAction is pending execution */ BulkActionStatus["created"] = "created"; /** BulkAction has been started and pending completion */ BulkActionStatus["inProgress"] = "inProgress"; /** BulkAction was completed successfully (terminal state) */ BulkActionStatus["succeeded"] = "succeeded"; /** BulkAction failed to complete (terminal state) */ BulkActionStatus["failed"] = "failed"; })(BulkActionStatus || (BulkActionStatus = {})); Object.values(BulkActionStatus); /** * @internal */ function createBulkActionApi(makeRequest) { const getParams = (self) => { const bulkAction = self.toPlainObject(); return { spaceId: bulkAction.sys.space.sys.id, environmentId: bulkAction.sys.environment.sys.id, bulkActionId: bulkAction.sys.id, }; }; return { async get() { const params = getParams(this); return makeRequest({ entityType: 'BulkAction', action: 'get', params, }).then((bulkAction) => wrapBulkAction(makeRequest, bulkAction)); }, async waitProcessing(options) { return pollAsyncActionStatus(async () => this.get(), options); }, }; } /** * @internal * @param makeRequest - function to make requests via an adapter * @param data - Raw BulkAction data * @returns Wrapped BulkAction data */ function wrapBulkAction(makeRequest, data) { const bulkAction = toPlainObject(copy(data)); const bulkActionWithApiMethods = enhanceWithMethods(bulkAction, createBulkActionApi(makeRequest)); return freezeSys(bulkActionWithApiMethods); } export { BulkActionStatus, wrapBulkAction }; //# sourceMappingURL=bulk-action.js.map