Current section
Files
Jump to
Current section
Files
src/corrosion@internal@util.erl
-module(corrosion@internal@util).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/corrosion/internal/util.gleam").
-export([parameter_to_json/1, statement_to_json/1]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-file("src/corrosion/internal/util.gleam", 8).
?DOC(false).
-spec parameter_to_json(corrosion@statement:parameter()) -> gleam@json:json().
parameter_to_json(Param) ->
case Param of
null ->
gleam@json:null();
{blob, Bits} ->
_pipe = erlang:binary_to_list(Bits),
gleam@json:array(_pipe, fun gleam@json:int/1);
{bool, Bool} ->
gleam@json:bool(Bool);
{integer, Int} ->
gleam@json:int(Int);
{real, Real} ->
gleam@json:float(Real);
{text, Text} ->
gleam@json:string(Text)
end.
-file("src/corrosion/internal/util.gleam", 19).
?DOC(false).
-spec statement_to_json(corrosion@statement:statement()) -> gleam@json:json().
statement_to_json(Statement) ->
case Statement of
{simple, Query} ->
gleam@json:string(Query);
{verbose, Query@1, Params, Named_params} ->
gleam@json:object(
[{<<"query"/utf8>>, gleam@json:string(Query@1)},
{<<"params"/utf8>>,
gleam@json:nullable(
Params,
fun(_capture) ->
gleam@json:array(
_capture,
fun parameter_to_json/1
)
end
)},
{<<"named_params"/utf8>>,
gleam@json:nullable(
Named_params,
fun(_capture@1) ->
gleam@json:dict(
_capture@1,
fun gleam@function:identity/1,
fun parameter_to_json/1
)
end
)}]
);
{with_named_params, Query@2, Named_params@1} ->
gleam@json:preprocessed_array(
[gleam@json:string(Query@2),
gleam@json:dict(
Named_params@1,
fun gleam@function:identity/1,
fun parameter_to_json/1
)]
);
{with_params, Query@3, Params@1} ->
gleam@json:preprocessed_array(
[gleam@json:string(Query@3),
gleam@json:array(Params@1, fun parameter_to_json/1)]
)
end.