]>
Commit | Line | Data |
---|---|---|
c194f84c | 1 | module PursLoader.LoaderRef |
2 | ( LoaderRef() | |
3 | , Loader() | |
63d6a244 | 4 | , AsyncCallback() |
c194f84c | 5 | , async |
6 | , cacheable | |
c194f84c | 7 | , query |
3610dff1 | 8 | , clearDependencies |
9 | , addDependency | |
10 | , resourcePath | |
c194f84c | 11 | ) where |
12 | ||
03b840cb | 13 | import Prelude (Unit()) |
14 | ||
c194f84c | 15 | import Control.Monad.Eff (Eff()) |
16 | import Control.Monad.Eff.Exception (Error()) | |
17 | ||
c194f84c | 18 | import Data.Function (Fn3(), runFn3) |
19 | import Data.Maybe (Maybe(), fromMaybe, isJust) | |
20 | ||
63d6a244 | 21 | type AsyncCallback eff = Maybe Error -> String -> Eff (loader :: Loader | eff) Unit |
22 | ||
c194f84c | 23 | data LoaderRef |
24 | ||
25 | foreign import data Loader :: ! | |
26 | ||
63d6a244 | 27 | foreign import asyncFn :: forall eff. Fn3 (Maybe Error -> Boolean) |
28 | (Error -> Maybe Error -> Error) | |
29 | LoaderRef | |
30 | (Eff (loader :: Loader | eff) (AsyncCallback eff)) | |
c194f84c | 31 | |
63d6a244 | 32 | async :: forall eff. LoaderRef -> Eff (loader :: Loader | eff) (Maybe Error -> String -> Eff (loader :: Loader | eff) Unit) |
c194f84c | 33 | async ref = runFn3 asyncFn isJust fromMaybe ref |
34 | ||
03b840cb | 35 | foreign import cacheable :: forall eff. LoaderRef -> Eff (loader :: Loader | eff) Unit |
c194f84c | 36 | |
03b840cb | 37 | foreign import query :: LoaderRef -> String |
3610dff1 | 38 | |
03b840cb | 39 | foreign import clearDependencies :: forall eff. LoaderRef -> Eff (loader :: Loader | eff) Unit |
3610dff1 | 40 | |
03b840cb | 41 | foreign import resourcePath :: LoaderRef -> String |
3610dff1 | 42 | |
03b840cb | 43 | foreign import addDependency :: forall eff. LoaderRef -> String -> Eff (loader :: Loader | eff) Unit |