@@ -45,21 +45,16 @@ foreign import data Nullable :: * -> *
45
45
46
46
type JSCallback a = Fn2 (Nullable Error ) a Unit
47
47
48
- foreign import handleCallbackImpl
49
- " function handleCallbackImpl(left, right, f) {\
50
- \ return function(err, value) {\
51
- \ if (err) f(left(err))();\
52
- \ else f(right(value))();\
53
- \ };\
54
- \}" :: forall eff a . Fn3 (Error -> Either Error a )
55
- (a -> Either Error a )
56
- (Callback eff a )
57
- (JSCallback a )
48
+ foreign import handleCallbackImpl ::
49
+ forall eff a . Fn3 (Error -> Either Error a )
50
+ (a -> Either Error a )
51
+ (Callback eff a )
52
+ (JSCallback a )
58
53
59
54
handleCallback :: forall eff a b . (Callback eff a ) -> JSCallback a
60
55
handleCallback cb = runFn3 handleCallbackImpl Left Right cb
61
56
62
- foreign import fs " var fs = require('fs'); " ::
57
+ foreign import fs ::
63
58
{ rename :: Fn3 FilePath FilePath (JSCallback Unit ) Unit
64
59
, truncate :: Fn3 FilePath Number (JSCallback Unit ) Unit
65
60
, chown :: Fn4 FilePath Number Number (JSCallback Unit ) Unit
@@ -72,19 +67,14 @@ foreign import fs "var fs = require('fs');" ::
72
67
, unlink :: Fn2 FilePath (JSCallback Unit ) Unit
73
68
, rmdir :: Fn2 FilePath (JSCallback Unit ) Unit
74
69
, mkdir :: Fn3 FilePath String (JSCallback Unit ) Unit
75
- , readdir :: Fn2 FilePath (JSCallback [ FilePath ] ) Unit
70
+ , readdir :: Fn2 FilePath (JSCallback ( Array FilePath ) ) Unit
76
71
, utimes :: Fn4 FilePath Number Number (JSCallback Unit ) Unit
77
72
, readFile :: forall a opts . Fn3 FilePath { | opts } (JSCallback a ) Unit
78
73
, writeFile :: forall a opts . Fn4 FilePath a { | opts } (JSCallback Unit ) Unit
79
74
, appendFile :: forall a opts . Fn4 FilePath a { | opts } (JSCallback Unit ) Unit
80
75
, exists :: forall a . Fn2 FilePath (Boolean -> a ) Unit
81
76
}
82
77
83
- foreign import mkEff
84
- " function mkEff(action) {\
85
- \ return action;\
86
- \}" :: forall eff a . (Unit -> a ) -> Eff eff a
87
-
88
78
-- |
89
79
-- Type synonym for callback functions.
90
80
--
@@ -97,8 +87,7 @@ rename :: forall eff. FilePath
97
87
-> FilePath
98
88
-> Callback eff Unit
99
89
-> Eff (fs :: FS | eff ) Unit
100
-
101
- rename oldFile newFile cb = mkEff $ \_ -> runFn3
90
+ rename oldFile newFile cb = return $ runFn3
102
91
fs.rename oldFile newFile (handleCallback cb)
103
92
104
93
-- |
@@ -109,7 +98,7 @@ truncate :: forall eff. FilePath
109
98
-> Callback eff Unit
110
99
-> Eff (fs :: FS | eff ) Unit
111
100
112
- truncate file len cb = mkEff $ \_ -> runFn3
101
+ truncate file len cb = return $ runFn3
113
102
fs.truncate file len (handleCallback cb)
114
103
115
104
-- |
@@ -121,7 +110,7 @@ chown :: forall eff. FilePath
121
110
-> Callback eff Unit
122
111
-> Eff (fs :: FS | eff ) Unit
123
112
124
- chown file uid gid cb = mkEff $ \_ -> runFn4
113
+ chown file uid gid cb = return $ runFn4
125
114
fs.chown file uid gid (handleCallback cb)
126
115
127
116
-- |
@@ -132,7 +121,7 @@ chmod :: forall eff. FilePath
132
121
-> Callback eff Unit
133
122
-> Eff (fs :: FS | eff ) Unit
134
123
135
- chmod file perms cb = mkEff $ \_ -> runFn3
124
+ chmod file perms cb = return $ runFn3
136
125
fs.chmod file (permsToString perms) (handleCallback cb)
137
126
138
127
-- |
@@ -142,7 +131,7 @@ stat :: forall eff. FilePath
142
131
-> Callback eff Stats
143
132
-> Eff (fs :: FS | eff ) Unit
144
133
145
- stat file cb = mkEff $ \_ -> runFn2
134
+ stat file cb = return $ runFn2
146
135
fs.stat file (handleCallback $ cb <<< (<$>) Stats )
147
136
148
137
-- |
@@ -153,7 +142,7 @@ link :: forall eff. FilePath
153
142
-> Callback eff Unit
154
143
-> Eff (fs :: FS | eff ) Unit
155
144
156
- link src dst cb = mkEff $ \_ -> runFn3
145
+ link src dst cb = return $ runFn3
157
146
fs.link src dst (handleCallback cb)
158
147
159
148
-- |
@@ -165,7 +154,7 @@ symlink :: forall eff. FilePath
165
154
-> Callback eff Unit
166
155
-> Eff (fs :: FS | eff ) Unit
167
156
168
- symlink src dest ty cb = mkEff $ \_ -> runFn4
157
+ symlink src dest ty cb = return $ runFn4
169
158
fs.symlink src dest (show ty) (handleCallback cb)
170
159
171
160
-- |
@@ -175,7 +164,7 @@ readlink :: forall eff. FilePath
175
164
-> Callback eff FilePath
176
165
-> Eff (fs :: FS | eff ) Unit
177
166
178
- readlink path cb = mkEff $ \_ -> runFn2
167
+ readlink path cb = return $ runFn2
179
168
fs.readlink path (handleCallback cb)
180
169
181
170
-- |
@@ -185,7 +174,7 @@ realpath :: forall eff. FilePath
185
174
-> Callback eff FilePath
186
175
-> Eff (fs :: FS | eff ) Unit
187
176
188
- realpath path cb = mkEff $ \_ -> runFn3
177
+ realpath path cb = return $ runFn3
189
178
fs.realpath path {} (handleCallback cb)
190
179
191
180
-- |
@@ -197,7 +186,7 @@ realpath' :: forall eff cache. FilePath
197
186
-> Callback eff FilePath
198
187
-> Eff (fs :: FS | eff ) Unit
199
188
200
- realpath' path cache cb = mkEff $ \_ -> runFn3
189
+ realpath' path cache cb = return $ runFn3
201
190
fs.realpath path cache (handleCallback cb)
202
191
203
192
-- |
@@ -207,7 +196,7 @@ unlink :: forall eff. FilePath
207
196
-> Callback eff Unit
208
197
-> Eff (fs :: FS | eff ) Unit
209
198
210
- unlink file cb = mkEff $ \_ -> runFn2
199
+ unlink file cb = return $ runFn2
211
200
fs.unlink file (handleCallback cb)
212
201
213
202
-- |
@@ -217,7 +206,7 @@ rmdir :: forall eff. FilePath
217
206
-> Callback eff Unit
218
207
-> Eff (fs :: FS | eff ) Unit
219
208
220
- rmdir file cb = mkEff $ \_ -> runFn2
209
+ rmdir file cb = return $ runFn2
221
210
fs.rmdir file (handleCallback cb)
222
211
223
212
-- |
@@ -237,17 +226,17 @@ mkdir' :: forall eff. FilePath
237
226
-> Callback eff Unit
238
227
-> Eff (fs :: FS | eff ) Unit
239
228
240
- mkdir' file perms cb = mkEff $ \_ -> runFn3
229
+ mkdir' file perms cb = return $ runFn3
241
230
fs.mkdir file (permsToString perms) (handleCallback cb)
242
231
243
232
-- |
244
233
-- Reads the contents of a directory.
245
234
--
246
235
readdir :: forall eff . FilePath
247
- -> Callback eff [ FilePath ]
236
+ -> Callback eff ( Array FilePath )
248
237
-> Eff (fs :: FS | eff ) Unit
249
238
250
- readdir file cb = mkEff $ \_ -> runFn2
239
+ readdir file cb = return $ runFn2
251
240
fs.readdir file (handleCallback cb)
252
241
253
242
-- |
@@ -259,7 +248,7 @@ utimes :: forall eff. FilePath
259
248
-> Callback eff Unit
260
249
-> Eff (fs :: FS | eff ) Unit
261
250
262
- utimes file atime mtime cb = mkEff $ \_ -> runFn4
251
+ utimes file atime mtime cb = return $ runFn4
263
252
fs.utimes file
264
253
(ms (toEpochMilliseconds atime) / 1000 )
265
254
(ms (toEpochMilliseconds mtime) / 1000 )
@@ -274,7 +263,7 @@ readFile :: forall eff. FilePath
274
263
-> Callback eff Buffer
275
264
-> Eff (fs :: FS | eff ) Unit
276
265
277
- readFile file cb = mkEff $ \_ -> runFn3
266
+ readFile file cb = return $ runFn3
278
267
fs.readFile file {} (handleCallback cb)
279
268
280
269
-- |
@@ -285,7 +274,7 @@ readTextFile :: forall eff. Encoding
285
274
-> Callback eff String
286
275
-> Eff (fs :: FS | eff ) Unit
287
276
288
- readTextFile encoding file cb = mkEff $ \_ -> runFn3
277
+ readTextFile encoding file cb = return $ runFn3
289
278
fs.readFile file { encoding: show encoding } (handleCallback cb)
290
279
291
280
-- |
@@ -296,7 +285,7 @@ writeFile :: forall eff. FilePath
296
285
-> Callback eff Unit
297
286
-> Eff (fs :: FS | eff ) Unit
298
287
299
- writeFile file buff cb = mkEff $ \_ -> runFn4
288
+ writeFile file buff cb = return $ runFn4
300
289
fs.writeFile file buff {} (handleCallback cb)
301
290
302
291
-- |
@@ -308,7 +297,7 @@ writeTextFile :: forall eff. Encoding
308
297
-> Callback eff Unit
309
298
-> Eff (fs :: FS | eff ) Unit
310
299
311
- writeTextFile encoding file buff cb = mkEff $ \_ -> runFn4
300
+ writeTextFile encoding file buff cb = return $ runFn4
312
301
fs.writeFile file buff { encoding: show encoding } (handleCallback cb)
313
302
314
303
-- |
@@ -319,7 +308,7 @@ appendFile :: forall eff. FilePath
319
308
-> Callback eff Unit
320
309
-> Eff (fs :: FS | eff ) Unit
321
310
322
- appendFile file buff cb = mkEff $ \_ -> runFn4
311
+ appendFile file buff cb = return $ runFn4
323
312
fs.appendFile file buff {} (handleCallback cb)
324
313
325
314
-- |
@@ -331,7 +320,7 @@ appendTextFile :: forall eff. Encoding
331
320
-> Callback eff Unit
332
321
-> Eff (fs :: FS | eff ) Unit
333
322
334
- appendTextFile encoding file buff cb = mkEff $ \_ -> runFn4
323
+ appendTextFile encoding file buff cb = return $ runFn4
335
324
fs.appendFile file buff { encoding: show encoding } (handleCallback cb)
336
325
337
326
-- |
@@ -340,5 +329,5 @@ appendTextFile encoding file buff cb = mkEff $ \_ -> runFn4
340
329
exists :: forall eff . FilePath
341
330
-> (Boolean -> Eff eff Unit )
342
331
-> Eff (fs :: FS | eff ) Unit
343
- exists file cb = mkEff $ \_ -> runFn2
332
+ exists file cb = return $ runFn2
344
333
fs.exists file $ \b -> runPure (unsafeInterleaveEff (cb b))
0 commit comments