Current section
Files
Jump to
Current section
Files
src/sprocket.erl
-module(sprocket).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]).
-export([start/2, stop/1, handle_client/5, cleanup/2]).
-export_type([sprocket_options/0]).
-type sprocket_options() :: {sprocket_options,
gleam@option:option(sprocket@cassette:cassette_opts())}.
-spec start(
fun((binary()) -> {ok, nil} | {error, nil}),
gleam@option:option(sprocket_options())
) -> gleam@erlang@process:subject(sprocket@cassette:message()).
start(Validate_csrf, Opts) ->
sprocket@cassette:start(
Validate_csrf,
begin
_pipe = Opts,
_pipe@1 = gleam@option:map(
_pipe,
fun(Opts@1) -> erlang:element(2, Opts@1) end
),
gleam@option:flatten(_pipe@1)
end
).
-spec stop(gleam@erlang@process:subject(sprocket@cassette:message())) -> nil.
stop(Ca) ->
sprocket@cassette:stop(Ca).
-spec handle_client(
binary(),
gleam@erlang@process:subject(sprocket@cassette:message()),
sprocket@context:element(),
binary(),
fun((binary()) -> {ok, nil} | {error, nil})
) -> {ok, nil} | {error, nil}.
handle_client(Id, Ca, View, Msg, Ws_send) ->
sprocket@cassette:client_message(
Ca,
sprocket@internal@utils@unique:from_string(Id),
View,
Msg,
Ws_send
).
-spec cleanup(
gleam@erlang@process:subject(sprocket@cassette:message()),
binary()
) -> nil.
cleanup(Ca, Id) ->
Spkt = sprocket@cassette:pop_sprocket(
Ca,
sprocket@internal@utils@unique:from_string(Id)
),
case Spkt of
{ok, Sprocket} ->
sprocket@sprocket:stop(Sprocket);
{error, _} ->
nil
end.