@@ -7,6 +7,7 @@ import qualified Language.ECMAScript3.Syntax as JS
7import qualified AST.Effects as Effects
7import qualified AST.Effects as Effects
8import qualified AST.Module as Module
8import qualified AST.Module as Module
9import qualified AST.Module.Name as ModuleName
9import qualified AST.Module.Name as ModuleName
10+import qualified Elm.Package as Pkg
10import qualified Generate.JavaScript.Builder as Builder
11import qualified Generate.JavaScript.Builder as Builder
11import qualified Generate.JavaScript.Expression as JS
12import qualified Generate.JavaScript.Expression as JS
12import qualified Generate.JavaScript.Helpers as JS
13import qualified Generate.JavaScript.Helpers as JS
@@ -44,7 +45,7 @@ generateEffectManager moduleName effects =
44 Effects.Foreign _ ->
45 Effects.Foreign _ ->
47− Effects.Manager (Effects.Info _ _ _ _ managerType) ->
48+ Effects.Manager pkgName (Effects.Info _ _ _ _ managerType) ->
49 managers =
50 managers =
50 Var.native (ModuleName.inCore ["Native","Platform"]) "globalManagerInfo"
51 Var.native (ModuleName.inCore ["Native","Platform"]) "globalManagerInfo"
@@ -58,7 +59,8 @@ generateEffectManager moduleName effects =
60 managerEntries =
61 managerEntries =
62+ [ "pkg" ==> Pkg.toString pkgName
61− [ entry "init"
63+ , entry "init"
62 , entry "onEffects"
64 , entry "onEffects"
63 , entry "onSelfMsg"
65 , entry "onSelfMsg"
@@ -66,13 +68,13 @@ generateEffectManager moduleName effects =
66 otherEntries =
68 otherEntries =
67 case managerType of
69 case managerType of
68 Effects.CmdManager _ ->
70 Effects.CmdManager _ ->
69− [ tagEntry "cmd", entry "cmdMap" ]
71+ [ "tag" ==> "cmd", entry "cmdMap" ]
71 Effects.SubManager _ ->
73 Effects.SubManager _ ->
72− [ tagEntry "sub", entry "subMap" ]
74+ [ "tag" ==> "sub", entry "subMap" ]
74 Effects.FxManager _ _ ->
76 Effects.FxManager _ _ ->
75− [ tagEntry "fx", entry "cmdMap", entry "subMap" ]
77+ [ "tag" ==> "fx", entry "cmdMap", entry "subMap" ]
77 addManager =
79 addManager =
78 JS.AssignExpr () JS.OpAssign
80 JS.AssignExpr () JS.OpAssign
@@ -82,8 +84,8 @@ generateEffectManager moduleName effects =
82 [ JS.ExprStmt () addManager ]
84 [ JS.ExprStmt () addManager ]
85−tagEntry :: String -> ( JS.Prop (), JS.Expression () )
87+(==>) :: String -> String -> ( JS.Prop (), JS.Expression () )
86−tagEntry tag =
88+(==>) key value =
87− ( JS.PropId () (JS.Id () "tag")
89+ ( JS.PropId () (JS.Id () key)
88− , JS.StringLit () tag
90+ , JS.StringLit () value