Current section
Files
Jump to
Current section
Files
lib/reactor/process/dsl/transformer.ex
# SPDX-FileCopyrightText: 2025 reactor_process contributors <https://github.com/ash-project/reactor_process/graphs/contributors>
#
# SPDX-License-Identifier: MIT
defmodule Reactor.Process.Dsl.Transformer do
@moduledoc false
alias Spark.Dsl.Transformer
use Transformer
@doc false
@impl true
def before?(Reactor.Dsl.Transformer), do: true
def before?(_), do: false
@doc false
@impl true
def transform(dsl_state) do
with {:ok, middleware} <-
Transformer.build_entity(Reactor.Dsl, [:reactor, :middlewares], :middleware,
module: Reactor.Process.Middleware
) do
dsl_state =
dsl_state
|> Transformer.add_entity([:reactor, :middlewares], middleware)
{:ok, dsl_state}
end
end
end