Packages

Gleam SDK for Dagger — type-safe pipelines via GraphQL codegen

Current section

Files

Jump to
dagger_gleam src dagger@dsl@generated_code.erl
Raw

src/dagger@dsl@generated_code.erl

-module(dagger@dsl@generated_code).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/dagger/dsl/generated_code.gleam").
-export([generated_code/1, code/1, id/1, vcs_generated_paths/3, vcs_ignored_paths/3, with_v_c_s_generated_paths/2, with_v_c_s_ignored_paths/2]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-file("src/dagger/dsl/generated_code.gleam", 9).
-spec generated_code(dagger@dsl@types:directory()) -> dagger@dsl@types:generated_code().
generated_code(Code) ->
Field = {field,
<<"generatedCode"/utf8>>,
[{<<"code"/utf8>>, {g_deferred, erlang:element(2, Code)}}],
[]},
{generated_code, {pure, [Field]}}.
-file("src/dagger/dsl/generated_code.gleam", 15).
?DOC(" The directory containing the generated code.\n").
-spec code(dagger@dsl@types:generated_code()) -> dagger@dsl@types:directory().
code(Parent) ->
Field = {field, <<"code"/utf8>>, [], []},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{directory, New_op}.
-file("src/dagger/dsl/generated_code.gleam", 25).
?DOC(" A unique identifier for this GeneratedCode.\n").
-spec id(dagger@dsl@types:generated_code()) -> dagger@dsl@types:generated_code().
id(Parent) ->
Field = {field, <<"id"/utf8>>, [], []},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{generated_code, New_op}.
-file("src/dagger/dsl/generated_code.gleam", 35).
?DOC(" List of paths to mark generated in version control (i.e. .gitattributes).\n").
-spec vcs_generated_paths(
dagger@dsl@types:generated_code(),
dagger@types:client(),
fun(({ok, list(binary())} | {error, dagger@types:query_error()}) -> RWU)
) -> RWU.
vcs_generated_paths(Parent, Client, Handler) ->
Field = {field, <<"vcsGeneratedPaths"/utf8>>, [], []},
Op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) ->
Full_query = lists:append(Q, [Field]),
{fetch,
Full_query,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1},
fun(Dyn) ->
Path = dagger@types:make_path(Full_query),
case gleam@dynamic@decode:run(
Dyn,
gleam@dynamic@decode:at(
Path,
gleam@dynamic@decode:list(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
)
)
) of
{ok, Val} ->
{pure, {ok, Val}};
{error, _} ->
{pure,
{error,
{decoding_error,
<<"vcsGeneratedPaths"/utf8>>}}}
end
end}
end
)
end,
Handler(dagger@interpreter:run(Op, Client)).
-file("src/dagger/dsl/generated_code.gleam", 56).
?DOC(" List of paths to ignore in version control (i.e. .gitignore).\n").
-spec vcs_ignored_paths(
dagger@dsl@types:generated_code(),
dagger@types:client(),
fun(({ok, list(binary())} | {error, dagger@types:query_error()}) -> RWX)
) -> RWX.
vcs_ignored_paths(Parent, Client, Handler) ->
Field = {field, <<"vcsIgnoredPaths"/utf8>>, [], []},
Op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) ->
Full_query = lists:append(Q, [Field]),
{fetch,
Full_query,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1},
fun(Dyn) ->
Path = dagger@types:make_path(Full_query),
case gleam@dynamic@decode:run(
Dyn,
gleam@dynamic@decode:at(
Path,
gleam@dynamic@decode:list(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
)
)
) of
{ok, Val} ->
{pure, {ok, Val}};
{error, _} ->
{pure,
{error,
{decoding_error,
<<"vcsIgnoredPaths"/utf8>>}}}
end
end}
end
)
end,
Handler(dagger@interpreter:run(Op, Client)).
-file("src/dagger/dsl/generated_code.gleam", 77).
?DOC(" Set the list of paths to mark generated in version control.\n").
-spec with_v_c_s_generated_paths(
dagger@dsl@types:generated_code(),
list(binary())
) -> dagger@dsl@types:generated_code().
with_v_c_s_generated_paths(Parent, Paths) ->
Field = {field,
<<"withVCSGeneratedPaths"/utf8>>,
[{<<"paths"/utf8>>,
{g_list, gleam@list:map(Paths, fun(X) -> {g_string, X} end)}}],
[]},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{generated_code, New_op}.
-file("src/dagger/dsl/generated_code.gleam", 87).
?DOC(" Set the list of paths to ignore in version control.\n").
-spec with_v_c_s_ignored_paths(
dagger@dsl@types:generated_code(),
list(binary())
) -> dagger@dsl@types:generated_code().
with_v_c_s_ignored_paths(Parent, Paths) ->
Field = {field,
<<"withVCSIgnoredPaths"/utf8>>,
[{<<"paths"/utf8>>,
{g_list, gleam@list:map(Paths, fun(X) -> {g_string, X} end)}}],
[]},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{generated_code, New_op}.