Current section
Files
Jump to
Current section
Files
src/protocol@log.erl
-module(protocol@log).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([encode__log_entry_source/1, decode__log_entry_source/1, encode__log_entry_level/1, decode__log_entry_level/1, encode__log_entry_category/1, decode__log_entry_category/1, encode__log_entry/1, decode__log_entry/1, encode__violation_setting_name/1, decode__violation_setting_name/1, encode__violation_setting/1, decode__violation_setting/1, clear/1, disable/1, enable/1, start_violations_report/2, stop_violations_report/1]).
-export_type([log_entry/0, log_entry_source/0, log_entry_level/0, log_entry_category/0, violation_setting/0, violation_setting_name/0]).
-type log_entry() :: {log_entry,
log_entry_source(),
log_entry_level(),
binary(),
gleam@option:option(log_entry_category()),
protocol@runtime:timestamp(),
gleam@option:option(binary()),
gleam@option:option(integer()),
gleam@option:option(protocol@runtime:stack_trace()),
gleam@option:option(protocol@network:request_id()),
gleam@option:option(binary()),
gleam@option:option(list(protocol@runtime:remote_object()))}.
-type log_entry_source() :: log_entry_source_xml |
log_entry_source_javascript |
log_entry_source_network |
log_entry_source_storage |
log_entry_source_appcache |
log_entry_source_rendering |
log_entry_source_security |
log_entry_source_deprecation |
log_entry_source_worker |
log_entry_source_violation |
log_entry_source_intervention |
log_entry_source_recommendation |
log_entry_source_other.
-type log_entry_level() :: log_entry_level_verbose |
log_entry_level_info |
log_entry_level_warning |
log_entry_level_error.
-type log_entry_category() :: log_entry_category_cors.
-type violation_setting() :: {violation_setting,
violation_setting_name(),
float()}.
-type violation_setting_name() :: violation_setting_name_long_task |
violation_setting_name_long_layout |
violation_setting_name_blocked_event |
violation_setting_name_blocked_parser |
violation_setting_name_discouraged_api_use |
violation_setting_name_handler |
violation_setting_name_recurring_handler.
-spec encode__log_entry_source(log_entry_source()) -> gleam@json:json().
encode__log_entry_source(Value__) ->
_pipe = case Value__ of
log_entry_source_xml ->
<<"xml"/utf8>>;
log_entry_source_javascript ->
<<"javascript"/utf8>>;
log_entry_source_network ->
<<"network"/utf8>>;
log_entry_source_storage ->
<<"storage"/utf8>>;
log_entry_source_appcache ->
<<"appcache"/utf8>>;
log_entry_source_rendering ->
<<"rendering"/utf8>>;
log_entry_source_security ->
<<"security"/utf8>>;
log_entry_source_deprecation ->
<<"deprecation"/utf8>>;
log_entry_source_worker ->
<<"worker"/utf8>>;
log_entry_source_violation ->
<<"violation"/utf8>>;
log_entry_source_intervention ->
<<"intervention"/utf8>>;
log_entry_source_recommendation ->
<<"recommendation"/utf8>>;
log_entry_source_other ->
<<"other"/utf8>>
end,
gleam@json:string(_pipe).
-spec decode__log_entry_source(gleam@dynamic:dynamic_()) -> {ok,
log_entry_source()} |
{error, list(gleam@dynamic:decode_error())}.
decode__log_entry_source(Value__) ->
case gleam@dynamic:string(Value__) of
{ok, <<"xml"/utf8>>} ->
{ok, log_entry_source_xml};
{ok, <<"javascript"/utf8>>} ->
{ok, log_entry_source_javascript};
{ok, <<"network"/utf8>>} ->
{ok, log_entry_source_network};
{ok, <<"storage"/utf8>>} ->
{ok, log_entry_source_storage};
{ok, <<"appcache"/utf8>>} ->
{ok, log_entry_source_appcache};
{ok, <<"rendering"/utf8>>} ->
{ok, log_entry_source_rendering};
{ok, <<"security"/utf8>>} ->
{ok, log_entry_source_security};
{ok, <<"deprecation"/utf8>>} ->
{ok, log_entry_source_deprecation};
{ok, <<"worker"/utf8>>} ->
{ok, log_entry_source_worker};
{ok, <<"violation"/utf8>>} ->
{ok, log_entry_source_violation};
{ok, <<"intervention"/utf8>>} ->
{ok, log_entry_source_intervention};
{ok, <<"recommendation"/utf8>>} ->
{ok, log_entry_source_recommendation};
{ok, <<"other"/utf8>>} ->
{ok, log_entry_source_other};
{error, Error} ->
{error, Error};
{ok, Other} ->
{error,
[{decode_error,
<<"valid enum property"/utf8>>,
Other,
[<<"enum decoder"/utf8>>]}]}
end.
-spec encode__log_entry_level(log_entry_level()) -> gleam@json:json().
encode__log_entry_level(Value__) ->
_pipe = case Value__ of
log_entry_level_verbose ->
<<"verbose"/utf8>>;
log_entry_level_info ->
<<"info"/utf8>>;
log_entry_level_warning ->
<<"warning"/utf8>>;
log_entry_level_error ->
<<"error"/utf8>>
end,
gleam@json:string(_pipe).
-spec decode__log_entry_level(gleam@dynamic:dynamic_()) -> {ok,
log_entry_level()} |
{error, list(gleam@dynamic:decode_error())}.
decode__log_entry_level(Value__) ->
case gleam@dynamic:string(Value__) of
{ok, <<"verbose"/utf8>>} ->
{ok, log_entry_level_verbose};
{ok, <<"info"/utf8>>} ->
{ok, log_entry_level_info};
{ok, <<"warning"/utf8>>} ->
{ok, log_entry_level_warning};
{ok, <<"error"/utf8>>} ->
{ok, log_entry_level_error};
{error, Error} ->
{error, Error};
{ok, Other} ->
{error,
[{decode_error,
<<"valid enum property"/utf8>>,
Other,
[<<"enum decoder"/utf8>>]}]}
end.
-spec encode__log_entry_category(log_entry_category()) -> gleam@json:json().
encode__log_entry_category(Value__) ->
_pipe = case Value__ of
log_entry_category_cors ->
<<"cors"/utf8>>
end,
gleam@json:string(_pipe).
-spec decode__log_entry_category(gleam@dynamic:dynamic_()) -> {ok,
log_entry_category()} |
{error, list(gleam@dynamic:decode_error())}.
decode__log_entry_category(Value__) ->
case gleam@dynamic:string(Value__) of
{ok, <<"cors"/utf8>>} ->
{ok, log_entry_category_cors};
{error, Error} ->
{error, Error};
{ok, Other} ->
{error,
[{decode_error,
<<"valid enum property"/utf8>>,
Other,
[<<"enum decoder"/utf8>>]}]}
end.
-spec encode__log_entry(log_entry()) -> gleam@json:json().
encode__log_entry(Value__) ->
gleam@json:object(
begin
_pipe = [{<<"source"/utf8>>,
encode__log_entry_source(erlang:element(2, Value__))},
{<<"level"/utf8>>,
encode__log_entry_level(erlang:element(3, Value__))},
{<<"text"/utf8>>, gleam@json:string(erlang:element(4, Value__))},
{<<"timestamp"/utf8>>,
protocol@runtime:encode__timestamp(
erlang:element(6, Value__)
)}],
_pipe@1 = chrobot@internal@utils:add_optional(
_pipe,
erlang:element(5, Value__),
fun(Inner_value__) ->
{<<"category"/utf8>>,
encode__log_entry_category(Inner_value__)}
end
),
_pipe@2 = chrobot@internal@utils:add_optional(
_pipe@1,
erlang:element(7, Value__),
fun(Inner_value__@1) ->
{<<"url"/utf8>>, gleam@json:string(Inner_value__@1)}
end
),
_pipe@3 = chrobot@internal@utils:add_optional(
_pipe@2,
erlang:element(8, Value__),
fun(Inner_value__@2) ->
{<<"lineNumber"/utf8>>, gleam@json:int(Inner_value__@2)}
end
),
_pipe@4 = chrobot@internal@utils:add_optional(
_pipe@3,
erlang:element(9, Value__),
fun(Inner_value__@3) ->
{<<"stackTrace"/utf8>>,
protocol@runtime:encode__stack_trace(Inner_value__@3)}
end
),
_pipe@5 = chrobot@internal@utils:add_optional(
_pipe@4,
erlang:element(10, Value__),
fun(Inner_value__@4) ->
{<<"networkRequestId"/utf8>>,
protocol@network:encode__request_id(Inner_value__@4)}
end
),
_pipe@6 = chrobot@internal@utils:add_optional(
_pipe@5,
erlang:element(11, Value__),
fun(Inner_value__@5) ->
{<<"workerId"/utf8>>, gleam@json:string(Inner_value__@5)}
end
),
chrobot@internal@utils:add_optional(
_pipe@6,
erlang:element(12, Value__),
fun(Inner_value__@6) ->
{<<"args"/utf8>>,
gleam@json:array(
Inner_value__@6,
fun protocol@runtime:encode__remote_object/1
)}
end
)
end
).
-spec decode__log_entry(gleam@dynamic:dynamic_()) -> {ok, log_entry()} |
{error, list(gleam@dynamic:decode_error())}.
decode__log_entry(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"source"/utf8>>, fun decode__log_entry_source/1))(
Value__
),
fun(Source) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"level"/utf8>>,
fun decode__log_entry_level/1
))(Value__),
fun(Level) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"text"/utf8>>,
fun gleam@dynamic:string/1
))(Value__),
fun(Text) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"category"/utf8>>,
fun decode__log_entry_category/1
))(Value__),
fun(Category) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"timestamp"/utf8>>,
fun protocol@runtime:decode__timestamp/1
))(Value__),
fun(Timestamp) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"url"/utf8>>,
fun gleam@dynamic:string/1
))(Value__),
fun(Url) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"lineNumber"/utf8>>,
fun gleam@dynamic:int/1
))(Value__),
fun(Line_number) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"stackTrace"/utf8>>,
fun protocol@runtime:decode__stack_trace/1
))(Value__),
fun(Stack_trace) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"networkRequestId"/utf8>>,
fun protocol@network:decode__request_id/1
))(
Value__
),
fun(
Network_request_id
) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"workerId"/utf8>>,
fun gleam@dynamic:string/1
))(
Value__
),
fun(
Worker_id
) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"args"/utf8>>,
gleam@dynamic:list(
fun protocol@runtime:decode__remote_object/1
)
))(
Value__
),
fun(
Args
) ->
{ok,
{log_entry,
Source,
Level,
Text,
Category,
Timestamp,
Url,
Line_number,
Stack_trace,
Network_request_id,
Worker_id,
Args}}
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
).
-spec encode__violation_setting_name(violation_setting_name()) -> gleam@json:json().
encode__violation_setting_name(Value__) ->
_pipe = case Value__ of
violation_setting_name_long_task ->
<<"longTask"/utf8>>;
violation_setting_name_long_layout ->
<<"longLayout"/utf8>>;
violation_setting_name_blocked_event ->
<<"blockedEvent"/utf8>>;
violation_setting_name_blocked_parser ->
<<"blockedParser"/utf8>>;
violation_setting_name_discouraged_api_use ->
<<"discouragedAPIUse"/utf8>>;
violation_setting_name_handler ->
<<"handler"/utf8>>;
violation_setting_name_recurring_handler ->
<<"recurringHandler"/utf8>>
end,
gleam@json:string(_pipe).
-spec decode__violation_setting_name(gleam@dynamic:dynamic_()) -> {ok,
violation_setting_name()} |
{error, list(gleam@dynamic:decode_error())}.
decode__violation_setting_name(Value__) ->
case gleam@dynamic:string(Value__) of
{ok, <<"longTask"/utf8>>} ->
{ok, violation_setting_name_long_task};
{ok, <<"longLayout"/utf8>>} ->
{ok, violation_setting_name_long_layout};
{ok, <<"blockedEvent"/utf8>>} ->
{ok, violation_setting_name_blocked_event};
{ok, <<"blockedParser"/utf8>>} ->
{ok, violation_setting_name_blocked_parser};
{ok, <<"discouragedAPIUse"/utf8>>} ->
{ok, violation_setting_name_discouraged_api_use};
{ok, <<"handler"/utf8>>} ->
{ok, violation_setting_name_handler};
{ok, <<"recurringHandler"/utf8>>} ->
{ok, violation_setting_name_recurring_handler};
{error, Error} ->
{error, Error};
{ok, Other} ->
{error,
[{decode_error,
<<"valid enum property"/utf8>>,
Other,
[<<"enum decoder"/utf8>>]}]}
end.
-spec encode__violation_setting(violation_setting()) -> gleam@json:json().
encode__violation_setting(Value__) ->
gleam@json:object(
[{<<"name"/utf8>>,
encode__violation_setting_name(erlang:element(2, Value__))},
{<<"threshold"/utf8>>, gleam@json:float(erlang:element(3, Value__))}]
).
-spec decode__violation_setting(gleam@dynamic:dynamic_()) -> {ok,
violation_setting()} |
{error, list(gleam@dynamic:decode_error())}.
decode__violation_setting(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"name"/utf8>>,
fun decode__violation_setting_name/1
))(Value__),
fun(Name) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"threshold"/utf8>>,
fun gleam@dynamic:float/1
))(Value__),
fun(Threshold) -> {ok, {violation_setting, Name, Threshold}} end
)
end
).
-spec clear(fun((binary(), gleam@option:option(any())) -> ACAM)) -> ACAM.
clear(Callback__) ->
Callback__(<<"Log.clear"/utf8>>, none).
-spec disable(fun((binary(), gleam@option:option(any())) -> ACAQ)) -> ACAQ.
disable(Callback__) ->
Callback__(<<"Log.disable"/utf8>>, none).
-spec enable(fun((binary(), gleam@option:option(any())) -> ACAU)) -> ACAU.
enable(Callback__) ->
Callback__(<<"Log.enable"/utf8>>, none).
-spec start_violations_report(
fun((binary(), gleam@option:option(gleam@json:json())) -> ACAY),
list(violation_setting())
) -> ACAY.
start_violations_report(Callback__, Config) ->
Callback__(
<<"Log.startViolationsReport"/utf8>>,
{some,
gleam@json:object(
[{<<"config"/utf8>>,
gleam@json:array(
Config,
fun encode__violation_setting/1
)}]
)}
).
-spec stop_violations_report(
fun((binary(), gleam@option:option(any())) -> ACBE)
) -> ACBE.
stop_violations_report(Callback__) ->
Callback__(<<"Log.stopViolationsReport"/utf8>>, none).