1 module PursLoader.LoaderRef
12 import Prelude (Unit())
14 import Control.Monad.Eff (Eff())
15 import Control.Monad.Eff.Exception (Error())
17 import Data.Function (Fn3(), runFn3)
18 import Data.Maybe (Maybe(), fromMaybe, isJust)
20 type AsyncCallback eff = Maybe Error -> String -> Eff (loader :: Loader | eff) Unit
24 foreign import data Loader :: !
26 foreign import asyncFn :: forall eff. Fn3 (Maybe Error -> Boolean)
27 (Error -> Maybe Error -> Error)
29 (Eff (loader :: Loader | eff) (AsyncCallback eff))
31 async :: forall eff. LoaderRef -> Eff (loader :: Loader | eff) (Maybe Error -> String -> Eff (loader :: Loader | eff) Unit)
32 async ref = runFn3 asyncFn isJust fromMaybe ref
34 foreign import cacheable :: forall eff. LoaderRef -> Eff (loader :: Loader | eff) Unit
36 foreign import clearDependencies :: forall eff. LoaderRef -> Eff (loader :: Loader | eff) Unit
38 foreign import resourcePath :: LoaderRef -> String
40 foreign import addDependency :: forall eff. LoaderRef -> String -> Eff (loader :: Loader | eff) Unit