@@ -44,6 +44,8 @@ import Language.PureScript.Options
44import Language.PureScript.Traversals (sndM)
44import Language.PureScript.Traversals (sndM)
45import qualified Language.PureScript.Constants as C
45import qualified Language.PureScript.Constants as C
47+import System.FilePath.Posix ((</>))
48-- Generate code in the simplified Javascript intermediate representation for all declarations in a
50-- Generate code in the simplified Javascript intermediate representation for all declarations in a
@@ -66,7 +68,7 @@ moduleToJs (Module coms mn imps exps foreigns decls) foreign = do
66 let exps' = JSObjectLiteral $ map (runIdent &&& JSVar . identToJs) standardExps
68 let exps' = JSObjectLiteral $ map (runIdent &&& JSVar . identToJs) standardExps
67 ++ map (runIdent &&& foreignIdent) foreignExps
69 ++ map (runIdent &&& foreignIdent) foreignExps
68 return $ case additional of
70 return $ case additional of
69− MakeOptions -> moduleBody ++ [JSAssignment (JSAccessor "exports" (JSVar "module")) exps']
71+ MakeOptions _ -> moduleBody ++ [JSAssignment (JSAccessor "exports" (JSVar "module")) exps']
70 CompileOptions ns _ _ | not isModuleEmpty ->
72 CompileOptions ns _ _ | not isModuleEmpty ->
71 [ JSVariableIntroduction ns
73 [ JSVariableIntroduction ns
72 (Just (JSBinary Or (JSVar ns) (JSObjectLiteral [])) )
74 (Just (JSBinary Or (JSVar ns) (JSObjectLiteral [])) )
@@ -84,7 +86,7 @@ moduleToJs (Module coms mn imps exps foreigns decls) foreign = do
84 importToJs mn' = do
86 importToJs mn' = do
85 additional <- asks optionsAdditional
87 additional <- asks optionsAdditional
86 let moduleBody = case additional of
88 let moduleBody = case additional of
87− MakeOptions -> JSApp (JSVar "require") [JSStringLiteral (runModuleName mn')]
89+ MakeOptions path -> JSApp (JSVar "require") [JSStringLiteral (maybe id (</>) path $ runModuleName mn')]
88 CompileOptions ns _ _ -> JSAccessor (moduleNameToJs mn') (JSVar ns)
90 CompileOptions ns _ _ -> JSAccessor (moduleNameToJs mn') (JSVar ns)
89 return $ JSVariableIntroduction (moduleNameToJs mn') (Just moduleBody)
91 return $ JSVariableIntroduction (moduleNameToJs mn') (Just moduleBody)