]>
Commit | Line | Data |
---|---|---|
c194f84c | 1 | module PursLoader.Glob |
2 | ( Glob() | |
3 | , glob | |
4 | ) where | |
5 | ||
6 | import Control.Monad.Aff (Aff(), makeAff) | |
7 | import Control.Monad.Eff (Eff()) | |
8 | import Control.Monad.Eff.Exception (Error()) | |
9 | ||
10 | import Data.Function | |
11 | ||
12 | foreign import data Glob :: ! | |
13 | ||
14 | glob :: forall eff. String -> Aff (glob :: Glob | eff) [String] | |
15 | glob pattern = makeAff $ runFn3 globFn pattern | |
16 | ||
17 | foreign import globFn """ | |
18 | function globFn(pattern, errback, callback) { | |
19 | return function(){ | |
20 | var glob = require('glob'); | |
21 | ||
22 | glob(pattern, function(e, data){ | |
23 | if (e) errback(e)(); | |
24 | else callback(data)(); | |
25 | }); | |
26 | }; | |
27 | } | |
28 | """ :: forall eff. Fn3 String | |
29 | (Error -> Eff (glob :: Glob | eff) Unit) | |
30 | ([String] -> Eff (glob :: Glob | eff) Unit) | |
31 | (Eff (glob :: Glob | eff) Unit) |