Packages

A Sketch runtime package, made to generate CSS!

Current section

Files

Jump to
sketch_css src sketch_css@module@pipes.erl
Raw

src/sketch_css@module@pipes.erl

-module(sketch_css@module@pipes).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-define(FILEPATH, "src/sketch_css/module/pipes.gleam").
-export([remove/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/sketch_css/module/pipes.gleam", 25).
?DOC(false).
-spec remove_statement(glance:statement()) -> glance:statement().
remove_statement(Stat) ->
case Stat of
{use, _, _} ->
_record = Stat,
{use,
erlang:element(2, _record),
remove_expr(erlang:element(3, Stat))};
{expression, E} ->
{expression, remove_expr(E)};
{assignment, _, _, _, _} ->
_record@1 = Stat,
{assignment,
erlang:element(2, _record@1),
erlang:element(3, _record@1),
erlang:element(4, _record@1),
remove_expr(erlang:element(5, Stat))}
end.
-file("src/sketch_css/module/pipes.gleam", 33).
?DOC(false).
-spec remove_expr(glance:expression()) -> glance:expression().
remove_expr(Expr) ->
case Expr of
{negate_int, Expr@1} ->
{negate_int, remove_expr(Expr@1)};
{negate_bool, Expr@2} ->
{negate_bool, remove_expr(Expr@2)};
{block, Stat} ->
{block, gleam@list:map(Stat, fun remove_statement/1)};
{todo, Stat@1} ->
{todo, gleam@option:map(Stat@1, fun remove_expr/1)};
{panic, Stat@2} ->
{panic, gleam@option:map(Stat@2, fun remove_expr/1)};
{tuple, Stat@3} ->
{tuple, gleam@list:map(Stat@3, fun remove_expr/1)};
{fn, _, _, _} ->
_record = Expr,
{fn,
erlang:element(2, _record),
erlang:element(3, _record),
gleam@list:map(erlang:element(4, Expr), fun remove_statement/1)};
{tuple_index, _, _} ->
_record@1 = Expr,
{tuple_index,
remove_expr(erlang:element(2, Expr)),
erlang:element(3, _record@1)};
{list, Elements, Rest} ->
Elements@1 = gleam@list:map(Elements, fun remove_expr/1),
Rest@1 = gleam@option:map(Rest, fun remove_expr/1),
{list, Elements@1, Rest@1};
{record_update, _, _, _, _} ->
Record = remove_expr(erlang:element(4, Expr)),
_record@2 = Expr,
{record_update,
erlang:element(2, _record@2),
erlang:element(3, _record@2),
Record,
begin
gleam@list:map(
erlang:element(5, Expr),
fun(Field) ->
Item = gleam@option:map(
erlang:element(3, Field),
fun remove_expr/1
),
_record@3 = Field,
{record_update_field,
erlang:element(2, _record@3),
Item}
end
)
end};
{field_access, _, _} ->
Container = remove_expr(erlang:element(2, Expr)),
_record@4 = Expr,
{field_access, Container, erlang:element(3, _record@4)};
{call, _, _} ->
Function = remove_expr(erlang:element(2, Expr)),
{call,
Function,
begin
gleam@list:map(
erlang:element(3, Expr),
fun(Argument) -> remove_expr_field(Argument) end
)
end};
{'case', _, _} ->
Subjects = gleam@list:map(
erlang:element(2, Expr),
fun remove_expr/1
),
{'case',
Subjects,
begin
gleam@list:map(
erlang:element(3, Expr),
fun(Clause) ->
Guard = gleam@option:map(
erlang:element(3, Clause),
fun remove_expr/1
),
Body = remove_expr(erlang:element(4, Clause)),
_record@5 = Clause,
{clause, erlang:element(2, _record@5), Guard, Body}
end
)
end};
{binary_operator, pipe, Left, {call, Function@1, Arguments}} ->
Left@1 = {unlabelled_field, remove_expr(Left)},
Arguments@1 = gleam@list:map(Arguments, fun remove_expr_field/1),
Arguments@2 = [Left@1 | Arguments@1],
{call, Function@1, Arguments@2};
{binary_operator, pipe, Left@2, {variable, Variable}} ->
Left@3 = {unlabelled_field, remove_expr(Left@2)},
Arguments@3 = [Left@3],
Function@2 = {variable, Variable},
{call, Function@2, Arguments@3};
{binary_operator, pipe, Left@4, Right} ->
Left@5 = remove_expr(Left@4),
Right@1 = remove_expr(Right),
{call, Right@1, [{unlabelled_field, Left@5}]};
_ ->
Expr
end.
-file("src/sketch_css/module/pipes.gleam", 20).
?DOC(false).
-spec remove_attribute(glance:attribute()) -> glance:attribute().
remove_attribute(Attribute) ->
Arguments = gleam@list:map(erlang:element(3, Attribute), fun remove_expr/1),
_record = Attribute,
{attribute, erlang:element(2, _record), Arguments}.
-file("src/sketch_css/module/pipes.gleam", 7).
?DOC(false).
-spec remove(glance:module_()) -> glance:module_().
remove(Module) ->
_record = Module,
{module,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
begin
gleam@list:map(
erlang:element(6, Module),
fun(_use0) ->
{definition, Attributes, Definition} = _use0,
Attributes@1 = gleam@list:map(
Attributes,
fun remove_attribute/1
),
{definition,
Attributes@1,
begin
_record@1 = Definition,
{function,
erlang:element(2, _record@1),
erlang:element(3, _record@1),
erlang:element(4, _record@1),
erlang:element(5, _record@1),
begin
gleam@list:map(
erlang:element(6, Definition),
fun(Statement) ->
remove_statement(Statement)
end
)
end,
erlang:element(7, _record@1)}
end}
end
)
end}.
-file("src/sketch_css/module/pipes.gleam", 109).
?DOC(false).
-spec remove_expr_field(glance:field(glance:expression())) -> glance:field(glance:expression()).
remove_expr_field(Argument) ->
case Argument of
{unlabelled_field, E} ->
{unlabelled_field, remove_expr(E)};
{shorthand_field, Label} ->
{shorthand_field, Label};
{labelled_field, Label@1, Item} ->
{labelled_field, Label@1, remove_expr(Item)}
end.