Current section

Files

Jump to
chrobot src protocol@target.erl
Raw

src/protocol@target.erl

-module(protocol@target).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([encode__target_id/1, decode__target_id/1, encode__session_id/1, decode__session_id/1, encode__target_info/1, decode__target_info/1, decode__attach_to_target_response/1, decode__create_browser_context_response/1, decode__get_browser_contexts_response/1, decode__create_target_response/1, decode__get_targets_response/1, activate_target/2, attach_to_target/3, close_target/2, create_browser_context/1, get_browser_contexts/1, create_target/6, detach_from_target/2, dispose_browser_context/2, get_targets/1, set_auto_attach/3, set_discover_targets/2]).
-export_type([target_id/0, session_id/0, target_info/0, attach_to_target_response/0, create_browser_context_response/0, get_browser_contexts_response/0, create_target_response/0, get_targets_response/0]).
-type target_id() :: {target_id, binary()}.
-type session_id() :: {session_id, binary()}.
-type target_info() :: {target_info,
target_id(),
binary(),
binary(),
binary(),
boolean(),
gleam@option:option(target_id())}.
-type attach_to_target_response() :: {attach_to_target_response, session_id()}.
-type create_browser_context_response() :: {create_browser_context_response,
binary()}.
-type get_browser_contexts_response() :: {get_browser_contexts_response,
list(binary())}.
-type create_target_response() :: {create_target_response, target_id()}.
-type get_targets_response() :: {get_targets_response, list(target_info())}.
-spec encode__target_id(target_id()) -> gleam@json:json().
encode__target_id(Value__) ->
case Value__ of
{target_id, Inner_value__} ->
gleam@json:string(Inner_value__)
end.
-spec decode__target_id(gleam@dynamic:dynamic_()) -> {ok, target_id()} |
{error, list(gleam@dynamic:decode_error())}.
decode__target_id(Value__) ->
_pipe = Value__,
(gleam@dynamic:decode1(
fun(Field@0) -> {target_id, Field@0} end,
fun gleam@dynamic:string/1
))(_pipe).
-spec encode__session_id(session_id()) -> gleam@json:json().
encode__session_id(Value__) ->
case Value__ of
{session_id, Inner_value__} ->
gleam@json:string(Inner_value__)
end.
-spec decode__session_id(gleam@dynamic:dynamic_()) -> {ok, session_id()} |
{error, list(gleam@dynamic:decode_error())}.
decode__session_id(Value__) ->
_pipe = Value__,
(gleam@dynamic:decode1(
fun(Field@0) -> {session_id, Field@0} end,
fun gleam@dynamic:string/1
))(_pipe).
-spec encode__target_info(target_info()) -> gleam@json:json().
encode__target_info(Value__) ->
gleam@json:object(
begin
_pipe = [{<<"targetId"/utf8>>,
encode__target_id(erlang:element(2, Value__))},
{<<"type"/utf8>>, gleam@json:string(erlang:element(3, Value__))},
{<<"title"/utf8>>,
gleam@json:string(erlang:element(4, Value__))},
{<<"url"/utf8>>, gleam@json:string(erlang:element(5, Value__))},
{<<"attached"/utf8>>,
gleam@json:bool(erlang:element(6, Value__))}],
chrobot@internal@utils:add_optional(
_pipe,
erlang:element(7, Value__),
fun(Inner_value__) ->
{<<"openerId"/utf8>>, encode__target_id(Inner_value__)}
end
)
end
).
-spec decode__target_info(gleam@dynamic:dynamic_()) -> {ok, target_info()} |
{error, list(gleam@dynamic:decode_error())}.
decode__target_info(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"targetId"/utf8>>, fun decode__target_id/1))(
Value__
),
fun(Target_id) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"type"/utf8>>,
fun gleam@dynamic:string/1
))(Value__),
fun(Type_) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"title"/utf8>>,
fun gleam@dynamic:string/1
))(Value__),
fun(Title) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"url"/utf8>>,
fun gleam@dynamic:string/1
))(Value__),
fun(Url) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"attached"/utf8>>,
fun gleam@dynamic:bool/1
))(Value__),
fun(Attached) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"openerId"/utf8>>,
fun decode__target_id/1
))(Value__),
fun(Opener_id) ->
{ok,
{target_info,
Target_id,
Type_,
Title,
Url,
Attached,
Opener_id}}
end
)
end
)
end
)
end
)
end
)
end
).
-spec decode__attach_to_target_response(gleam@dynamic:dynamic_()) -> {ok,
attach_to_target_response()} |
{error, list(gleam@dynamic:decode_error())}.
decode__attach_to_target_response(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"sessionId"/utf8>>, fun decode__session_id/1))(
Value__
),
fun(Session_id) -> {ok, {attach_to_target_response, Session_id}} end
).
-spec decode__create_browser_context_response(gleam@dynamic:dynamic_()) -> {ok,
create_browser_context_response()} |
{error, list(gleam@dynamic:decode_error())}.
decode__create_browser_context_response(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"browserContextId"/utf8>>,
fun gleam@dynamic:string/1
))(Value__),
fun(Browser_context_id) ->
{ok, {create_browser_context_response, Browser_context_id}}
end
).
-spec decode__get_browser_contexts_response(gleam@dynamic:dynamic_()) -> {ok,
get_browser_contexts_response()} |
{error, list(gleam@dynamic:decode_error())}.
decode__get_browser_contexts_response(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"browserContextIds"/utf8>>,
gleam@dynamic:list(fun gleam@dynamic:string/1)
))(Value__),
fun(Browser_context_ids) ->
{ok, {get_browser_contexts_response, Browser_context_ids}}
end
).
-spec decode__create_target_response(gleam@dynamic:dynamic_()) -> {ok,
create_target_response()} |
{error, list(gleam@dynamic:decode_error())}.
decode__create_target_response(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"targetId"/utf8>>, fun decode__target_id/1))(
Value__
),
fun(Target_id) -> {ok, {create_target_response, Target_id}} end
).
-spec decode__get_targets_response(gleam@dynamic:dynamic_()) -> {ok,
get_targets_response()} |
{error, list(gleam@dynamic:decode_error())}.
decode__get_targets_response(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"targetInfos"/utf8>>,
gleam@dynamic:list(fun decode__target_info/1)
))(Value__),
fun(Target_infos) -> {ok, {get_targets_response, Target_infos}} end
).
-spec activate_target(
fun((binary(), gleam@option:option(gleam@json:json())) -> XNX),
target_id()
) -> XNX.
activate_target(Callback__, Target_id) ->
Callback__(
<<"Target.activateTarget"/utf8>>,
{some,
gleam@json:object(
[{<<"targetId"/utf8>>, encode__target_id(Target_id)}]
)}
).
-spec attach_to_target(
fun((binary(), gleam@option:option(gleam@json:json())) -> {ok,
gleam@dynamic:dynamic_()} |
{error, chrome:request_error()}),
target_id(),
gleam@option:option(boolean())
) -> {ok, attach_to_target_response()} | {error, chrome:request_error()}.
attach_to_target(Callback__, Target_id, Flatten) ->
gleam@result:'try'(
Callback__(
<<"Target.attachToTarget"/utf8>>,
{some,
gleam@json:object(
begin
_pipe = [{<<"targetId"/utf8>>,
encode__target_id(Target_id)}],
chrobot@internal@utils:add_optional(
_pipe,
Flatten,
fun(Inner_value__) ->
{<<"flatten"/utf8>>,
gleam@json:bool(Inner_value__)}
end
)
end
)}
),
fun(Result__) -> _pipe@1 = decode__attach_to_target_response(Result__),
gleam@result:replace_error(_pipe@1, protocol_error) end
).
-spec close_target(
fun((binary(), gleam@option:option(gleam@json:json())) -> XOQ),
target_id()
) -> XOQ.
close_target(Callback__, Target_id) ->
Callback__(
<<"Target.closeTarget"/utf8>>,
{some,
gleam@json:object(
[{<<"targetId"/utf8>>, encode__target_id(Target_id)}]
)}
).
-spec create_browser_context(
fun((binary(), gleam@option:option(any())) -> {ok, gleam@dynamic:dynamic_()} |
{error, chrome:request_error()})
) -> {ok, create_browser_context_response()} | {error, chrome:request_error()}.
create_browser_context(Callback__) ->
gleam@result:'try'(
Callback__(<<"Target.createBrowserContext"/utf8>>, none),
fun(Result__) ->
_pipe = decode__create_browser_context_response(Result__),
gleam@result:replace_error(_pipe, protocol_error)
end
).
-spec get_browser_contexts(
fun((binary(), gleam@option:option(any())) -> {ok, gleam@dynamic:dynamic_()} |
{error, chrome:request_error()})
) -> {ok, get_browser_contexts_response()} | {error, chrome:request_error()}.
get_browser_contexts(Callback__) ->
gleam@result:'try'(
Callback__(<<"Target.getBrowserContexts"/utf8>>, none),
fun(Result__) ->
_pipe = decode__get_browser_contexts_response(Result__),
gleam@result:replace_error(_pipe, protocol_error)
end
).
-spec create_target(
fun((binary(), gleam@option:option(gleam@json:json())) -> {ok,
gleam@dynamic:dynamic_()} |
{error, chrome:request_error()}),
binary(),
gleam@option:option(integer()),
gleam@option:option(integer()),
gleam@option:option(boolean()),
gleam@option:option(boolean())
) -> {ok, create_target_response()} | {error, chrome:request_error()}.
create_target(Callback__, Url, Width, Height, New_window, Background) ->
gleam@result:'try'(
Callback__(
<<"Target.createTarget"/utf8>>,
{some,
gleam@json:object(
begin
_pipe = [{<<"url"/utf8>>, gleam@json:string(Url)}],
_pipe@1 = chrobot@internal@utils:add_optional(
_pipe,
Width,
fun(Inner_value__) ->
{<<"width"/utf8>>,
gleam@json:int(Inner_value__)}
end
),
_pipe@2 = chrobot@internal@utils:add_optional(
_pipe@1,
Height,
fun(Inner_value__@1) ->
{<<"height"/utf8>>,
gleam@json:int(Inner_value__@1)}
end
),
_pipe@3 = chrobot@internal@utils:add_optional(
_pipe@2,
New_window,
fun(Inner_value__@2) ->
{<<"newWindow"/utf8>>,
gleam@json:bool(Inner_value__@2)}
end
),
chrobot@internal@utils:add_optional(
_pipe@3,
Background,
fun(Inner_value__@3) ->
{<<"background"/utf8>>,
gleam@json:bool(Inner_value__@3)}
end
)
end
)}
),
fun(Result__) -> _pipe@4 = decode__create_target_response(Result__),
gleam@result:replace_error(_pipe@4, protocol_error) end
).
-spec detach_from_target(
fun((binary(), gleam@option:option(gleam@json:json())) -> XQL),
gleam@option:option(session_id())
) -> XQL.
detach_from_target(Callback__, Session_id) ->
Callback__(
<<"Target.detachFromTarget"/utf8>>,
{some,
gleam@json:object(
begin
_pipe = [],
chrobot@internal@utils:add_optional(
_pipe,
Session_id,
fun(Inner_value__) ->
{<<"sessionId"/utf8>>,
encode__session_id(Inner_value__)}
end
)
end
)}
).
-spec dispose_browser_context(
fun((binary(), gleam@option:option(gleam@json:json())) -> XQS),
binary()
) -> XQS.
dispose_browser_context(Callback__, Browser_context_id) ->
Callback__(
<<"Target.disposeBrowserContext"/utf8>>,
{some,
gleam@json:object(
[{<<"browserContextId"/utf8>>,
gleam@json:string(Browser_context_id)}]
)}
).
-spec get_targets(
fun((binary(), gleam@option:option(any())) -> {ok, gleam@dynamic:dynamic_()} |
{error, chrome:request_error()})
) -> {ok, get_targets_response()} | {error, chrome:request_error()}.
get_targets(Callback__) ->
gleam@result:'try'(
Callback__(<<"Target.getTargets"/utf8>>, none),
fun(Result__) -> _pipe = decode__get_targets_response(Result__),
gleam@result:replace_error(_pipe, protocol_error) end
).
-spec set_auto_attach(
fun((binary(), gleam@option:option(gleam@json:json())) -> XRI),
boolean(),
boolean()
) -> XRI.
set_auto_attach(Callback__, Auto_attach, Wait_for_debugger_on_start) ->
Callback__(
<<"Target.setAutoAttach"/utf8>>,
{some,
gleam@json:object(
[{<<"autoAttach"/utf8>>, gleam@json:bool(Auto_attach)},
{<<"waitForDebuggerOnStart"/utf8>>,
gleam@json:bool(Wait_for_debugger_on_start)}]
)}
).
-spec set_discover_targets(
fun((binary(), gleam@option:option(gleam@json:json())) -> XRN),
boolean()
) -> XRN.
set_discover_targets(Callback__, Discover) ->
Callback__(
<<"Target.setDiscoverTargets"/utf8>>,
{some,
gleam@json:object(
[{<<"discover"/utf8>>, gleam@json:bool(Discover)}]
)}
).