domain_error 3.0.0
domain_error: ^3.0.0 copied to clipboard
Domain errors with Either, Result, and captureResult for expected errors in Dart applications.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased #
3.0.0 - 2026-09-13 #
Changed #
- Rename the capture functions and options to
captureResult,captureResultSync,CaptureResultOptions, andCaptureResultSyncOptions. - Use
Either.error/Either.success,EitherError/EitherSuccess,isError/isSuccess, anderrorValuethroughout the API. - Rename
DomainError.rawErrortocauseandmapRawErrorToDomaintomapToDomainError. Previous public names are removed without aliases. - Require matching concrete types and symmetric deep payload equality for
Either; include the concrete type in hashing. - Exclude causes and stack traces from
DomainErrorequality. Subclasses can continue adding business fields throughprops. - Preserve operation results when observers fail. Mapper failures still propagate.
- Normalize message and cause descriptions to one line and use
unknownwhen a cause cannot be described. - Make
format-checkread-only and simplify analyzer configuration while preserving applicable checks and strict type settings.
Added #
- Optional
onObserverErrorhandlers for synchronous and asynchronous capture. Handler failures are ignored without recursion. - Regression tests for equality, callback ordering, delayed failures, immutable snapshots, and diagnostic formatting.
- Migration instructions and explicit synchronous callback requirements.
- Editable HTML/CSS diagram sources with a headless Chrome rendering command.
- CI checks for Dart 3.13.0 and the stable channel.
2.1.1 - 2026-08-30 #
Added #
- README diagrams for the error journey, the domain model, and the Result API.
2.1.0 - 2026-08-30 #
Added #
executeSafelySyncandExecuteSafelySyncOptionsfor synchronous calls that returnResult<T>.
2.0.0 - 2026-08-30 #
Changed #
ExecuteSafelyOptions:onErroris nowonDomainError,onThrownis nowonRawError, andmapThrownToErroris nowmapRawErrorToDomain. The options type is no longer generic and no longer extendsEquatable.DomainError.erroris nowrawError.Eitheris sealed. The error branch isisErr/errValue/Either.err. The success branch isisOk/successValue/Either.ok.foldnow takesifErrandifOk.whenis removed.mapmaps the success value and leaves an error unchanged.domainErroris available only onResult<T>, not on a genericEither.executeSafelynow returnsFuture<Result<T>>.FutureOrResultis removed.
1.0.0 - 2026-08-30 #
Added #
DomainErrorbase type with a stabletypeIdentifier, optionalmessage,error, andstackTrace.Eitherwithfailureandvaluebranches, plusfold,when, andmap.Result,FutureResult, andFutureOrResultasEitheraliases overDomainError.executeSafelyto catch throws and return aResult.ExecuteSafelyOptionswithmapThrownToError,onError, andonThrown.
