Skip to content

Commit 90887bb

Browse files
committed
Fix strictness issue + use unsafe-coerce
1 parent 849c702 commit 90887bb

File tree

4 files changed

+63
-51
lines changed

4 files changed

+63
-51
lines changed

bower.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"purescript-exceptions": "~0.3.0",
2828
"purescript-strings": "~0.5.0",
2929
"purescript-globals": "~0.2.0",
30-
"purescript-integers": "~0.2.0"
30+
"purescript-integers": "~0.2.0",
31+
"purescript-unsafe-coerce": "~0.1.0"
3132
}
3233
}

src/Node/FS/Async.purs

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import Node.FS
4141
import Node.FS.Stats
4242
import Node.Path (FilePath())
4343
import Node.FS.Perms
44+
import Node.FS.Internal
4445

4546
foreign import data Nullable :: * -> *
4647

@@ -88,7 +89,7 @@ rename :: forall eff. FilePath
8889
-> FilePath
8990
-> Callback eff Unit
9091
-> Eff (fs :: FS | eff) Unit
91-
rename oldFile newFile cb = return $ runFn3
92+
rename oldFile newFile cb = mkEff $ \_ -> runFn3
9293
fs.rename oldFile newFile (handleCallback cb)
9394

9495
-- |
@@ -99,7 +100,7 @@ truncate :: forall eff. FilePath
99100
-> Callback eff Unit
100101
-> Eff (fs :: FS | eff) Unit
101102

102-
truncate file len cb = return $ runFn3
103+
truncate file len cb = mkEff $ \_ -> runFn3
103104
fs.truncate file len (handleCallback cb)
104105

105106
-- |
@@ -111,7 +112,7 @@ chown :: forall eff. FilePath
111112
-> Callback eff Unit
112113
-> Eff (fs :: FS | eff) Unit
113114

114-
chown file uid gid cb = return $ runFn4
115+
chown file uid gid cb = mkEff $ \_ -> runFn4
115116
fs.chown file uid gid (handleCallback cb)
116117

117118
-- |
@@ -122,7 +123,7 @@ chmod :: forall eff. FilePath
122123
-> Callback eff Unit
123124
-> Eff (fs :: FS | eff) Unit
124125

125-
chmod file perms cb = return $ runFn3
126+
chmod file perms cb = mkEff $ \_ -> runFn3
126127
fs.chmod file (permsToString perms) (handleCallback cb)
127128

128129
-- |
@@ -132,7 +133,7 @@ stat :: forall eff. FilePath
132133
-> Callback eff Stats
133134
-> Eff (fs :: FS | eff) Unit
134135

135-
stat file cb = return $ runFn2
136+
stat file cb = mkEff $ \_ -> runFn2
136137
fs.stat file (handleCallback $ cb <<< (<$>) Stats)
137138

138139
-- |
@@ -143,7 +144,7 @@ link :: forall eff. FilePath
143144
-> Callback eff Unit
144145
-> Eff (fs :: FS | eff) Unit
145146

146-
link src dst cb = return $ runFn3
147+
link src dst cb = mkEff $ \_ -> runFn3
147148
fs.link src dst (handleCallback cb)
148149

149150
-- |
@@ -155,7 +156,7 @@ symlink :: forall eff. FilePath
155156
-> Callback eff Unit
156157
-> Eff (fs :: FS | eff) Unit
157158

158-
symlink src dest ty cb = return $ runFn4
159+
symlink src dest ty cb = mkEff $ \_ -> runFn4
159160
fs.symlink src dest (show ty) (handleCallback cb)
160161

161162
-- |
@@ -165,7 +166,7 @@ readlink :: forall eff. FilePath
165166
-> Callback eff FilePath
166167
-> Eff (fs :: FS | eff) Unit
167168

168-
readlink path cb = return $ runFn2
169+
readlink path cb = mkEff $ \_ -> runFn2
169170
fs.readlink path (handleCallback cb)
170171

171172
-- |
@@ -175,7 +176,7 @@ realpath :: forall eff. FilePath
175176
-> Callback eff FilePath
176177
-> Eff (fs :: FS | eff) Unit
177178

178-
realpath path cb = return $ runFn3
179+
realpath path cb = mkEff $ \_ -> runFn3
179180
fs.realpath path {} (handleCallback cb)
180181

181182
-- |
@@ -187,7 +188,7 @@ realpath' :: forall eff cache. FilePath
187188
-> Callback eff FilePath
188189
-> Eff (fs :: FS | eff) Unit
189190

190-
realpath' path cache cb = return $ runFn3
191+
realpath' path cache cb = mkEff $ \_ -> runFn3
191192
fs.realpath path cache (handleCallback cb)
192193

193194
-- |
@@ -197,7 +198,7 @@ unlink :: forall eff. FilePath
197198
-> Callback eff Unit
198199
-> Eff (fs :: FS | eff) Unit
199200

200-
unlink file cb = return $ runFn2
201+
unlink file cb = mkEff $ \_ -> runFn2
201202
fs.unlink file (handleCallback cb)
202203

203204
-- |
@@ -207,7 +208,7 @@ rmdir :: forall eff. FilePath
207208
-> Callback eff Unit
208209
-> Eff (fs :: FS | eff) Unit
209210

210-
rmdir file cb = return $ runFn2
211+
rmdir file cb = mkEff $ \_ -> runFn2
211212
fs.rmdir file (handleCallback cb)
212213

213214
-- |
@@ -227,7 +228,7 @@ mkdir' :: forall eff. FilePath
227228
-> Callback eff Unit
228229
-> Eff (fs :: FS | eff) Unit
229230

230-
mkdir' file perms cb = return $ runFn3
231+
mkdir' file perms cb = mkEff $ \_ -> runFn3
231232
fs.mkdir file (permsToString perms) (handleCallback cb)
232233

233234
-- |
@@ -237,7 +238,7 @@ readdir :: forall eff. FilePath
237238
-> Callback eff (Array FilePath)
238239
-> Eff (fs :: FS | eff) Unit
239240

240-
readdir file cb = return $ runFn2
241+
readdir file cb = mkEff $ \_ -> runFn2
241242
fs.readdir file (handleCallback cb)
242243

243244
-- |
@@ -249,7 +250,7 @@ utimes :: forall eff. FilePath
249250
-> Callback eff Unit
250251
-> Eff (fs :: FS | eff) Unit
251252

252-
utimes file atime mtime cb = return $ runFn4
253+
utimes file atime mtime cb = mkEff $ \_ -> runFn4
253254
fs.utimes file
254255
(ms (toEpochMilliseconds atime) / 1000)
255256
(ms (toEpochMilliseconds mtime) / 1000)
@@ -264,7 +265,7 @@ readFile :: forall eff. FilePath
264265
-> Callback eff Buffer
265266
-> Eff (fs :: FS | eff) Unit
266267

267-
readFile file cb = return $ runFn3
268+
readFile file cb = mkEff $ \_ -> runFn3
268269
fs.readFile file {} (handleCallback cb)
269270

270271
-- |
@@ -275,7 +276,7 @@ readTextFile :: forall eff. Encoding
275276
-> Callback eff String
276277
-> Eff (fs :: FS | eff) Unit
277278

278-
readTextFile encoding file cb = return $ runFn3
279+
readTextFile encoding file cb = mkEff $ \_ -> runFn3
279280
fs.readFile file { encoding: show encoding } (handleCallback cb)
280281

281282
-- |
@@ -286,7 +287,7 @@ writeFile :: forall eff. FilePath
286287
-> Callback eff Unit
287288
-> Eff (fs :: FS | eff) Unit
288289

289-
writeFile file buff cb = return $ runFn4
290+
writeFile file buff cb = mkEff $ \_ -> runFn4
290291
fs.writeFile file buff {} (handleCallback cb)
291292

292293
-- |
@@ -298,7 +299,7 @@ writeTextFile :: forall eff. Encoding
298299
-> Callback eff Unit
299300
-> Eff (fs :: FS | eff) Unit
300301

301-
writeTextFile encoding file buff cb = return $ runFn4
302+
writeTextFile encoding file buff cb = mkEff $ \_ -> runFn4
302303
fs.writeFile file buff { encoding: show encoding } (handleCallback cb)
303304

304305
-- |
@@ -309,7 +310,7 @@ appendFile :: forall eff. FilePath
309310
-> Callback eff Unit
310311
-> Eff (fs :: FS | eff) Unit
311312

312-
appendFile file buff cb = return $ runFn4
313+
appendFile file buff cb = mkEff $ \_ -> runFn4
313314
fs.appendFile file buff {} (handleCallback cb)
314315

315316
-- |
@@ -321,7 +322,7 @@ appendTextFile :: forall eff. Encoding
321322
-> Callback eff Unit
322323
-> Eff (fs :: FS | eff) Unit
323324

324-
appendTextFile encoding file buff cb = return $ runFn4
325+
appendTextFile encoding file buff cb = mkEff $ \_ -> runFn4
325326
fs.appendFile file buff { encoding: show encoding } (handleCallback cb)
326327

327328
-- |
@@ -330,5 +331,5 @@ appendTextFile encoding file buff cb = return $ runFn4
330331
exists :: forall eff. FilePath
331332
-> (Boolean -> Eff eff Unit)
332333
-> Eff (fs :: FS | eff) Unit
333-
exists file cb = return $ runFn2
334+
exists file cb = mkEff $ \_ -> runFn2
334335
fs.exists file $ \b -> runPure (unsafeInterleaveEff (cb b))

src/Node/FS/Internal.purs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
2+
module Node.FS.Internal where
3+
4+
import Prelude
5+
import Control.Monad.Eff
6+
import Unsafe.Coerce
7+
8+
mkEff :: forall e a. (Unit -> a) -> Eff e a
9+
mkEff = unsafeCoerce

0 commit comments

Comments
 (0)