@@ -1,10 +1,11 @@
1{-# OPTIONS_GHC -Wall #-}
1{-# OPTIONS_GHC -Wall #-}
2{-# LANGUAGE OverloadedStrings #-}
2{-# LANGUAGE OverloadedStrings #-}
3module Generate.Output
3module Generate.Output
4− ( generate
6+ , generate
5 , generateReplFile
7 , generateReplFile
6 , noDebugUsesInPackage
8 , noDebugUsesInPackage
8 , Output(..)
9 , Output(..)
@@ -34,6 +35,7 @@ import qualified File.IO as IO
34import qualified Generate.Functions as Functions
35import qualified Generate.Functions as Functions
35import qualified Generate.Html as Html
36import qualified Generate.Html as Html
36import qualified Generate.Nitpick as Nitpick
37import qualified Generate.Nitpick as Nitpick
38+import qualified Generate.JavaScript.Mode as Mode
37import qualified Reporting.Exit as Exit
39import qualified Reporting.Exit as Exit
38import qualified Reporting.Exit.Make as E
40import qualified Reporting.Exit.Make as E
39import qualified Reporting.Task as Task
41import qualified Reporting.Task as Task
@@ -45,16 +47,11 @@ import Terminal.Args (Parser(..))
45-- GENERATE
47-- GENERATE
48−data Options =
50+data Mode = Debug | Dev | Prod
51− , _target :: Obj.Target
52− , _output :: Maybe Output
56−generate :: Options -> Summary.Summary -> Crawl.Result -> Task.Task ()
53+generate :: Mode -> Mode.Target -> Maybe Output -> Summary.Summary -> Crawl.Result -> Task.Task ()
57−generate options summary graph@(Crawl.Graph args _ _ _ _) =
54+generate mode target maybeOutput summary graph@(Crawl.Graph args _ _ _ _) =
58 case args of
55 case args of
59 Args.Pkg _ ->
56 Args.Pkg _ ->
@@ -62,23 +59,26 @@ generate options summary graph@(Crawl.Graph args _ _ _ _) =
62 Args.Roots name names ->
59 Args.Roots name names ->
63 do objectGraph <- organize summary graph
60 do objectGraph <- organize summary graph
65− case _mode options of
63+ case mode of
66− Obj.Debug -> return ()
64+ Debug -> return (Mode.debug target (error "TODO"))
67− Obj.Dev -> return ()
65+ Dev -> return (Mode.dev target)
68− Obj.Prod -> noDebugUses summary objectGraph
67+ do noDebugUses summary objectGraph
68+ return (Mode.prod target objectGraph)
70− generateMonolith options summary objectGraph (name:names)
70+ generateMonolith realMode maybeOutput summary objectGraph (name:names)
74-- GENERATE MONOLITH
74-- GENERATE MONOLITH
77−generateMonolith :: Options -> Summary.Summary -> Obj.Graph -> [Module.Raw] -> Task.Task ()
77+generateMonolith :: Mode.Mode -> Maybe Output -> Summary.Summary -> Obj.Graph -> [Module.Raw] -> Task.Task ()
78−generateMonolith (Options mode target maybeOutput) (Summary.Summary _ project _ ifaces _) graph rootNames =
78+generateMonolith mode maybeOutput (Summary.Summary _ project _ _ _) graph rootNames =
79 do let pkg = Project.getName project
79 do let pkg = Project.getName project
80 let roots = map (Module.Canonical pkg) rootNames
80 let roots = map (Module.Canonical pkg) rootNames
81− case Obj.generate mode target ifaces graph roots of
81+ case Obj.generate mode graph roots of
82 Obj.None ->
82 Obj.None ->