1 module PursLoader.LoaderRef
13 import Prelude (Unit())
15 import Control.Monad.Eff (Eff())
16 import Control.Monad.Eff.Exception (Error())
18 import Data.Function (Fn3(), runFn3)
19 import Data.Maybe (Maybe(), fromMaybe, isJust)
21 type AsyncCallback eff = Maybe Error -> String -> Eff (loader :: Loader | eff) Unit
25 foreign import data Loader :: !
27 foreign import asyncFn :: forall eff. Fn3 (Maybe Error -> Boolean)
28 (Error -> Maybe Error -> Error)
30 (Eff (loader :: Loader | eff) (AsyncCallback eff))
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
35 foreign import cacheable :: forall eff. LoaderRef -> Eff (loader :: Loader | eff) Unit
37 foreign import query :: LoaderRef -> String
39 foreign import clearDependencies :: forall eff. LoaderRef -> Eff (loader :: Loader | eff) Unit
41 foreign import resourcePath :: LoaderRef -> String
43 foreign import addDependency :: forall eff. LoaderRef -> String -> Eff (loader :: Loader | eff) Unit