1{-# OPTIONS_GHC -Wall #-}
2module Elm.Compiler.Objects
17import qualified Data.List as List
18import qualified Data.Map as Map
20import qualified AST.Optimized as Opt
21import qualified AST.Module.Name as ModuleName
22import qualified Elm.Name as N
23import qualified Elm.Package as Pkg
24import qualified Generate.JavaScript as JS
25import qualified Generate.JavaScript.Name as Name
35 Opt.Graph Map.empty Map.empty Map.empty
38union :: Opt.Graph -> Opt.Graph -> Opt.Graph
39union (Opt.Graph mains1 graph1 fields1) (Opt.Graph mains2 graph2 fields2) =
41 (Map.union mains1 mains2)
42 (Map.union graph1 graph2)
43 (Map.union fields1 fields2)
46unions :: [Opt.Graph] -> Opt.Graph
53 List.foldl' union g gs
62 { _client :: Opt.KContent
63 , _server :: Maybe Opt.KContent
67fromKernels :: Map.Map N.Name Kernel -> Opt.Graph
71 (Map.mapKeys toGlobal (Map.map toNode kernels))
72 (Map.foldl' addKernel Map.empty kernels)
79toGlobal :: N.Name -> Opt.Global
81 Opt.Global (ModuleName.Canonical Pkg.kernel (ModuleName.getKernel home)) N.dollar
84toNode :: Kernel -> Opt.Node
85toNode (Kernel client server) =
86 Opt.Kernel client server
90-- KERNEL TO ELM FIELDS
93addKernel :: Map.Map N.Name Int -> Kernel -> Map.Map N.Name Int
94addKernel fields (Kernel client maybeServer) =
95 addContent (maybe fields (addContent fields) maybeServer) client
98addContent :: Map.Map N.Name Int -> Opt.KContent -> Map.Map N.Name Int
99addContent fields (Opt.KContent chunks _) =
100 List.foldl' addChunk fields chunks
103addChunk :: Map.Map N.Name Int -> Opt.KChunk -> Map.Map N.Name Int
104addChunk fields chunk =
107 Map.insertWith (+) name 1 fields
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list