Packages
reactor
1.0.1
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/dsl.ex
# SPDX-FileCopyrightText: 2023 James Harton, Zach Daniel, Alembic Pty and contributors
# SPDX-FileCopyrightText: 2023 reactor contributors <https://github.com/ash-project/reactor/graphs/contributors>
#
# SPDX-License-Identifier: MIT
defmodule Reactor.Dsl do
@moduledoc false
alias Reactor.Dsl
alias Spark.Dsl.{Extension, Section}
@middleware %Section{
name: :middlewares,
describe: "Middleware to be added to the Reactor",
entities: [Dsl.Middleware.__entity__()],
patchable?: true
}
@reactor %Section{
name: :reactor,
describe: "The top-level reactor DSL",
schema: [
return: [
type: :atom,
required: false,
doc: """
Specify which step result to return upon completion.
"""
],
description: [
type: :string,
required: false,
doc: """
An optional description for the Reactor.
"""
]
],
entities: [
Dsl.Around.__entity__(),
Dsl.Collect.__entity__(),
Dsl.Compose.__entity__(),
Dsl.Debug.__entity__(),
Dsl.Flunk.__entity__(),
Dsl.Group.__entity__(),
Dsl.Input.__entity__(),
Dsl.Map.__entity__(),
Dsl.Recurse.__entity__(),
Dsl.Step.__entity__(),
Dsl.Switch.__entity__(),
Dsl.Template.__entity__()
],
sections: [@middleware],
top_level?: true,
patchable?: true
}
use Extension,
sections: [@reactor],
transformers: [Dsl.Transformer],
verifiers: [Dsl.Verifier]
end