UNPKG

payload-auth-plugin

Version:
35 lines (29 loc) 1.15 kB
import { CollectionSlug } from "payload" import { AfterOperationArg, OperationMap, OperationResult } from "./types.js" export const buildAfterOperation = async < TOperationGeneric extends CollectionSlug, O extends keyof OperationMap<TOperationGeneric> = keyof OperationMap<TOperationGeneric>, >( operationArgs: { operation: O } & Omit<AfterOperationArg<TOperationGeneric>, 'req'>, ): Promise<any | OperationResult<TOperationGeneric, O>> => { const { args, collection, operation, overrideAccess, result } = operationArgs let newResult = result as OperationResult<TOperationGeneric, O> 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<TOperationGeneric>) if (hookResult !== undefined) { newResult = hookResult as OperationResult<TOperationGeneric, O> } } } return newResult }