Packages
reactor
0.8.4
1.0.2
1.0.1
1.0.0
0.17.0
0.16.0
0.15.6
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.1
0.9.0
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.0
An asynchronous, graph-based execution engine
Current section
Files
Jump to
Current section
Files
lib/reactor/step/transform_all.ex
defmodule Reactor.Step.TransformAll do
@moduledoc """
A built-in step which applies a transformation function to all it's arguments.
The returned map is used as the arguments to the step, instead of the step's
defined arguments.
> #### Tip {: .tip}
>
> This step will be emitted by the builder when a step wants to transform all
> it's arguments.
>
> Most likely you will never need to use this step directly.
"""
use Reactor.Step
alias Reactor.{Error.Invalid.TransformError, Step.Transform}
@doc false
@impl true
@spec run(Reactor.inputs(), Reactor.context(), keyword) :: {:ok | :error, any}
def run(arguments, context, options) do
case Transform.run(%{value: arguments}, context, options) do
{:ok, result} when is_map(result) ->
{:ok, result}
{:ok, result} ->
{:error,
TransformError.exception(
input: arguments,
output: result,
error: "Step transformers must return a map to use as replacement arguments."
)}
{:error, reason} ->
{:error, TransformError.exception(input: arguments, error: reason)}
end
end
end