Elmish.Foreign
- Package
- purescript-elmish
- Repository
- collegevine/purescript-elmish
#CanPassToJavaScript Source
class CanPassToJavaScript a This class is used to assert that values of a type can be passed to JavaScript code directly (without conversion) and understood by that code. Specifically, this class is defined for primitives (strings, numbers, booleans), arrays, and records. This assertion is used in a number of places that pass complex values to JS code to restrict the types that can be safely passed.
Instances
CanPassToJavaScript JsonCanPassToJavaScript ForeignCanPassToJavaScript StringCanPassToJavaScript NumberCanPassToJavaScript BooleanCanPassToJavaScript JSDate(CanPassToJavaScript a) => CanPassToJavaScript (Object a)CanPassToJavaScript Int(CanReceiveFromJavaScript a, CanPassToJavaScript b) => CanPassToJavaScript (EffectFn1 a b)(CanReceiveFromJavaScript a, CanReceiveFromJavaScript b, CanPassToJavaScript c) => CanPassToJavaScript (EffectFn2 a b c)(CanPassToJavaScript a) => CanPassToJavaScript (Array a)(CanPassToJavaScript a) => CanPassToJavaScript (Nullable a)(RowToList r rl, CanPassToJavaScriptRecord rl) => CanPassToJavaScript (Record r)(CanPassToJavaScript a) => CanPassToJavaScript (Foreign -> a)
#CanReceiveFromJavaScript Source
class CanReceiveFromJavaScript a whereThis class is used to assert that values of a type can be passed from JavaScript to PureScript without any conversions. Specifically, this class is defined for primitives (strings, numbers, booleans), arrays, and records.
Members
isForeignOfCorrectType :: Proxy a -> Foreign -> Boolean
Instances
CanReceiveFromJavaScript ForeignCanReceiveFromJavaScript StringCanReceiveFromJavaScript NumberCanReceiveFromJavaScript BooleanCanReceiveFromJavaScript JSDateCanReceiveFromJavaScript (Object Foreign)CanReceiveFromJavaScript Int(CanPassToJavaScript a) => CanReceiveFromJavaScript (EffectFn1 a Unit)(CanPassToJavaScript a, CanPassToJavaScript b) => CanReceiveFromJavaScript (EffectFn2 a b Unit)(CanReceiveFromJavaScript a) => CanReceiveFromJavaScript (Array a)(CanReceiveFromJavaScript a) => CanReceiveFromJavaScript (Nullable a)(RowToList r rl, CanReceiveFromJavaScriptRecord rl) => CanReceiveFromJavaScript (Record r)
#readForeign Source
readForeign :: forall a. CanReceiveFromJavaScript a => Foreign -> Maybe aVerifies if the given raw JS value is of the right type/shape to be
represented as a, and if so, coerces the value to a.
#showForeign Source
showForeign :: Foreign -> String#Arguments Source
data Arguments :: TypeType of the arguments object in a JS function (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments).
#argumentsToArray_ Source
argumentsToArray_ :: Arguments -> Array ForeignCreates a new Array from an Arguments object.
#getArgument Source
getArgument :: Arguments -> Int -> Maybe ForeignGets the value at a specified index of an Arguments object.
Returns Nothing if there are not enough arguments.
#mkVarArgEff_ Source
mkVarArgEff_ :: (Arguments -> Effect Unit) -> ForeignCreates a JS function that takes a variable number of args (via
arguments) and calls the provided effectful continuation, passing the
arguments as an array.
#CanReceiveFromJavaScriptRecord Source
class CanReceiveFromJavaScriptRecord rowList whereThis class is implementation of isForeignOfCorrectType for records. It
validates a given JS hash (aka "object") against a given type row that
represents a PureScript record, recursively calling
isForeignOfCorrectType for each field.
Members
validateJsRecord :: RLProxy rowList -> Object Foreign -> Boolean
Instances
CanReceiveFromJavaScriptRecord Nil(IsSymbol name, CanReceiveFromJavaScript a, CanReceiveFromJavaScriptRecord rl') => CanReceiveFromJavaScriptRecord (Cons name a rl')
#CanPassToJavaScriptRecord Source
class CanPassToJavaScriptRecord (rowList :: RowList) This class is implementation of CanPassToJavaScript for records. It
simply iterates over all fields, checking that every field is of a type
that also has an instance of CanPassToJavaScript.
Instances
CanPassToJavaScriptRecord Nil(IsSymbol name, CanPassToJavaScript a, CanPassToJavaScriptRecord rl') => CanPassToJavaScriptRecord (Cons name a rl')
Re-exports from Foreign
#Foreign Source
data Foreign :: TypeA type for foreign data.
Foreign data is data from any external unknown or unreliable source, for which it cannot be guaranteed that the runtime representation conforms to that of any particular type.
Suitable applications of Foreign are
- To represent responses from web services
- To integrate with external JavaScript libraries.