Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/npm/fs-write-stream-atomic
Like `fs.createWriteStream(...)`, but atomic.
https://github.com/npm/fs-write-stream-atomic
Last synced: about 1 month ago
JSON representation
Like `fs.createWriteStream(...)`, but atomic.
- Host: GitHub
- URL: https://github.com/npm/fs-write-stream-atomic
- Owner: npm
- License: isc
- Archived: true
- Created: 2014-09-19T23:15:47.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2022-02-14T17:03:34.000Z (over 2 years ago)
- Last Synced: 2024-09-09T14:49:21.975Z (about 2 months ago)
- Language: JavaScript
- Size: 67.4 KB
- Stars: 49
- Watchers: 25
- Forks: 16
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-nodejs-cn - fs-write-stream-atomic - 类似 ```fs.createWriteStream()``` 的原子操作 (包 / 文件系统)
- awesome-nodejs - fs-write-stream-atomic - Like `fs.createWriteStream()`, but atomic. (Packages / Filesystem)
- awesome-nodejs - fs-write-stream-atomic - Like `fs.createWriteStream(...)`, but atomic. - ★ 43 (Filesystem)
- awesome-node - fs-write-stream-atomic - Like `fs.createWriteStream()`, but atomic. (Packages / Filesystem)
- awesome-nodejs-cn - fs-write-stream-atomic - 类似 `fs.createWriteStream()`, 但是原子的操作. (目录 / 文件系统)
- awesome-nodejs-cn - fs-write-stream-atomic - **star:49** 比如' fs.createWriteStream() ',但是原子的 ![项目已归档][Archived] (包 / 文件系统)
README
# 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'`