Skip to content

Commit ef07c9d

Browse files
committed
Refactor Node.FS.Sync to use purescript-nullable
1 parent d5136ed commit ef07c9d

File tree

2 files changed

+11
-27
lines changed

2 files changed

+11
-27
lines changed

src/Node/FS/Sync.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44

55
// module Node.FS.Sync
66

7-
var fs = require('fs');
8-
exports.fs = fs;
7+
exports.fs = require('fs');
98

109
exports.handleCallbackImpl = function (left, right, f) {
1110
return function (err, value) {
@@ -16,7 +15,3 @@ exports.handleCallbackImpl = function (left, right, f) {
1615
}
1716
};
1817
};
19-
20-
exports.createSync = fs.openSync;
21-
exports.writeSeqSync = fs.writeSync;
22-
exports.readSeqSync = fs.readSync;

src/Node/FS/Sync.purs

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import Data.Date
3838
import Data.Time
3939
import Data.Either
4040
import Data.Function
41+
import Data.Nullable (Nullable(), toNullable)
4142
import Data.Int (round)
4243
import Data.Maybe (Maybe(..))
4344
import Node.Buffer (Buffer(), BUFFER(), size)
@@ -67,19 +68,13 @@ foreign import fs ::
6768
, writeFileSync :: forall a opts. Fn3 FilePath a { | opts } Unit
6869
, appendFileSync :: forall a opts. Fn3 FilePath a { | opts } Unit
6970
, existsSync :: FilePath -> Boolean
70-
, openSync :: Fn2 FilePath String FileDescriptor
71-
, readSync :: Fn5 FileDescriptor Buffer BufferOffset BufferLength FilePosition ByteCount
72-
, writeSync :: Fn5 FileDescriptor Buffer BufferOffset BufferLength FilePosition ByteCount
71+
, openSync :: Fn3 FilePath String (Nullable FileMode) FileDescriptor
72+
, readSync :: Fn5 FileDescriptor Buffer BufferOffset BufferLength (Nullable FilePosition) ByteCount
73+
, writeSync :: Fn5 FileDescriptor Buffer BufferOffset BufferLength (Nullable FilePosition) ByteCount
7374
, fsyncSync :: Fn1 FileDescriptor Unit
7475
, closeSync :: Fn1 FileDescriptor Unit
7576
}
7677

77-
foreign import createSync :: Fn3 FilePath String FileMode FileDescriptor
78-
79-
foreign import writeSeqSync :: Fn4 FileDescriptor Buffer BufferOffset BufferLength ByteCount
80-
81-
foreign import readSeqSync :: Fn4 FileDescriptor Buffer BufferOffset BufferLength ByteCount
82-
8378
-- |
8479
-- Renames a file.
8580
--
@@ -321,10 +316,8 @@ fdOpen :: forall eff.
321316
-> FileFlags
322317
-> Maybe FileMode
323318
-> Eff (err :: EXCEPTION, fs :: FS | eff) FileDescriptor
324-
fdOpen file flags mode =
325-
case mode of
326-
Nothing -> mkEff $ \_ -> runFn2 fs.openSync file (fileFlagsToNode flags)
327-
(Just m) -> mkEff $ \_ -> runFn3 createSync file (fileFlagsToNode flags) m
319+
fdOpen file flags mode = mkEff $ \_ ->
320+
runFn3 fs.openSync file (fileFlagsToNode flags) (toNullable mode)
328321

329322
--|
330323
-- Read to a file synchronously. See <a
@@ -338,10 +331,8 @@ fdRead :: forall eff.
338331
-> BufferLength
339332
-> Maybe FilePosition
340333
-> Eff (buffer :: BUFFER, err :: EXCEPTION, fs :: FS | eff) ByteCount
341-
fdRead fd buff off len Nothing =
342-
mkEff $ \_ -> runFn4 readSeqSync fd buff off len
343-
fdRead fd buff off len (Just pos) =
344-
mkEff $ \_ -> runFn5 fs.readSync fd buff off len pos
334+
fdRead fd buff off len pos =
335+
mkEff $ \_ -> runFn5 fs.readSync fd buff off len (toNullable pos)
345336

346337
--|
347338
-- Convienence function to fill the whole buffer from the current
@@ -367,10 +358,8 @@ fdWrite :: forall eff.
367358
-> BufferLength
368359
-> Maybe FilePosition
369360
-> Eff (buffer :: BUFFER, err :: EXCEPTION, fs :: FS | eff) ByteCount
370-
fdWrite fd buff off len Nothing =
371-
mkEff $ \_ -> runFn4 writeSeqSync fd buff off len
372-
fdWrite fd buff off len (Just pos) =
373-
mkEff $ \_ -> runFn5 fs.writeSync fd buff off len pos
361+
fdWrite fd buff off len pos =
362+
mkEff $ \_ -> runFn5 fs.writeSync fd buff off len (toNullable pos)
374363

375364
--|
376365
-- Convienence function to append the whole buffer to the current

0 commit comments

Comments
 (0)