AIDK API Reference / aidk-kernel / Middleware
Type Alias: Middleware()<TArgs> ​
ts
type Middleware<TArgs> = (args: TArgs, envelope: ProcedureEnvelope<TArgs>, next: (transformedArgs?: TArgs) => Promise<any>) => Promise<any>;Defined in: packages/kernel/src/procedure.ts:63
Middleware function that can intercept and transform procedure execution.
Middleware can:
- Transform input arguments before passing to the next middleware/handler
- Modify the result after
next()returns - Short-circuit execution by not calling
next() - Handle or transform errors
Type Parameters ​
| Type Parameter | Default type | Description |
|---|---|---|
TArgs extends any[] | any[] | The argument types of the procedure |
Parameters ​
| Parameter | Type |
|---|---|
args | TArgs |
envelope | ProcedureEnvelope<TArgs> |
next | (transformedArgs?: TArgs) => Promise<any> |
Returns ​
Promise<any>
Examples ​
typescript
const loggingMiddleware: Middleware<[string]> = async (args, envelope, next) => {
console.log(`${envelope.operationName} called with:`, args);
const start = Date.now();
try {
const result = await next();
console.log(`Completed in ${Date.now() - start}ms`);
return result;
} catch (error) {
console.error(`Failed:`, error);
throw error;
}
};typescript
const upperMiddleware: Middleware<[string]> = async (args, envelope, next) => {
return next([args[0].toUpperCase()]);
};See ​
- ProcedureEnvelope - The envelope containing execution metadata
- createPipeline - Bundle multiple middleware for reuse