]> git.immae.eu Git - github/fretlink/purs-loader.git/blob - src/PursLoader/LoaderRef.purs
Bumping version number to 0.6.0-beta.1
[github/fretlink/purs-loader.git] / src / PursLoader / LoaderRef.purs
1 module PursLoader.LoaderRef
2 ( LoaderRef()
3 , Loader()
4 , AsyncCallback()
5 , async
6 , cacheable
7 , query
8 , clearDependencies
9 , addDependency
10 , resourcePath
11 ) where
12
13 import Prelude (Unit())
14
15 import Control.Monad.Eff (Eff())
16 import Control.Monad.Eff.Exception (Error())
17
18 import Data.Function (Fn3(), runFn3)
19 import Data.Maybe (Maybe(), fromMaybe, isJust)
20
21 type AsyncCallback eff = Maybe Error -> String -> Eff (loader :: Loader | eff) Unit
22
23 data LoaderRef
24
25 foreign import data Loader :: !
26
27 foreign import asyncFn :: forall eff. Fn3 (Maybe Error -> Boolean)
28 (Error -> Maybe Error -> Error)
29 LoaderRef
30 (Eff (loader :: Loader | eff) (AsyncCallback eff))
31
32 async :: forall eff. LoaderRef -> Eff (loader :: Loader | eff) (Maybe Error -> String -> Eff (loader :: Loader | eff) Unit)
33 async ref = runFn3 asyncFn isJust fromMaybe ref
34
35 foreign import cacheable :: forall eff. LoaderRef -> Eff (loader :: Loader | eff) Unit
36
37 foreign import query :: LoaderRef -> String
38
39 foreign import clearDependencies :: forall eff. LoaderRef -> Eff (loader :: Loader | eff) Unit
40
41 foreign import resourcePath :: LoaderRef -> String
42
43 foreign import addDependency :: forall eff. LoaderRef -> String -> Eff (loader :: Loader | eff) Unit