Son CV dans un terminal web en Javascript! https://terminal-cv.gregandev.fr
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
1.0 KiB

1 year ago
# fs-write-stream-atomic
Like `fs.createWriteStream(...)`, but atomic.
Writes to a tmp file and does an atomic `fs.rename` to move it into
place when it's done.
First rule of debugging: **It's always a race condition.**
## USAGE
```javascript
var fsWriteStreamAtomic = require('fs-write-stream-atomic');
// options are optional.
var write = fsWriteStreamAtomic('output.txt', options);
var read = fs.createReadStream('input.txt');
read.pipe(write);
// When the write stream emits a 'finish' or 'close' event,
// you can be sure that it is moved into place, and contains
// all the bytes that were written to it, even if something else
// was writing to `output.txt` at the same time.
```
### `fsWriteStreamAtomic(filename, [options])`
- `filename` {String} The file we want to write to
- `options` {Object}
- `chown` {Object} User and group to set ownership after write
- `uid` {Number}
- `gid` {Number}
- `encoding` {String} default = 'utf8'
- `mode` {Number} default = `0666`
- `flags` {String} default = `'w'`