From 88c128ee75d549a072192e105670791f27a403de Mon Sep 17 00:00:00 2001 From: peterhrvola Date: Mon, 14 Aug 2017 14:22:42 +0200 Subject: [PATCH] added decommpress option for bzip2 --- lib/big-xml.js | 8 ++++++++ package.json | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/big-xml.js b/lib/big-xml.js index 88d1789..3743c96 100644 --- a/lib/big-xml.js +++ b/lib/big-xml.js @@ -2,6 +2,7 @@ var expat = require('node-expat'), fs = require('fs'), events = require('events'), util = require('util'), + bz2 = require('unbzip2-stream'), zlib = require('zlib'); exports.createReader = function(filename, recordRegEx, options) { @@ -13,6 +14,7 @@ function BigXmlReader(filename, recordRegEx, options) { options = options || {}; options.gzip = options.gzip || false; + options.bzip2 = options.bzip2 || false; var parser = new expat.Parser('UTF-8'); var stream = fs.createReadStream(filename); @@ -23,6 +25,12 @@ function BigXmlReader(filename, recordRegEx, options) { stream = gunzip; } + if (options.bzip2) { + var bzStream = bz2(); + stream.pipe(bzStream); + stream = bzStream; + } + stream.on('data', function(data) { if (!parser.parse(data)) { self.emit('error', new Error('XML Error: ' + parser.getError())); diff --git a/package.json b/package.json index 44bc698..dab8d3b 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "type": "MIT" }, "dependencies": { - "node-expat": ">=1.4.4" + "node-expat": ">=1.4.4", + "unbzip2-stream": "^1.2.5" }, "devDependencies": {}, "main": "./lib"