jsaddle-0.2.0.0: High level interface for webkit-javascriptcore

Safe HaskellNone
LanguageHaskell2010

Language.Javascript.JSaddle.Classes

Contents

Description

These classes are used to make various JavaScript types out of whatever we have. Functions in jsaddle take these as inputs. This alows implicit casting and eager evaluation.

Synopsis

Type classes to convert Haskell data to JavaScript

class MakeValueRef a where Source

Anything that can be used to make a JavaScript value reference

Instances

MakeValueRef Bool

Make a JavaScript boolean value

MakeValueRef Double

Makes a JavaScript number

MakeValueRef String

Makes a JavaScript string

MakeValueRef Text

Makes a JavaScript string

MakeValueRef JSValueRef

If we already have a JSValueRef we are fine

MakeValueRef JSPropRef

We can use a property as a value.

MakeValueRef JSValue

Makes a JavaScript value from a JSValue ADT.

MakeValueRef JSUndefined

Makes an undefined JavaScript value

MakeValueRef JSNull

Makes a null JavaScript value

MakeValueRef JSCallAsFunction

A callback to Haskell can be used as a JavaScript value. This will create an anonymous JavaScript function object. Use function to create one with a name.

MakeValueRef v => MakeValueRef (JSM v)

JSValueRef can be made by evaluating a function in JSM as long as it returns something we can make into a JSValueRef.

class MakeStringRef a where Source

Anything that can be used to make a JavaScript string reference

Instances

MakeStringRef String 
MakeStringRef Text 
MakeStringRef JSStringRef

If we already have a JSStringRef we are fine

class MakeArgRefs this where Source

Anything that can be used to make a list of JavaScript value references for use as function arguments

Methods

makeArgRefs :: this -> JSM [JSValueRef] Source

Instances

MakeArgRefs Bool

Makes an argument list with just a single JavaScript boolean value

MakeArgRefs Double

Makes an argument list with just a single JavaScript number

MakeArgRefs ()

This allows us to pass no arguments easily (altenative would be to use []::[JSValueRef]).

MakeArgRefs Text

Makes an argument list with just a single JavaScript string

MakeArgRefs JSValueRef

A single JSValueRef can be used as the argument list

MakeArgRefs JSPropRef

We can pass a property as the only paramter to a function.

MakeArgRefs JSValue

Makes an argument list with just a single JavaScript value from a JSValue ADT.

MakeArgRefs JSNull

Makes an argument list with just a single null JavaScript value

MakeArgRefs JSCallAsFunction 
MakeValueRef arg => MakeArgRefs [arg] 
MakeArgRefs arg => MakeArgRefs (JSM arg) 
(MakeValueRef arg1, MakeValueRef arg2) => MakeArgRefs (arg1, arg2) 
(MakeValueRef arg1, MakeValueRef arg2, MakeValueRef arg3) => MakeArgRefs (arg1, arg2, arg3) 
(MakeValueRef arg1, MakeValueRef arg2, MakeValueRef arg3, MakeValueRef arg4) => MakeArgRefs (arg1, arg2, arg3, arg4) 
(MakeValueRef arg1, MakeValueRef arg2, MakeValueRef arg3, MakeValueRef arg4, MakeValueRef arg5) => MakeArgRefs (arg1, arg2, arg3, arg4, arg5) 

class MakeObjectRef this where Source

Anything that can be used to make a JavaScript object reference

Instances

MakeObjectRef JSObjectRef

If we already have a JSObjectRef we are fine

MakeObjectRef JSPropRef

We can use a property as an object.

MakeObjectRef JSNull 
MakeObjectRef v => MakeObjectRef (JSM v)

JSObjectRef can be made by evaluating a function in JSM as long as it returns something we can make into a JSObjectRef.

class MakePropRef this where Source

Anything that can be used to make a JavaScript property reference

Methods

makePropRef :: this -> JSM JSPropRef Source

Instances

MakePropRef JSPropRef

If we already have a JSPropRef we are fine

MakePropRef prop => MakePropRef (JSM prop)

JSPropRef can be made by evaluating a function in JSM as long as it returns something we can make into a JSPropRef.