@leancodepl/validation
Version:
CQRS validation helpers for command and query validation
29 lines (28 loc) • 1.2 kB
TypeScript
import { ApiResponse, CommandResult } from "@leancodepl/cqrs-client-base";
export type SuccessOrFailureMarker = {
success: -1;
failure: -2;
};
/**
* Handles CQRS command responses and transforms them into validation error handlers.
*
* @template TErrors - Error codes map type extending Record<string, number>
* @param response - API response containing command result
* @param errorCodesMap - Mapping of error names to numeric codes
* @returns Validation error handler with success/failure support
* @example
* ```typescript
* const errorCodes = { UserNotFound: 1 } as const;
* const response = await commandClient.execute(createUserCommand);
*
* handleResponse(response, errorCodes)
* .handle('success', () => console.log('User created'))
* .handle('failure', () => console.log('Network error'))
* .handle('UserNotFound', () => console.log('User not found'))
* .check();
* ```
*/
export declare function handleResponse<TErrors extends Record<string, number>>(response: ApiResponse<CommandResult<TErrors>>, errorCodesMap: TErrors): import("./handleValidationErrors").ValidationErrorsHandler<TErrors & {
readonly success: -1;
readonly failure: -2;
}, never>;