Packages
lustre
5.0.2
5.7.1
5.7.0
5.6.0
5.5.2
5.5.1
5.5.0
5.4.0
5.3.5
5.3.4
5.3.3
5.3.2
5.3.1
5.3.0
5.2.1
5.2.0
5.1.1
5.1.0
5.0.3
5.0.2
5.0.1
5.0.0
4.6.4
4.6.3
4.6.2
4.6.1
4.6.0
4.5.1
4.5.0
4.4.4
4.4.3
4.4.1
4.4.0
4.3.6
4.3.5
4.3.4
4.3.3
4.3.2
4.3.1
4.3.0
4.2.6
4.2.5
4.2.4
4.2.3
4.2.2
4.2.1
4.2.0
4.1.8
4.1.7
4.1.6
4.1.5
4.1.4
4.1.3
4.1.2
4.1.1
4.1.0
4.0.0
4.0.0-rc1
4.0.0-rc.2
3.1.4
3.1.3
3.1.2
3.1.1
3.1.0
3.0.12
3.0.11
3.0.10
3.0.9
3.0.8
3.0.7
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
3.0.0-rc.8
3.0.0-rc.7
3.0.0-rc.6
3.0.0-rc.5
3.0.0-rc.4
3.0.0-rc.3
3.0.0-rc.2
3.0.0-rc.1
2.0.1
2.0.0
1.3.0
1.2.0
1.1.0
1.0.0
Create HTML templates, single page applications, Web Components, and real-time server components in Gleam!
Current section
Files
Jump to
Current section
Files
src/lustre@internals@json_object_builder.erl
-module(lustre@internals@json_object_builder).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([new/0, json/3, tagged/1, build/1, string/3, int/3, bool/3, list/4, object/3]).
-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/lustre/internals/json_object_builder.gleam", 13).
?DOC(false).
-spec new() -> list({binary(), gleam@json:json()}).
new() ->
[].
-file("src/lustre/internals/json_object_builder.gleam", 25).
?DOC(false).
-spec json(list({binary(), gleam@json:json()}), binary(), gleam@json:json()) -> list({binary(),
gleam@json:json()}).
json(Entries, Key, Value) ->
[{Key, Value} | Entries].
-file("src/lustre/internals/json_object_builder.gleam", 17).
?DOC(false).
-spec tagged(integer()) -> list({binary(), gleam@json:json()}).
tagged(Kind) ->
[{<<"kind"/utf8>>, gleam@json:int(Kind)}].
-file("src/lustre/internals/json_object_builder.gleam", 21).
?DOC(false).
-spec build(list({binary(), gleam@json:json()})) -> gleam@json:json().
build(Entries) ->
gleam@json:object(Entries).
-file("src/lustre/internals/json_object_builder.gleam", 29).
?DOC(false).
-spec string(list({binary(), gleam@json:json()}), binary(), binary()) -> list({binary(),
gleam@json:json()}).
string(Entries, Key, Value) ->
case Value /= <<""/utf8>> of
true ->
[{Key, gleam@json:string(Value)} | Entries];
false ->
Entries
end.
-file("src/lustre/internals/json_object_builder.gleam", 36).
?DOC(false).
-spec int(list({binary(), gleam@json:json()}), binary(), integer()) -> list({binary(),
gleam@json:json()}).
int(Entries, Key, Value) ->
case Value /= 0 of
true ->
[{Key, gleam@json:int(Value)} | Entries];
false ->
Entries
end.
-file("src/lustre/internals/json_object_builder.gleam", 43).
?DOC(false).
-spec bool(list({binary(), gleam@json:json()}), binary(), boolean()) -> list({binary(),
gleam@json:json()}).
bool(Entries, Key, Value) ->
case Value of
true ->
[{Key, gleam@json:int(1)} | Entries];
false ->
Entries
end.
-file("src/lustre/internals/json_object_builder.gleam", 50).
?DOC(false).
-spec list(
list({binary(), gleam@json:json()}),
binary(),
list(OJI),
fun((OJI) -> gleam@json:json())
) -> list({binary(), gleam@json:json()}).
list(Entries, Key, Values, To_json) ->
case Values of
[] ->
Entries;
_ ->
[{Key, gleam@json:array(Values, To_json)} | Entries]
end.
-file("src/lustre/internals/json_object_builder.gleam", 62).
?DOC(false).
-spec object(
list({binary(), gleam@json:json()}),
binary(),
list({binary(), gleam@json:json()})
) -> list({binary(), gleam@json:json()}).
object(Entries, Key, Nested) ->
case Nested of
[] ->
Entries;
_ ->
[{Key, gleam@json:object(Nested)} | Entries]
end.