Current section

Files

Jump to
gleam_javascript src gleam@javascript.erl
Raw

src/gleam@javascript.erl

-module(gleam@javascript).
-compile(no_auto_import).
-export([type_of/1, get_symbol/1, dereference/1, set_reference/2, make_reference/1, update_reference/2]).
-export_type([type_of/0, symbol/0, reference_/1]).
-type type_of() :: undefined_type |
object_type |
boolean_type |
number_type |
big_int_type |
string_type |
symbol_type |
function_type.
-type symbol() :: any().
-type reference_(Value) :: any() | {gleam_phantom, Value}.
-spec type_of(any()) -> type_of().
type_of(A) ->
'../ffi.mjs':type_of(A).
-spec get_symbol(binary()) -> symbol().
get_symbol(A) ->
'../ffi.mjs':get_symbol(A).
-spec dereference(reference_(AH)) -> AH.
dereference(A) ->
'../ffi.mjs':dereference(A).
-spec set_reference(reference_(AJ), AJ) -> AJ.
set_reference(A, B) ->
'../ffi.mjs':set_reference(A, B).
-spec make_reference(AL) -> reference_(AL).
make_reference(A) ->
'../ffi.mjs':make_reference(A).
-spec update_reference(reference_(AN), fun((AN) -> AN)) -> AN.
update_reference(Ref, F) ->
Value = '../ffi.mjs':dereference(Ref),
'../ffi.mjs':set_reference(Ref, F(Value)),
Value.