@@ -69,14 +69,42 @@ fromKernels kernels =
71 (Map.mapKeys toGlobal (Map.map toNode kernels))
71 (Map.mapKeys toGlobal (Map.map toNode kernels))
72− Map.empty
72+ (Map.foldl' addKernel Map.empty kernels)
75toGlobal :: N.Name -> Opt.Global
79toGlobal :: N.Name -> Opt.Global
76toGlobal home =
80toGlobal home =
77− Opt.Global (ModuleName.Canonical Pkg.kernel home) N.dollar
81+ Opt.Global (ModuleName.Canonical Pkg.kernel (ModuleName.getKernel home)) N.dollar
80toNode :: Kernel -> Opt.Node
84toNode :: Kernel -> Opt.Node
81toNode (Kernel client server) =
85toNode (Kernel client server) =
82 Opt.Kernel client server
86 Opt.Kernel client server
90+-- KERNEL TO ELM FIELDS
93+addKernel :: Map.Map N.Name Int -> Kernel -> Map.Map N.Name Int
94+addKernel fields (Kernel client maybeServer) =
95+ addContent (maybe fields (addContent fields) maybeServer) client
98+addContent :: Map.Map N.Name Int -> Opt.KContent -> Map.Map N.Name Int
99+addContent fields (Opt.KContent chunks _) =
100+ List.foldl' addChunk fields chunks
103+addChunk :: Map.Map N.Name Int -> Opt.KChunk -> Map.Map N.Name Int
104+addChunk fields chunk =
106+ Opt.ElmField name ->
107+ Map.insertWith (+) name 1 fields