gradis 1.0.0
gradis: ^1.0.0 copied to clipboard
A railway-oriented programming package for Dart providing strongly-typed, declarative workflow orchestration with guards and steps.
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] #
1.0.0 - 2026-02-17 #
Added #
- Railway-oriented programming pattern for Dart: Core abstractions for building strongly-typed, declarative workflows in application-layer orchestration.
Railway<C, E>: Immutable builder for composing guards and steps into a type-safe workflow pipelineRailwayGuard<C, E>: Interface for read-only validation operations that returnEither<E, void>RailwayStep<C, E>: Interface for state mutation operations that returnEither<E, C>- Automatic short-circuiting on first error with Either-based result propagation
- Single unified error type per railway (compile-time enforced, no runtime casting)
- Sequential asynchronous execution with deterministic operation ordering
- Immutable builder pattern: Each
guard()andstep()call returns a new Railway instance, enabling safe reuse and composition - Transaction-agnostic execution: Railways remain infrastructure-only with no built-in transaction management
- Comprehensive documentation: README with usage examples, error mapping patterns, and context immutability patterns
- Complete test coverage: 30 unit and integration tests covering builder, guards, steps, and execution engine
- Example workflow: Demonstration of user creation workflow with validation guards and mutation steps