wrapOperation
@tsed/directus-sdk
Usage
typescript
import { wrapOperation } from "@tsed/third-parties/directus-sdk/src/fn/wrapOperation";See /packages/third-parties/directus-sdk/src/fn/wrapOperation.ts.
Overview
ts
function wrapOperation<Options = Record<string, unknown>>(callback: (options: Options, context: OperationContext) => unknown | Promise<unknown> | void): (options: Options, context: OperationContext) => Promise<unknown>;- callback (
(options: Options): - The operation handler function that receives options and context
Description
Wraps an operation handler to provide Ts.ED dependency injection and error handling.
This function is internally used by defineOperationApi to:
- Initialize the Ts.ED DI container for each operation execution
- Enable service injection via
inject()within the operation handler - Provide automatic error handling and logging
- Set up the Directus context in
DirectusContextService - Create an isolated DI context for each operation run
Each operation execution runs within its own DI context with platform set to DIRECTUS_OPERATION, ensuring proper isolation between different operation runs.
This is typically used internally by defineOperationApi. You generally don't need to call this directly unless you're building custom operation wrappers.
Error handling:
- Errors are caught and logged with structured information
- Error details include name, message, description, and stack trace
- Logger is automatically flushed after error logging
- The error is not re-thrown, allowing the flow to continue