// AUTO-GENERATED BY DAGGER_GLEAM - DO NOT EDIT import dagger/types.{type Client, type Try} as types import dagger/interpreter import dagger/dsl/types as t import gleam/dynamic/decode import gleam/list pub fn check_group(id id: t.CheckGroup) -> t.CheckGroup { let field = types.Field(name: "loadCheckGroupFromID", args: [#("id", types.GDeferred(id.op))], subfields: []) t.CheckGroup(op: types.Pure([field])) } /// A unique identifier for this CheckGroup. pub fn id(parent: t.CheckGroup) -> t.CheckGroup { let field = types.Field(name: "id", args: [], subfields: []) let new_op = { use q <- types.bind(parent.op) types.Pure(list.append(q, [field])) } t.CheckGroup(op: new_op) } /// Return a list of individual checks and their details pub fn list(parent: t.CheckGroup, select select: fn(t.Check) -> List(types.Field), client client: Client, then handler: fn(Try(List(t.Check))) -> a) -> a { let subfields = select(t.Check(op: types.Pure([]))) let field = types.Field(name: "list", args: [], subfields: subfields) let op = { use q <- types.bind(parent.op) let full_query = list.append(q, [field]) types.Fetch( fields: full_query, decoder: decode.dynamic, next: fn(dyn) { let path = types.make_path(full_query) case decode.run(dyn, decode.at(path, decode.list(decode.dynamic))) { Ok(items) -> types.Pure(Ok(list.map(items, fn(_) { t.Check(op: types.Pure(full_query)) }))) Error(_) -> types.Pure(Error(types.DecodingError("list"))) } } ) } handler(interpreter.run(op, client)) } /// Generate a markdown report pub fn report(parent: t.CheckGroup) -> t.File { let field = types.Field(name: "report", args: [], subfields: []) let new_op = { use q <- types.bind(parent.op) types.Pure(list.append(q, [field])) } t.File(op: new_op) } /// Execute all selected checks pub fn run(parent: t.CheckGroup) -> t.CheckGroup { let field = types.Field(name: "run", args: [], subfields: []) let new_op = { use q <- types.bind(parent.op) types.Pure(list.append(q, [field])) } t.CheckGroup(op: new_op) }