Open CharlesTaylor7 opened 1 year ago
I have two ideas in mind for how to resolve this:
(1)
Redefine defaultCopyMode
:
-- Constants.purs
foreign import defaultCopyMode :: CopyMode
// Constants.js
export defaultCopyMode = 0;
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.js
export noFlagsCopyMode = 0;
Pros: It's safer to have people opt-in Cons: Not a 1:1 with the node docs.
When I run
Node.FS.Aff.copyFile
, it fails when the file already exists. That's because of the definition ofdefaultCopyMode
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".