on master help sign in
Add a function to read imports
3abe48bEvan Czaplicki
compiler/Elm/Internal/Utils.hs+10−3
@@ -1,11 +1,12 @@
1{- | This module exports functions for compiling Elm to JS.
1{- | This module exports functions for compiling Elm to JS.
2-}
2-}
3−module Elm.Internal.Utils (compile, moduleName) where
3+module Elm.Internal.Utils (compile, moduleName, nameAndImports) where
4
4
5import qualified Data.List as List
5import qualified Data.List as List
6import qualified Generate.JavaScript as JS
6import qualified Generate.JavaScript as JS
7import qualified Build.Source as Source
7import qualified Build.Source as Source
8−import qualified Parse.Module as Parser
8+import Parse.Module (getModuleName)
9+import Parse.Parse (dependencies)
9import qualified SourceSyntax.Module as M
10import qualified SourceSyntax.Module as M
10import qualified Text.PrettyPrint as P
11import qualified Text.PrettyPrint as P
11import qualified Metadata.Prelude as Prelude
12import qualified Metadata.Prelude as Prelude
@@ -25,4 +26,10 @@ interfaces = unsafePerformIO $ Prelude.interfaces False
25
26
26-- |This function extracts the module name of a given source program.
27-- |This function extracts the module name of a given source program.
27moduleName :: String -> Maybe String
28moduleName :: String -> Maybe String
28−moduleName = Parser.getModuleName
29+moduleName = getModuleName
30+
31+-- |This function extracts the module name and imported modules from a given
32+-- source program.
33+nameAndImports :: String -> Maybe (String, [String])
34+nameAndImports src =
35+ either (const Nothing) Just (dependencies src)