@@ -9,12 +9,10 @@ module Generate.JavaScript.Effects
9import qualified Data.ByteString.Builder as BS
9import qualified Data.ByteString.Builder as BS
10import qualified Data.Map as Map
10import qualified Data.Map as Map
11import Data.Monoid ((<>))
11import Data.Monoid ((<>))
12−import Data.Text (Text)
14import qualified AST.Effects as Effects
13import qualified AST.Effects as Effects
15import qualified AST.Module.Name as ModuleName
14import qualified AST.Module.Name as ModuleName
16import qualified AST.Variable as Var
15import qualified AST.Variable as Var
17−import qualified Elm.Package as Pkg
18import qualified Generate.JavaScript.Builder as JS
16import qualified Generate.JavaScript.Builder as JS
19import qualified Generate.JavaScript.BuiltIn as BuiltIn
17import qualified Generate.JavaScript.BuiltIn as BuiltIn
20import qualified Generate.JavaScript.Variable as Var
18import qualified Generate.JavaScript.Variable as Var
@@ -45,38 +43,27 @@ generateManager home manager =
47generateEntries :: ModuleName.Canonical -> Effects.ManagerType -> Var.Generator JS.Expr
45generateEntries :: ModuleName.Canonical -> Effects.ManagerType -> Var.Generator JS.Expr
48−generateEntries home@(ModuleName.Canonical pkg _) manager =
46+generateEntries home manager =
50− entry name =
48+ arg name =
51− do let key = JS.IdProp (JS.Id name)
52− value <- Var.global (Var.Global home name)
49+ Var.global (Var.Global home name)
53− return ( key, value )
50+
54+ [ arg "init", arg "onEffects", arg "onSelfMsg", arg "cmdMap" ]
57+ [ arg "init", arg "onEffects", arg "onSelfMsg", pure (JS.Int 0), arg "subMap" ]
60+ [ arg "init", arg "onEffects", arg "onSelfMsg", arg "cmdMap", arg "subMap" ]
63+ <$> Var.global createManager
55− fmap JS.Object $ sequence $
64+ <*> sequence makeArgs
56− [ "pkg" ==> Pkg.toText pkg
65+
58− , entry "onEffects"
67+createManager :: Var.Global
59− , entry "onSelfMsg"
68+createManager =
60− ]
69+ Var.Global (ModuleName.inCore "Elm.Kernel.Platform") "createManager"
80−(==>) :: Text -> Text -> Var.Generator ( JS.Prop, JS.Expr )
82− return ( JS.IdProp (JS.Id key), JS.String value )