@@ -1,10 +1,11 @@
11{-# OPTIONS_GHC -Wall #-}
22{-# LANGUAGE OverloadedStrings #-}
33module Generate.Output
4− ( generate
4+ ( Mode(..)
5+ , Mode.Target(..)
6+ , generate
57 , generateReplFile
68 , noDebugUsesInPackage
7− , Options(..)
89 , Output(..)
910 , output
1011 )
@@ -34,6 +35,7 @@ import qualified File.IO as IO
3435import qualified Generate.Functions as Functions
3536import qualified Generate.Html as Html
3637import qualified Generate.Nitpick as Nitpick
38+import qualified Generate.JavaScript.Mode as Mode
3739import qualified Reporting.Exit as Exit
3840import qualified Reporting.Exit.Make as E
3941import qualified Reporting.Task as Task
@@ -45,16 +47,11 @@ import Terminal.Args (Parser(..))
4547-- GENERATE
4648
4749
48−data Options =
49− Options
50− { _mode :: Obj.Mode
51− , _target :: Obj.Target
52− , _output :: Maybe Output
53− }
50+data Mode = Debug | Dev | Prod
5451
5552
56−generate :: Options -> Summary.Summary -> Crawl.Result -> Task.Task ()
57−generate options summary graph@(Crawl.Graph args _ _ _ _) =
53+generate :: Mode -> Mode.Target -> Maybe Output -> Summary.Summary -> Crawl.Result -> Task.Task ()
54+generate mode target maybeOutput summary graph@(Crawl.Graph args _ _ _ _) =
5855 case args of
5956 Args.Pkg _ ->
6057 return ()
@@ -62,23 +59,26 @@ generate options summary graph@(Crawl.Graph args _ _ _ _) =
6259 Args.Roots name names ->
6360 do objectGraph <- organize summary graph
6461
65− case _mode options of
66− Obj.Debug -> return ()
67− Obj.Dev -> return ()
68− Obj.Prod -> noDebugUses summary objectGraph
62+ realMode <-
63+ case mode of
64+ Debug -> return (Mode.debug target (error "TODO"))
65+ Dev -> return (Mode.dev target)
66+ Prod ->
67+ do noDebugUses summary objectGraph
68+ return (Mode.prod target objectGraph)
6969
70− generateMonolith options summary objectGraph (name:names)
70+ generateMonolith realMode maybeOutput summary objectGraph (name:names)
7171
7272
7373
7474-- GENERATE MONOLITH
7575
7676
77−generateMonolith :: Options -> Summary.Summary -> Obj.Graph -> [Module.Raw] -> Task.Task ()
78−generateMonolith (Options mode target maybeOutput) (Summary.Summary _ project _ ifaces _) graph rootNames =
77+generateMonolith :: Mode.Mode -> Maybe Output -> Summary.Summary -> Obj.Graph -> [Module.Raw] -> Task.Task ()
78+generateMonolith mode maybeOutput (Summary.Summary _ project _ _ _) graph rootNames =
7979 do let pkg = Project.getName project
8080 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
8282 Obj.None ->
8383 return ()
8484