UNPKG

@energica-city/shared-amplify-utils

Version:

Shared utilities for AWS Amplify projects

35 lines 2.24 kB
import type { RestInputWithModels, RestHandlerReturn, RestMiddlewareChain } from './types'; import type { AmplifyModelType } from '../../queries/types'; /** * Creates a new REST middleware chain with type-safe model support * * Initializes a composable middleware chain for REST API handlers * with support for Amplify Data models and custom return types. * * @template TTypes - Record of all available Amplify model types * @template TSelected - Subset of model types to initialize * @template TReturn - Handler return type (defaults to RestHandlerReturn) * @param config - Configuration options for the middleware chain * @param config.enableDebugLogging - Enable detailed middleware execution logging * @param config.onError - Custom error handler for middleware failures * @returns Configured REST middleware chain instance */ export declare function createRestChain<TTypes extends Record<string, AmplifyModelType>, TSelected extends keyof TTypes = keyof TTypes, TReturn = RestHandlerReturn>(config?: { enableDebugLogging?: boolean; onError?: (error: unknown, middlewareName: string) => void; }): RestMiddlewareChain<TTypes, TSelected, TReturn>; /** * Wraps a REST handler function with middleware chain execution * * Converts a middleware chain and handler into a Lambda-compatible * function that executes middleware before the handler. * * @template TTypes - Record of all available Amplify model types * @template TSelected - Subset of model types to initialize * @template TReturn - Handler return type * @param chain - Configured REST middleware chain * @param handler - Handler function to execute after middleware * @returns Lambda-compatible function with middleware execution */ export declare function wrapRestHandler<TTypes extends Record<string, AmplifyModelType>, TSelected extends keyof TTypes = keyof TTypes, TReturn extends RestHandlerReturn = RestHandlerReturn>(chain: RestMiddlewareChain<TTypes, TSelected, TReturn>, handler: (input: RestInputWithModels<TTypes, TSelected>) => Promise<TReturn>): (event: RestInputWithModels<TTypes, TSelected>['event'], context: RestInputWithModels<TTypes, TSelected>['context']) => Promise<TReturn>; //# sourceMappingURL=RestMiddlewareChain.d.ts.map