gradis 1.0.0 copy "gradis: ^1.0.0" to clipboard
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 pipeline
    • RailwayGuard<C, E>: Interface for read-only validation operations that return Either<E, void>
    • RailwayStep<C, E>: Interface for state mutation operations that return Either<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() and step() 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
1
likes
160
points
159
downloads

Publisher

verified publisherzooper.dev

Weekly Downloads

A railway-oriented programming package for Dart providing strongly-typed, declarative workflow orchestration with guards and steps.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

either_dart

More

Packages that depend on gradis