# Chain

A library that mimics the JavaScript Promise API, but only as a synchronous way to organise code. 

## Installation

Chain is [available in Hex](, the package can be installed
by adding `chain` to your list of dependencies in `mix.exs`:

def deps do
    {:chain, "~> 0.1.0"}

Documentation can be generated with [ExDoc](
and published on [HexDocs]( Once published, the docs can
be found at [](

## Usage

A Chain is a list of steps to run sequentially.
Each next step gets the previous result as parameter and if returns `{:ok, value}` or `value` then `value` goes to the 
next next step in line. If it returns a `{:error, reason}` tuple, then `reason` goes to the next recover step in line.
chain_result =
  |> Chain.recover(&recover_some_error/1)

## License

Licensed under the MIT License. See [License file](/