aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/PursLoader/Plugin.purs
diff options
context:
space:
mode:
Diffstat (limited to 'src/PursLoader/Plugin.purs')
-rw-r--r--src/PursLoader/Plugin.purs25
1 files changed, 5 insertions, 20 deletions
diff --git a/src/PursLoader/Plugin.purs b/src/PursLoader/Plugin.purs
index 23f8600..c798c83 100644
--- a/src/PursLoader/Plugin.purs
+++ b/src/PursLoader/Plugin.purs
@@ -1,10 +1,8 @@
1module PursLoader.Plugin 1module PursLoader.Plugin
2 ( Result() 2 ( Compile()
3 , Compile()
4 , Context() 3 , Context()
5 , ImmutableMap() 4 , Options()
6 , DependencyGraph() 5 , DependencyGraph()
7 , get
8 , dependenciesOf 6 , dependenciesOf
9 ) where 7 ) where
10 8
@@ -15,32 +13,19 @@ import Control.Monad.Eff.Exception (Error())
15 13
16import Data.Either (Either(..)) 14import Data.Either (Either(..))
17import Data.Function (Fn4(), runFn4) 15import Data.Function (Fn4(), runFn4)
18import Data.Maybe (Maybe(..))
19import Data.Nullable (Nullable()) 16import Data.Nullable (Nullable())
20 17
21type Result = { srcMap :: ImmutableMap String String, ffiMap :: ImmutableMap String String, graph :: DependencyGraph } 18type Compile eff = Nullable Error -> DependencyGraph -> Eff eff Unit
22 19
23type Compile eff = Nullable Error -> Result -> Eff eff Unit 20type Context eff = { compile :: Compile eff -> Eff eff Unit, options :: Options }
24 21
25type Context eff = { compile :: Compile eff -> Eff eff Unit } 22type Options = { bundle :: Boolean, output :: String, bundleOutput :: String }
26
27get :: forall key value. ImmutableMap key value -> key -> Maybe value
28get = runFn4 getFn Nothing Just
29 23
30dependenciesOf :: DependencyGraph -> String -> Either Error (Array String) 24dependenciesOf :: DependencyGraph -> String -> Either Error (Array String)
31dependenciesOf = runFn4 dependenciesOfFn Left Right 25dependenciesOf = runFn4 dependenciesOfFn Left Right
32 26
33foreign import data ImmutableMap :: * -> * -> *
34
35foreign import data DependencyGraph :: * 27foreign import data DependencyGraph :: *
36 28
37foreign import getFn
38 :: forall key value. Fn4 (Maybe value)
39 (value -> Maybe value)
40 (ImmutableMap key value)
41 key
42 (Maybe value)
43
44foreign import dependenciesOfFn 29foreign import dependenciesOfFn
45 :: Fn4 (Error -> Either Error (Array String)) 30 :: Fn4 (Error -> Either Error (Array String))
46 (Array String -> Either Error (Array String)) 31 (Array String -> Either Error (Array String))