12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- let Types = ../types/package.dhall
- let Prelude = ../lib/prelude.dhall
- let JSON = Prelude.JSON
- let TextJSONPair = { mapKey : Text, mapValue : JSON.Type }
- let concatJSONs =
- λ(xs : List Types.JSONObject)
- → JSON.object (Prelude.List.concat TextJSONPair xs)
- let renderGet =
- λ(get : Types.GetStep)
- → λ(hooks : Types.StepHooks JSON.Type)
- → concatJSONs [ ./getStep.dhall get, ./stepHooks.dhall hooks ]
- let renderPut =
- λ(put : Types.PutStep)
- → λ(hooks : Types.StepHooks JSON.Type)
- → concatJSONs [ ./putStep.dhall put, ./stepHooks.dhall hooks ]
- let renderTask =
- λ(task : Types.TaskStep)
- → λ(hooks : Types.StepHooks JSON.Type)
- → concatJSONs [ ./taskStep.dhall task, ./stepHooks.dhall hooks ]
- let renderAggregate =
- λ(steps : List JSON.Type)
- → λ(hooks : Types.StepHooks JSON.Type)
- → concatJSONs
- [ toMap { aggregate = JSON.array steps }, ./stepHooks.dhall hooks ]
- let renderDo =
- λ(steps : List JSON.Type)
- → λ(hooks : Types.StepHooks JSON.Type)
- → concatJSONs [ toMap { do = JSON.array steps }, ./stepHooks.dhall hooks ]
- let renderTry =
- λ(step : JSON.Type)
- → λ(hooks : Types.StepHooks JSON.Type)
- → concatJSONs [ toMap { try = step }, ./stepHooks.dhall hooks ]
- let renderInParallel =
- λ(config : Types.InParallelStep JSON.Type)
- → λ(hooks : Types.StepHooks JSON.Type)
- → concatJSONs [ ./inParallelStep.dhall config, ./stepHooks.dhall hooks ]
- let render
- : Types.Step → JSON.Type
- = λ(step : Types.Step)
- → step
- JSON.Type
- { get = renderGet
- , put = renderPut
- , task = renderTask
- , aggregate = renderAggregate
- , do = renderDo
- , try = renderTry
- , in_parallel = renderInParallel
- }
- in render
|