26 lines
806 B
Text
26 lines
806 B
Text
# domains/framework/ontology/defaults.ncl
|
|
# Shared mode factory helpers for Library, Service, and Tool projects.
|
|
# Projects import via:
|
|
# let d = import "framework/ontology/defaults.ncl" in
|
|
# d.make_mode String { id = "my-mode", trigger = "...", steps = [...] }
|
|
|
|
let s = import "schema.ncl" in
|
|
let c = import "constraints.ncl" in
|
|
|
|
{
|
|
make_mode = fun ActionContract => fun data =>
|
|
let result | (s.Mode ActionContract) = data in
|
|
let result | c.NonEmptySteps = result in
|
|
let result | c.ValidTrigger = result in
|
|
result,
|
|
|
|
make_step = fun ActionContract => fun data =>
|
|
data | (s.ActionStep ActionContract),
|
|
|
|
Mode = s.Mode,
|
|
ActionStep = s.ActionStep,
|
|
Dependency = s.Dependency,
|
|
OnError = s.OnError,
|
|
Guard = s.Guard,
|
|
Converge = s.Converge,
|
|
}
|