UNPKG

nxfilter

Version:

A command line tool for filtering RDF N-Triples or N-Quads

39 lines (31 loc) 842 B
'use strict'; module.exports = getInputStream; var fs = require('fs'); var zlib = require('zlib'); /** * Retuns an input stream, either `stdin` or a stream to a file (gzip * supported), if a filename argument is passed. * * @param {[String]} Optional `filename`, reads from `stdin` if `undefined`. * @return {Stream} */ function getInputStream(filename) { if (filename) { if (!fs.existsSync(filename)) { throw new Error('Cannot open file: ' + filename); } // Get a file stream -- uncompressed or gzip var fileStream = fs.createReadStream(filename); var extension = filename.slice(filename.lastIndexOf('.') + 1); if (extension === 'gz') { return fileStream.pipe(zlib.createGunzip()); } else { return fileStream; } } else { // stdin process.stdin.setEncoding('utf8'); return process.stdin; } }