/** * @author Toru Nagashima * @copyright 2016 Toru Nagashima. All rights reserved. * See LICENSE file in root directory for full license. */ 'use strict' // ------------------------------------------------------------------------------ // Requirements // ------------------------------------------------------------------------------ const stream = require('stream') // ------------------------------------------------------------------------------ // Public Interface // ------------------------------------------------------------------------------ /** * The stream to accumulate written data as a single string. */ module.exports = class BufferStream extends stream.Writable { /** * Initialize the current data as a empty string. */ constructor () { super() /** * Accumulated data. * @type {string} */ this.value = '' } /** * Accumulates written data. * * @param {string|Buffer} chunk - A written data. * @param {string} _encoding - The encoding of chunk. * @param {function} callback - The callback to notify done. * @returns {void} */ _write (chunk, _encoding, callback) { this.value += chunk.toString() callback() } }