on master help sign in
Generate debug metadata in the right format
0da3204Evan Czaplicki
src/Generate/JavaScript/Expression.hs+10−1
@@ -24,8 +24,10 @@ import qualified Elm.Compiler.Type.Extract as Extract
24import qualified Elm.Interface as I
24import qualified Elm.Interface as I
25import qualified Elm.Name as N
25import qualified Elm.Name as N
26import qualified Elm.Package as Pkg
26import qualified Elm.Package as Pkg
27+import qualified Elm.Compiler.Version as Version
27import qualified Generate.JavaScript.Builder as JS
28import qualified Generate.JavaScript.Builder as JS
28import qualified Generate.JavaScript.Name as Name
29import qualified Generate.JavaScript.Name as Name
30+import qualified Json.Encode as Encode
29import qualified Optimize.DecisionTree as DT
31import qualified Optimize.DecisionTree as DT
30import qualified Reporting.Region as R
32import qualified Reporting.Region as R
31
33
@@ -868,10 +870,17 @@ generateMain mode interfaces home segments main =
868 # List.foldl' addDot elm segments
870 # List.foldl' addDot elm segments
869
871
870 Opt.Dynamic decoder msgType ->
872 Opt.Dynamic decoder msgType ->
873+ let
874+ jsonMetadata =
875+ Encode.object
876+ [ ("versions", Encode.object [ ("elm", Pkg.encodeVersion Version.version) ])
877+ , ("types", Type.encodeMetadata (Extract.fromMsg interfaces msgType))
878+ ]
879+ in
871 JS.Ref (Name.fromGlobal home "main")
880 JS.Ref (Name.fromGlobal home "main")
872 # List.foldl' addDot elm segments
881 # List.foldl' addDot elm segments
873 # generateJsExpr mode decoder
882 # generateJsExpr mode decoder
874− # JS.Json (Type.encodeMetadata (Extract.fromMsg interfaces msgType))
883+ # JS.Json jsonMetadata
875
884
876
885
877(#) :: JS.Expr -> JS.Expr -> JS.Expr
886(#) :: JS.Expr -> JS.Expr -> JS.Expr