on master help sign in
Update public API a bit
commit3b7f6ff7b1cdbb2a6d32e1e54a39f11ae89d8df2 authorEvan Czaplicki <evancz@users.noreply.github.com> dateWed 13 Dec 2017, 15:26 (9 years ago) parent474ec0d
3 files changed+37−9
src/Elm/Compiler.hs+3−2 src/Elm/Compiler/Objects.hs+33−6 src/Elm/Package.hs+1−1
src/Elm/Compiler.hs+3−2
@@ -18,6 +18,7 @@ module Elm.Compiler
1818import qualified Data.Aeson as Json
1919import qualified Data.ByteString as BS
2020import qualified Data.Map as Map
21+import qualified Data.Text as Text
2122import Text.PrettyPrint.ANSI.Leijen (Doc)
2223
2324import qualified Compile
@@ -81,7 +82,7 @@ dummyLocalizer =
8182-- ERRORS
8283
8384
84−errorToDoc :: Localizer -> String -> String -> Error.Error -> Doc
85+errorToDoc :: Localizer -> String -> Text.Text -> Error.Error -> Doc
8586errorToDoc (Localizer localizer) location source err =
8687 error "TODO Report.toDoc" location (Error.toReport localizer err) source
8788
@@ -95,7 +96,7 @@ errorToJson (Localizer localizer) location err =
9596-- WARNINGS
9697
9798
98−warningToDoc :: Localizer -> String -> String -> Warning.Warning -> Doc
99+warningToDoc :: Localizer -> String -> Text.Text -> Warning.Warning -> Doc
99100warningToDoc (Localizer localizer) location source warning =
100101 error "TODO Report.toDoc" location (Warning.toReport localizer warning) source
101102
src/Elm/Compiler/Objects.hs+33−6
@@ -1,6 +1,7 @@
11{-# OPTIONS_GHC -Wall #-}
22module Elm.Compiler.Objects
33 ( JS.Mode(..)
4+ , Name.Target(..)
45 , JS.generate
56 , JS.Roots
67 , mains
@@ -8,19 +9,21 @@ module Elm.Compiler.Objects
89 , Opt.Graph
910 , empty
1011 , union
11− , unions
12− ,
12+ , Kernel(..)
13+ , fromKernels
1314 )
1415 where
1516
1617
17−import qualified Data.List as List
1818import qualified Data.Map as Map
1919import qualified Data.Text as Text
2020
2121import qualified AST.Optimized as Opt
2222import qualified AST.Module.Name as ModuleName
23+import qualified Elm.Name as N
24+import qualified Elm.Package as Pkg
2325import qualified Generate.JavaScript as JS
26+import qualified Generate.JavaScript.Name as Name
2427
2528
2629
@@ -55,6 +58,30 @@ union (Opt.Graph mains1 graph1 fields1) (Opt.Graph mains2 graph2 fields2) =
5558 (Map.union fields1 fields2)
5659
5760
58−unions :: [Opt.Graph] -> Opt.Graph
59−unions graphs =
60− List.foldl' union empty graphs
61+
62+-- KERNEL GRAPHS
63+
64+
65+data Kernel =
66+ Kernel
67+ { _client :: Opt.KContent
68+ , _server :: Maybe Opt.KContent
69+ }
70+
71+
72+fromKernels :: Map.Map N.Name Kernel -> Opt.Graph
73+fromKernels kernels =
74+ Opt.Graph
75+ Map.empty
76+ (Map.mapKeys toGlobal (Map.map toNode kernels))
77+ Map.empty
78+
79+
80+toGlobal :: N.Name -> Opt.Global
81+toGlobal home =
82+ Opt.Global (ModuleName.Canonical Pkg.kernel home) N.dollar
83+
84+
85+toNode :: Kernel -> Opt.Node
86+toNode (Kernel client server) =
87+ Opt.Kernel client server
src/Elm/Package.hs+1−1
@@ -6,7 +6,7 @@ module Elm.Package
66 , dummyName, kernel, core
77 , browser, virtualDom, html
88 , webgl, linearAlgebra
9− , toString, toText, toUrl, toFilePath
9+ , toString, toUrl, toFilePath
1010 , fromText
1111 , Version(..)
1212 , initialVersion, dummyVersion