@leancodepl/cqrs-client-base
Version:
Base types and interfaces for CQRS client implementations
28 lines • 1.04 kB
TypeScript
export type TokenProvider = {
getToken: () => Promise<string | undefined>;
invalidateToken: () => Promise<boolean>;
};
export type ValidationError<TErrorCodes extends Record<string, number>> = {
readonly PropertyName: string;
readonly ErrorMessage: string;
readonly ErrorCode: TErrorCodes[keyof TErrorCodes];
};
export type CommandResult<TErrorCodes extends Record<string, number>> = FailedCommandResult<TErrorCodes> | SuccessfulCommandResult;
export type FailedCommandResult<TErrorCodes extends Record<string, number>> = {
readonly WasSuccessful: false;
readonly ValidationErrors: ValidationError<TErrorCodes>[];
};
export type SuccessfulCommandResult = {
readonly WasSuccessful: true;
};
export type ApiSuccess<TResult> = {
readonly isSuccess: true;
readonly result: TResult;
};
export type ApiError = {
readonly isSuccess: false;
readonly error: any;
readonly isAborted?: boolean;
};
export type ApiResponse<TResult> = ApiError | ApiSuccess<TResult>;
//# sourceMappingURL=index.d.ts.map