1 | # fs-write-stream-atomic
|
2 |
|
3 | Like `fs.createWriteStream(...)`, but atomic.
|
4 |
|
5 | Writes to a tmp file and does an atomic `fs.rename` to move it into
|
6 | place when it's done.
|
7 |
|
8 | First rule of debugging: **It's always a race condition.**
|
9 |
|
10 | ## USAGE
|
11 |
|
12 | ```javascript
|
13 | var fsWriteStreamAtomic = require('fs-write-stream-atomic')
|
14 | // options are optional.
|
15 | var write = fsWriteStreamAtomic('output.txt', options)
|
16 | var read = fs.createReadStream('input.txt')
|
17 | read.pipe(write)
|
18 |
|
19 | // When the write stream emits a 'finish' or 'close' event,
|
20 | // you can be sure that it is moved into place, and contains
|
21 | // all the bytes that were written to it, even if something else
|
22 | // was writing to `output.txt` at the same time.
|
23 | ```
|
24 |
|
25 | ### `fsWriteStreamAtomic(filename, [options])`
|
26 |
|
27 | * `filename` {String} The file we want to write to
|
28 | * `options` {Object}
|
29 | * `chown` {Object} User and group to set ownership after write
|
30 | * `uid` {Number}
|
31 | * `gid` {Number}
|
32 | * `encoding` {String} default = 'utf8'
|
33 | * `mode` {Number} default = `0666`
|
34 | * `flags` {String} default = `'w'`
|
35 |
|