Miss any of our Open RFC calls?Watch the recordings here! »

wrote

0.3.0 • Public • Published

wrote

npm version

Promise-based write for Node.js

wrote(filepath?:String) => Promise<Writable> (ws.writable == true)

Create a write stream to your file without hastle.

const Writable = require('stream').Writable
const path = require('path')
const wrote = require('./')
const HOME_DIR = require('os').homedir()
 
const file = path.join(HOME_DIR, `wrote-${Math.floor(Math.random() * 1e5)}.data`)
 
return wrote(file)
    .then((ws) => {
        console.log(ws instanceof Writable) // true
        console.log(ws.path) // ~/wrote-35558.data
    })
    .catch(console.error)
 

If you don't have a file, a new one in the temp directory will be created for you.

const wrote = require('wrote')
const Writable = require('stream').Writable
 
return wrote()
    .then((ws) => {
        console.log(ws instanceof Writable) // true
        console.log(ws.path) // /var/folders/s0/l33t/T/wrote-35558.data
    })
    .catch(console.error)

wrote.erase(ws:Writable) => Promise<Writable> (ws.writable == false)

Erase file and close stream.

const wrote = require('wrote')
const Writable = require('stream').Writable
const path = require('path')
const HOME_DIR = require('os').homedir()
const fs = require('fs')
 
const file = path.join(HOME_DIR, `wrote-${Math.floor(Math.random() * 1e5)}.data`)
 
return wrote(file)
    .then((ws) => {
        console.log(ws instanceof Writable) // true
        console.log(ws.writable) // true
        console.log(ws.path) // ~/wrote-35558.data
        return wrote.erase(ws)
    })
    .then((ws) => {
        console.log(ws.path) // ~/wrote-35558.data, but no longer exists
        console.log(ws.writable) // false
    })
    .catch(console.error)

wrote.write(ws:Writable, data:any|Readable) => Promise

Pipe a Readable to the Writable stream and wait until it is finished, or end Writable with given data (pass null to end stream without any more data).

const wrote = require('wrote')
const assert = require('assert')
const Writable = require('stream').Writable
 
const testString = 'hello world'
const buffer = Buffer.from(testString)
const allRawData = []
const ws = new Writable({
    write: (chunk, encoding, next) => {
        allRawData.push(chunk)
        next()
    },
})
wrote.write(ws, buffer)
    .then(() => {
        console.log(allRawData.map(d => String(d))) // [ 'hello world' ]
        assert.deepEqual(allRawData, [
            buffer,
        ])
    })
    .catch(console.error)

todo

  • pass options to fs.createWriteStream

Licence: MIT

(c) Sobesednik-Media 2017

Install

npm i [email protected]

Version

0.3.0

License

MIT

Last publish

Collaborators

  • avatar