@@ -71,6 +71,15 @@ getIncludes l = do
7171 incs <- mapM getInclude l
7272 return $ T.intercalate "\n\n" incs
7373
74+includeLibs :: [String] -> String
75+includeLibs =
76+ let
77+ repl '\\' = '_'
78+ repl '/' = '_'
79+ repl c = c
80+ in
81+ concatMap (\lib -> "var " ++ (repl <$> lib) ++ " = require(\"" ++ lib ++"\");\n")
82+
7483isYes :: Maybe String -> Bool
7584isYes (Just "Y") = True
7685isYes (Just "y") = True
@@ -105,6 +114,7 @@ codegenJs conf ci =
105114 extraRT <- TIO.readFile $ path </> (extraRunTime conf)
106115
107116 includes <- getIncludes $ includes ci
117+ let libs = T.pack $ includeLibs $ compileLibs ci
108118 TIO.writeFile (outputFile ci) $ T.concat [ header conf
109119 , "\"use strict\";\n\n"
110120 , "(function(){\n\n"
@@ -114,6 +124,7 @@ codegenJs conf ci =
114124 , doPartials (partialApplications stats), "\n"
115125 , doHiddenClasses (hiddenClasses stats), "\n"
116126 , includes, "\n"
127+ , libs, "\n"
117128 , out, "\n"
118129 , jsName (sMN 0 "runMain"), "();\n"
119130 , "}.call(this))"