@digidem/fs-write-stream-atomic

    1.1.0 • Public • Published

    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

    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'
      • getTmpname {Function} Custom function for generating a tmp name for the file as it is being copied. Passed the filename as the argument, should return a string valid filename. Default blob/custom-tmp-name/index.js#L16-L19

    Keywords

    none

    Install

    npm i @digidem/fs-write-stream-atomic

    DownloadsWeekly Downloads

    131

    Version

    1.1.0

    License

    ISC

    Unpacked Size

    19 kB

    Total Files

    11

    Last publish

    Collaborators

    • andrew_chou
    • substack
    • karissa
    • digidem-admin
    • gmaclennan
    • noffle