domain_error library

Domain errors and helpers for handling them.

Start with DomainError, fold outcomes with Result or DomainResult, and convert thrown errors through captureResult or captureResultSync.

Classes

Result<T, E>
A value that is either an error or a value.
ResultError<T, E>
Result that holds an error value.
ResultSuccess<T, E>
Result that holds a success value.

Extensions

DomainResultError on DomainResult<T>
Reads the DomainError from a failed DomainResult.
FutureResult on Future<Result<T, E>>
Composes asynchronous results without awaiting between individual steps.

Functions

captureResult<T>(FutureOr<T> operation(), {required FutureOr<DomainError> mapToDomainError(Object rawError, StackTrace stackTrace), FutureOr<void> onDomainError(DomainError domainError, StackTrace stackTrace)?, FutureOr<void> onRawError(Object rawError, StackTrace stackTrace)?, FutureOr<void> onObserverError(Object rawError, StackTrace stackTrace)?}) → Future<DomainResult<T>>
Runs operation and captures its outcome in a DomainResult.
captureResultSync<T>(T operation(), {required DomainError mapToDomainError(Object rawError, StackTrace stackTrace), Null onDomainError(DomainError domainError, StackTrace stackTrace)?, Null onRawError(Object rawError, StackTrace stackTrace)?, Null onObserverError(Object rawError, StackTrace stackTrace)?}) → DomainResult<T>
Runs operation synchronously and captures its outcome in a DomainResult.

Typedefs

DomainResult<T> = Result<T, DomainError>
A Result whose error side is DomainError.
FutureDomainResult<T> = Future<DomainResult<T>>
A Future that completes with a DomainResult.

Exceptions / Errors

DomainError
Expected domain or application error.