const { Transform } = require('stream') const constructTree = require('./construct-tree') class StreamTreeConstructor extends Transform { constructor (options) { super(Object.assign( {}, options, { objectMode: true, readableObjectMode: true } )) this.currentState = undefined } _transform (tokensChunk, encoding, callback) { const { state, ast } = constructTree( tokensChunk, this.currentState ) this.currentState = state callback(null, ast) } } module.exports = StreamTreeConstructor