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.
		
		
		
		
		
			
		
			
				
					
					
						
							36 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
	
	
							36 lines
						
					
					
						
							1.0 KiB
						
					
					
				| # 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'`
 | |
| 
 |