Skip to content

Commit 602a6a8

Browse files
committed
fix: write
1 parent 6f00cdf commit 602a6a8

File tree

3 files changed

+22
-21
lines changed

3 files changed

+22
-21
lines changed

src/Node/FS/Aff.purs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,9 +378,10 @@ fdWrite = toAff5 A.fdWrite
378378
-- | for details.
379379
fdWrite'
380380
:: FileDescriptor
381+
-> Buffer
381382
-> FdWriteOptions
382383
-> Aff (Tuple ByteCount Buffer)
383-
fdWrite' = toAff2 A.fdWrite'
384+
fdWrite' = toAff3 A.fdWrite'
384385

385386
-- It is unsafe to use fs.write() multiple times on the same file without waiting for the callback. For this scenario, fs.createWriteStream() is recommended.
386387
fdWriteString

src/Node/FS/Async.purs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,13 @@ import Node.Buffer (Buffer, size)
9292
import Node.Encoding (Encoding(..), encodingToNode)
9393
import Node.FS (FileDescriptor, ByteCount, FilePosition, BufferLength, BufferOffset, FileMode, SymlinkType, symlinkTypeToNode)
9494
import Node.FS.Constants (AccessMode, CopyMode, FileFlags, defaultAccessMode, defaultCopyMode, fileFlagsToNode)
95-
import Node.FS.Internal.Utils (Callback0, Callback1, JSCallback0, JSCallback1, JSCallback2, datetimeToUnixEpochTimeInSeconds, handleCallback0, handleCallback1, handleCallback1Tuple)
96-
import Node.FS.Options (AppendFileBufferOptions, AppendFileOptionsInternal, AppendFileStringOptions, CpOptions, CpOptionsInternal, FdReadOptions, FdReadOptionsInternal, FdWriteOptions, FdWriteOptionsInternal, GlobDirentOptions, GlobFilePathOptions, GlobOptionsInternal, MkdirOptions, MkdirOptionsInternal, OpendirOptions, OpendirOptionsInternal, ReadFileBufferOptions, ReadFileOptionsInternal, ReadFileStringOptions, ReaddirBufferOptions, ReaddirDirentBufferOptions, ReaddirDirentOptions, ReaddirFilePathOptions, ReaddirOptionsInternal, RealpathOptions, RealpathOptionsInternal, RmOptions, RmdirOptions, WriteFileBufferOptions, WriteFileOptionsInternal, WriteFileStringOptions, appendFileBufferOptionsDefault, appendFileBufferOptionsToInternal, appendFileStringOptionsDefault, appendFileStringOptionsToInternal, cpOptionsDefault, cpOptionsToCpOptionsInternal, fdReadOptionsToInternal, fdWriteOptionsToInternal, globDirentOptionsDefault, globDirentOptionsToInternal, globFilePathOptionsDefault, globFilePathOptionsToInternal, mkdirOptionsDefault, mkdirOptionsToInternal, opendirOptionsDefault, opendirOptionsToInternal, readFileBufferOptionsDefault, readFileBufferOptionsToInternal, readFileStringOptionsDefault, readFileStringOptionsToInternal, readdirBufferOptionsDefault, readdirBufferOptionsToInternal, readdirDirentBufferOptionsDefault, readdirDirentBufferOptionsToInternal, readdirDirentOptionsDefault, readdirDirentOptionsToInternal, readdirFilePathOptionsDefault, readdirFilePathOptionsToInternal, realpathOptionsDefault, realpathOptionsToInternal, rmOptionsDefault, rmdirOptionsDefault, writeFileBufferOptionsDefault, writeFileBufferOptionsToInternal, writeFileStringOptionsDefault, writeFileStringOptionsToInternal)
9795
import Node.FS.Dir (Dir)
9896
import Node.FS.Dirent (Dirent, DirentNameTypeBuffer, DirentNameTypeString)
97+
import Node.FS.Internal.Utils (Callback0, Callback1, JSCallback0, JSCallback1, JSCallback2, datetimeToUnixEpochTimeInSeconds, handleCallback0, handleCallback1, handleCallback1Tuple)
98+
import Node.FS.Options (AppendFileBufferOptions, AppendFileOptionsInternal, AppendFileStringOptions, CpOptions, CpOptionsInternal, FdReadOptions, FdReadOptionsInternal, FdWriteOptions, FdWriteOptionsInternal, GlobDirentOptions, GlobFilePathOptions, GlobOptionsInternal, MkdirOptions, MkdirOptionsInternal, OpendirOptions, OpendirOptionsInternal, ReadFileBufferOptions, ReadFileOptionsInternal, ReadFileStringOptions, ReaddirBufferOptions, ReaddirDirentBufferOptions, ReaddirDirentOptions, ReaddirFilePathOptions, ReaddirOptionsInternal, RealpathOptions, RealpathOptionsInternal, RmOptions, RmdirOptions, WriteFileBufferOptions, WriteFileOptionsInternal, WriteFileStringOptions, appendFileBufferOptionsDefault, appendFileBufferOptionsToInternal, appendFileStringOptionsDefault, appendFileStringOptionsToInternal, cpOptionsDefault, cpOptionsToCpOptionsInternal, fdReadOptionsToInternal, fdWriteOptionsToInternal, globDirentOptionsDefault, globDirentOptionsToInternal, globFilePathOptionsDefault, globFilePathOptionsToInternal, mkdirOptionsDefault, mkdirOptionsToInternal, opendirOptionsDefault, opendirOptionsToInternal, readFileBufferOptionsDefault, readFileBufferOptionsToInternal, readFileStringOptionsDefault, readFileStringOptionsToInternal, readdirBufferOptionsDefault, readdirBufferOptionsToInternal, readdirDirentBufferOptionsDefault, readdirDirentBufferOptionsToInternal, readdirDirentOptionsDefault, readdirDirentOptionsToInternal, readdirFilePathOptionsDefault, readdirFilePathOptionsToInternal, realpathOptionsDefault, realpathOptionsToInternal, rmOptionsDefault, rmdirOptionsDefault, writeFileBufferOptionsDefault, writeFileBufferOptionsToInternal, writeFileStringOptionsDefault, writeFileStringOptionsToInternal)
9999
import Node.FS.Perms (Perms, permsToString)
100100
import Node.FS.Stats (Stats)
101+
import Node.FS.Types (EncodingString)
101102
import Node.Path (FilePath)
102103
import Unsafe.Coerce (unsafeCoerce)
103104

@@ -134,12 +135,10 @@ readWithOptionsImpl = unsafeCoerce readImpl
134135

135136
foreign import writeImpl :: EffectFn6 FileDescriptor Buffer BufferOffset BufferLength (Nullable FilePosition) (JSCallback1 ByteCount) Unit
136137

137-
-- https://nodejs.org/docs/latest/api/fs.html#fsreadfd-options-callback
138-
writeWithOptionsImpl :: EffectFn3 FileDescriptor FdWriteOptionsInternal (JSCallback2 ByteCount Buffer) Unit
139-
writeWithOptionsImpl = unsafeCoerce writeImpl
138+
writeBufferWithOptionsImpl :: EffectFn4 FileDescriptor Buffer FdWriteOptionsInternal (JSCallback2 ByteCount Buffer) Unit
139+
writeBufferWithOptionsImpl = unsafeCoerce writeImpl
140140

141-
-- https://nodejs.org/docs/latest/api/fs.html#fsreadfd-options-callback
142-
writeStringImpl :: EffectFn5 FileDescriptor String (Nullable FilePosition) String (JSCallback2 ByteCount String) Unit
141+
writeStringImpl :: EffectFn5 FileDescriptor String (Nullable FilePosition) EncodingString (JSCallback2 ByteCount String) Unit
143142
writeStringImpl = unsafeCoerce writeImpl
144143

145144
foreign import closeImpl :: EffectFn2 FileDescriptor JSCallback0 Unit
@@ -545,10 +544,11 @@ fdWrite fd buff off len pos cb = runEffectFn6 writeImpl fd buff off len (toNulla
545544
-- | for details.
546545
fdWrite'
547546
:: FileDescriptor
547+
-> Buffer
548548
-> FdWriteOptions
549549
-> Callback1 (Tuple ByteCount Buffer)
550550
-> Effect Unit
551-
fdWrite' fd options cb = runEffectFn3 writeWithOptionsImpl fd (fdWriteOptionsToInternal options) (handleCallback1Tuple cb)
551+
fdWrite' fd buffer options cb = runEffectFn4 writeBufferWithOptionsImpl fd buffer (fdWriteOptionsToInternal options) (handleCallback1Tuple cb)
552552

553553
-- It is unsafe to use fs.write() multiple times on the same file without waiting for the callback. For this scenario, fs.createWriteStream() is recommended.
554554
fdWriteString

src/Node/FS/Sync.purs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,6 @@ module Node.FS.Sync
8080
, writev
8181
) where
8282

83-
import Node.FS.Constants (AccessMode, CopyMode, FileFlags, defaultAccessMode, defaultCopyMode, fileFlagsToNode)
84-
import Node.FS.Options (AppendFileBufferOptions, AppendFileOptionsInternal, AppendFileStringOptions, CpOptions, CpOptionsInternal, FdReadOptions, FdReadOptionsInternal, FdWriteOptions, FdWriteOptionsInternal, GlobDirentOptions, GlobFilePathOptions, GlobOptionsInternal, MkdirOptions, MkdirOptionsInternal, OpendirOptions, OpendirOptionsInternal, ReadFileBufferOptions, ReadFileOptionsInternal, ReadFileStringOptions, ReaddirBufferOptions, ReaddirDirentBufferOptions, ReaddirDirentOptions, ReaddirFilePathOptions, ReaddirOptionsInternal, RealpathOptions, RealpathOptionsInternal, RmOptions, RmdirOptions, WriteFileBufferOptions, WriteFileOptionsInternal, WriteFileStringOptions, appendFileBufferOptionsDefault, appendFileBufferOptionsToInternal, appendFileStringOptionsDefault, appendFileStringOptionsToInternal, cpOptionsDefault, cpOptionsToCpOptionsInternal, fdReadOptionsToInternal, fdWriteOptionsToInternal, globDirentOptionsDefault, globDirentOptionsToInternal, globFilePathOptionsDefault, globFilePathOptionsToInternal, mkdirOptionsDefault, mkdirOptionsToInternal, opendirOptionsDefault, opendirOptionsToInternal, readFileBufferOptionsDefault, readFileBufferOptionsToInternal, readFileStringOptionsDefault, readFileStringOptionsToInternal, readdirBufferOptionsDefault, readdirBufferOptionsToInternal, readdirDirentBufferOptionsDefault, readdirDirentBufferOptionsToInternal, readdirDirentOptionsDefault, readdirDirentOptionsToInternal, readdirFilePathOptionsDefault, readdirFilePathOptionsToInternal, realpathOptionsDefault, realpathOptionsToInternal, rmOptionsDefault, rmdirOptionsDefault, writeFileBufferOptionsDefault, writeFileBufferOptionsToInternal, writeFileStringOptionsDefault, writeFileStringOptionsToInternal)
85-
import Node.FS.Types (BufferLength, BufferOffset, ByteCount, FileDescriptor, FileMode, FilePosition, SymlinkType, symlinkTypeToNode)
8683
import Prelude
8784

8885
import Data.DateTime (DateTime)
@@ -94,11 +91,14 @@ import Effect.Exception (Error, try)
9491
import Effect.Uncurried (EffectFn1, EffectFn2, EffectFn3, EffectFn4, EffectFn5, runEffectFn1, runEffectFn2, runEffectFn3, runEffectFn4, runEffectFn5)
9592
import Node.Buffer (Buffer, size)
9693
import Node.Encoding (Encoding(..), encodingToNode)
94+
import Node.FS.Constants (AccessMode, CopyMode, FileFlags, defaultAccessMode, defaultCopyMode, fileFlagsToNode)
9795
import Node.FS.Dir (Dir)
9896
import Node.FS.Dirent (Dirent, DirentNameTypeBuffer, DirentNameTypeString)
9997
import Node.FS.Internal.Utils (datetimeToUnixEpochTimeInSeconds)
98+
import Node.FS.Options (AppendFileBufferOptions, AppendFileOptionsInternal, AppendFileStringOptions, CpOptions, CpOptionsInternal, FdReadOptions, FdReadOptionsInternal, FdWriteOptions, FdWriteOptionsInternal, GlobDirentOptions, GlobFilePathOptions, GlobOptionsInternal, MkdirOptions, MkdirOptionsInternal, OpendirOptions, OpendirOptionsInternal, ReadFileBufferOptions, ReadFileOptionsInternal, ReadFileStringOptions, ReaddirBufferOptions, ReaddirDirentBufferOptions, ReaddirDirentOptions, ReaddirFilePathOptions, ReaddirOptionsInternal, RealpathOptions, RealpathOptionsInternal, RmOptions, RmdirOptions, WriteFileBufferOptions, WriteFileOptionsInternal, WriteFileStringOptions, appendFileBufferOptionsDefault, appendFileBufferOptionsToInternal, appendFileStringOptionsDefault, appendFileStringOptionsToInternal, cpOptionsDefault, cpOptionsToCpOptionsInternal, fdReadOptionsToInternal, fdWriteOptionsToInternal, globDirentOptionsDefault, globDirentOptionsToInternal, globFilePathOptionsDefault, globFilePathOptionsToInternal, mkdirOptionsDefault, mkdirOptionsToInternal, opendirOptionsDefault, opendirOptionsToInternal, readFileBufferOptionsDefault, readFileBufferOptionsToInternal, readFileStringOptionsDefault, readFileStringOptionsToInternal, readdirBufferOptionsDefault, readdirBufferOptionsToInternal, readdirDirentBufferOptionsDefault, readdirDirentBufferOptionsToInternal, readdirDirentOptionsDefault, readdirDirentOptionsToInternal, readdirFilePathOptionsDefault, readdirFilePathOptionsToInternal, realpathOptionsDefault, realpathOptionsToInternal, rmOptionsDefault, rmdirOptionsDefault, writeFileBufferOptionsDefault, writeFileBufferOptionsToInternal, writeFileStringOptionsDefault, writeFileStringOptionsToInternal)
10099
import Node.FS.Perms (Perms, permsToString)
101100
import Node.FS.Stats (Stats)
101+
import Node.FS.Types (BufferLength, BufferOffset, ByteCount, FileDescriptor, FileMode, FilePosition, SymlinkType, EncodingString, symlinkTypeToNode)
102102
import Node.Path (FilePath)
103103
import Unsafe.Coerce (unsafeCoerce)
104104

@@ -135,11 +135,11 @@ readWithOptionsSyncImpl = unsafeCoerce readSyncImpl
135135
foreign import writeSyncImpl :: EffectFn5 FileDescriptor Buffer BufferOffset BufferLength (Nullable FilePosition) ByteCount
136136

137137
-- https://nodejs.org/docs/latest/api/fs.html#fsreadfd-options-callback
138-
writeWithOptionsSyncImpl :: EffectFn2 FileDescriptor FdWriteOptionsInternal ByteCount
139-
writeWithOptionsSyncImpl = unsafeCoerce writeSyncImpl
138+
writeBufferWithOptionsSyncImpl :: EffectFn3 FileDescriptor Buffer FdWriteOptionsInternal ByteCount
139+
writeBufferWithOptionsSyncImpl = unsafeCoerce writeSyncImpl
140140

141141
-- https://nodejs.org/docs/latest/api/fs.html#fsreadfd-options-callback
142-
writeStringSyncImpl :: EffectFn4 FileDescriptor String (Nullable FilePosition) String ByteCount
142+
writeStringSyncImpl :: EffectFn4 FileDescriptor String (Nullable FilePosition) EncodingString ByteCount
143143
writeStringSyncImpl = unsafeCoerce writeSyncImpl
144144

145145
foreign import closeSyncImpl :: EffectFn1 FileDescriptor Unit
@@ -164,8 +164,7 @@ access :: FilePath -> Effect (Maybe Error)
164164
access = flip access' defaultAccessMode
165165

166166
access' :: FilePath -> AccessMode -> Effect (Maybe Error)
167-
access' path mode = do
168-
map blush $ try $ runEffectFn2 accessSyncImpl path mode
167+
access' path mode = map blush $ try $ runEffectFn2 accessSyncImpl path mode
169168

170169
copyFile :: FilePath -> FilePath -> Effect Unit
171170
copyFile src dest = runEffectFn3 copyFileSyncImpl src dest defaultCopyMode
@@ -467,7 +466,7 @@ fdRead
467466
fdRead fd buff off len pos =
468467
runEffectFn5 readSyncImpl fd buff off len (toNullable pos)
469468

470-
-- | Read from a file asynchronously. See the [Node Documentation](https://nodejs.org/docs/latest/api/fs.html#fsreadfd-options-callback)
469+
-- | Read from a file synchronously. See the [Node Documentation](https://nodejs.org/docs/latest/api/fs.html#fsreadsyncfd-buffer-offset-length-position)
471470
-- | for details.
472471
fdRead'
473472
:: FileDescriptor
@@ -497,13 +496,14 @@ fdWrite
497496
fdWrite fd buff off len pos =
498497
runEffectFn5 writeSyncImpl fd buff off len (toNullable pos)
499498

500-
-- | Write from a file asynchronously. See the [Node Documentation](https://nodejs.org/docs/latest/api/fs.html#fswritefd-options-callback)
499+
-- | Write from a file synchronously. See the [Node Documentation](https://nodejs.org/docs/latest/api/fs.html#fswritefd-options-callback)
501500
-- | for details.
502501
fdWrite'
503502
:: FileDescriptor
503+
-> Buffer
504504
-> FdWriteOptions
505505
-> Effect ByteCount
506-
fdWrite' fd options = runEffectFn2 writeWithOptionsSyncImpl fd (fdWriteOptionsToInternal options)
506+
fdWrite' fd buffer options = runEffectFn3 writeBufferWithOptionsSyncImpl fd buffer (fdWriteOptionsToInternal options)
507507

508508
-- It is unsafe to use fs.write() multiple times on the same file without waiting for the callback. For this scenario, fs.createWriteStream() is recommended.
509509
fdWriteString
@@ -529,7 +529,7 @@ fdAppend fd buff = do
529529
fdClose :: FileDescriptor -> Effect Unit
530530
fdClose fd = runEffectFn1 closeSyncImpl fd
531531

532-
-- | Copy a file asynchronously. See the [Node Documentation](https://nodejs.org/api/fs.html#fs_fspromises_copyfile_src_dest_mode)
532+
-- | Copy a file synchronously. See the [Node Documentation](https://nodejs.org/api/fs.html#fs_fspromises_copyfile_src_dest_mode)
533533
-- | for details.
534534
cp :: FilePath -> FilePath -> Effect Unit
535535
cp src dest = cp' src dest cpOptionsDefault

0 commit comments

Comments
 (0)