import { CollectionSlug } from "payload" import { AfterOperationArg, OperationMap, OperationResult } from "./types.js" export const buildAfterOperation = async < TOperationGeneric extends CollectionSlug, O extends keyof OperationMap = keyof OperationMap, >( operationArgs: { operation: O } & Omit, 'req'>, ): Promise> => { const { args, collection, operation, overrideAccess, result } = operationArgs let newResult = result as OperationResult if (args.collection.config.hooks?.afterOperation?.length) { for (const hook of args.collection.config.hooks.afterOperation) { const hookResult = await hook( // @ts-expect-error { args, collection, operation, overrideAccess, req: args.req, result: newResult, } as AfterOperationArg) if (hookResult !== undefined) { newResult = hookResult as OperationResult } } } return newResult }