UNPKG

@energica-city/shared-amplify-utils

Version:

Shared utilities for AWS Amplify projects

79 lines 2.68 kB
import type { Middleware } from '../middlewareChain'; import type { RestResponse, RestInputWithModels, RestErrorHandlerConfig } from './types'; import type { AmplifyModelType } from '../../queries/types'; /** * Creates REST error handler middleware for standardized error processing * @param config - Configuration options for error handling behavior * @returns Middleware function that catches and processes errors * * @example * ```typescript * chain.use('errorHandler', createRestErrorHandler({ * includeStackTrace: true, * defaultContext: { service: 'my-api' } * })); * ``` */ export declare function createRestErrorHandler<TTypes extends Record<string, AmplifyModelType> = Record<string, AmplifyModelType>, TOutput = RestResponse>(config?: RestErrorHandlerConfig): Middleware<RestInputWithModels<TTypes>, TOutput>; /** * HTTP error helper functions for creating standardized error objects */ export declare const HttpErrors: { readonly badRequest: (message: string) => { statusCode: number; code: "BAD_REQUEST"; message: string; }; readonly unauthorized: (message: string) => { statusCode: number; code: "UNAUTHORIZED"; message: string; }; readonly forbidden: (message: string) => { statusCode: number; code: "FORBIDDEN"; message: string; }; readonly notFound: (message: string) => { statusCode: number; code: "NOT_FOUND"; message: string; }; readonly methodNotAllowed: (message: string) => { statusCode: number; code: "METHOD_NOT_ALLOWED"; message: string; }; readonly conflict: (message: string) => { statusCode: number; code: "CONFLICT"; message: string; }; readonly unprocessableEntity: (message: string) => { statusCode: number; code: "UNPROCESSABLE_ENTITY"; message: string; }; readonly internalServerError: (message: string) => { statusCode: number; code: "INTERNAL_SERVER_ERROR"; message: string; }; readonly serviceUnavailable: (message: string) => { statusCode: number; code: "SERVICE_UNAVAILABLE"; message: string; }; }; /** * Creates an HTTP error object with status code and error code * @param statusCode - HTTP status code * @param code - Error code identifier * @param message - Error message * @returns Error object with statusCode and code properties */ export declare function createHttpError(statusCode: number, code: string, message: string): Error & { statusCode: number; code: string; }; //# sourceMappingURL=RestErrorHandler.d.ts.map