]>
Commit | Line | Data |
---|---|---|
1 | module PursLoader.FS | |
2 | ( FS() | |
3 | , writeFileUtf8 | |
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 FS :: ! | |
13 | ||
14 | writeFileUtf8 :: forall eff. String -> String -> Aff (fs :: FS | eff) Unit | |
15 | writeFileUtf8 filepath contents = makeAff $ runFn4 writeFileUtf8Fn filepath contents | |
16 | ||
17 | foreign import writeFileUtf8Fn """ | |
18 | function writeFileUtf8Fn(filepath, contents, errback, callback) { | |
19 | return function(){ | |
20 | var fs = require('fs'); | |
21 | ||
22 | fs.writeFile(filepath, contents, function(error){ | |
23 | if (error) errback(error)(); | |
24 | else callback()(); | |
25 | }); | |
26 | }; | |
27 | } | |
28 | """ :: forall eff. Fn4 String | |
29 | String | |
30 | (Error -> Eff (fs :: FS | eff) Unit) | |
31 | (Unit -> Eff (fs :: FS | eff) Unit) | |
32 | (Eff (fs :: FS | eff) Unit) |