@energica-city/shared-amplify-utils
Version:
Shared utilities for AWS Amplify projects
79 lines • 2.68 kB
TypeScript
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