aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Glob.purs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Glob.purs')
-rw-r--r--src/Glob.purs22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/Glob.purs b/src/Glob.purs
index 7bc9212..392d9e4 100644
--- a/src/Glob.purs
+++ b/src/Glob.purs
@@ -1,6 +1,6 @@
1module PursLoader.Glob 1module PursLoader.Glob
2 ( Glob() 2 ( Glob()
3 , glob 3 , globAll
4 ) where 4 ) where
5 5
6import Control.Monad.Aff (Aff(), makeAff) 6import Control.Monad.Aff (Aff(), makeAff)
@@ -11,21 +11,23 @@ import Data.Function
11 11
12foreign import data Glob :: ! 12foreign import data Glob :: !
13 13
14glob :: forall eff. String -> Aff (glob :: Glob | eff) [String] 14globAll :: forall eff. [String] -> Aff (glob :: Glob | eff) [[String]]
15glob pattern = makeAff $ runFn3 globFn pattern 15globAll patterns = makeAff $ runFn3 globAllFn patterns
16 16
17foreign import globFn """ 17foreign import globAllFn """
18function globFn(pattern, errback, callback) { 18function globAllFn(patterns, errback, callback) {
19 return function(){ 19 return function(){
20 var glob = require('glob'); 20 var glob = require('glob');
21 21
22 glob(pattern, function(e, data){ 22 var async = require('async');
23 if (e) errback(e)(); 23
24 else callback(data)(); 24 async.map(patterns, glob, function(error, result){
25 if (error) errback(new Error(error))();
26 else callback(result)();
25 }); 27 });
26 }; 28 };
27} 29}
28""" :: forall eff. Fn3 String 30""" :: forall eff. Fn3 [String]
29 (Error -> Eff (glob :: Glob | eff) Unit) 31 (Error -> Eff (glob :: Glob | eff) Unit)
30 ([String] -> Eff (glob :: Glob | eff) Unit) 32 ([[String]] -> Eff (glob :: Glob | eff) Unit)
31 (Eff (glob :: Glob | eff) Unit) 33 (Eff (glob :: Glob | eff) Unit)