You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When I run Node.FS.Aff.copyFile, it fails when the file already exists.
That's because of the definition of defaultCopyMode which uses the fs.constants.COPYFILE_EXCL flag.
There's two issues:
(1) The default is inconsistent with the underlying node API. fs.copyFile without a specified copy mode operates as if no flags were applied. It allows overwriting files on copy.
Pros: it matches the node default.
Cons: it's a breaking change, requires a version bump and is surprising to people who relied on the old behavior.
(2)
Simply define and export this definition, but don't change defaultCopyMode. And apply some doc comments that explain the difference between noFlagsCopyMode and defaultCopyMode
// Constants.jsexportnoFlagsCopyMode=0;
Pros: It's safer to have people opt-in
Cons: Not a 1:1 with the node docs.
srghma
added a commit
to srghma/purescript-node-fs
that referenced
this issue
Oct 6, 2024
When I run
Node.FS.Aff.copyFile
, it fails when the file already exists.That's because of the definition of
defaultCopyMode
which uses thefs.constants.COPYFILE_EXCL
flag.There's two issues:
(1) The default is inconsistent with the underlying node API.
fs.copyFile
without a specified copy mode operates as if no flags were applied. It allows overwriting files on copy.https://nodejs.org/api/fs.html#fscopyfilesrc-dest-mode-callback
(2) There's no way to use this library to get at the node default behavior.
The structure of the
Node.FS.Constants
api only allows appending flags not removing them.There's no export of a "noFlags :: CopyMode".
The text was updated successfully, but these errors were encountered: