git.iko.soy/rowtype-yoga/purs-eval
on main help sign in
feat: add main append
commit69684e1c82808c68218f0359a2d870ced0b54b4b authorWalker <walker@praiseweb.com.br> dateTue 1 Nov 2022, 23:16 (4 years ago) parent981f0da
2 files changed+12−8
src/Compiler.purs+5−1 test/Test/Compiler.purs+7−7
src/Compiler.purs+5−1
@@ -7,6 +7,7 @@ module Compiler
77 , SuccessResult
88 , successFromJson
99 , runCompiler
10+ , appendMain
1011 )
1112 where
1213
@@ -78,6 +79,9 @@ rename :: String -> String -> Code -> Code
7879rename url output code = PS.Replace.replace code (prefix <$> PS.string "from \"..") where
7980 prefix = const $ "from \"" <> url <> output
8081
82+appendMain :: Code -> Code
83+appendMain code = code <> "\nmain();"
84+
8185compile :: Compiler Code
8286compile = do
8387 code <- askCode
@@ -89,7 +93,7 @@ compile = do
8993 res <- liftEither $ (error <<< printError) `lmap` mRes
9094 body <- liftEither $ error `lmap` (jsonParser res.body)
9195 succ <- liftEither $ s.parser body
92− pure $ rename url output succ.js
96+ pure $ appendMain $ rename url output succ.js
9397
9498runCompiler :: Settings -> Code -> Aff Code
9599runCompiler s code = runReaderT (runReaderT compile code) s
test/Test/Compiler.purs+7−7
@@ -1,16 +1,15 @@
11module Test.Compiler (runTests) where
22
3−import Prelude (Unit, ($), bind, discard, show)
4−import Debug
3+import Prelude (Unit, bind, discard, show)
54import Data.Semigroup ((<>))
65import Data.Foldable (foldMap)
76import Data.Tuple (Tuple(Tuple))
8−import Effect
7+import Effect (Effect)
98import Test.Unit (suite, test)
109import Test.Unit.Main (runTest)
1110import Test.Unit.Assert (equal)
1211import Test.Compiler.ServerMock (settings, setupSrv)
13−import Compiler (Code, runCompiler)
12+import Compiler (Code, runCompiler, appendMain)
1413
1514mkImport :: String -> String -> Tuple Code Code
1615mkImport url mod = let
@@ -24,9 +23,10 @@ runTests :: Effect Unit
2423runTests = runTest do
2524 suite "compile" do
2625 test "produces expected output" do
27− let expected = "compiled-code"
26+ let srv = "compiled-code"
2827 compile = runCompiler settings
29− actual <- setupSrv expected (compile "code")
28+ expected = appendMain srv
29+ actual <- setupSrv srv (compile "code")
3030 expected `equal` actual
3131 test "rename imports" do
3232 let url = settings.protocol
@@ -37,4 +37,4 @@ runTests = runTest do
3737 Tuple code expected = mkImport url `foldMap` [ "Prelude", "Effect" ]
3838 compile = runCompiler settings
3939 actual <- setupSrv code (compile code)
40− expected `equal` actual
40+ (appendMain expected) `equal` actual