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