// this file is lib/reportstream.js // provides a stream interface to JSLint // // Copyright 2014 Cubane Canada Inc. // // Released under modified MIT/BSD 3-clause license // See LICENSE for details. /*jslint unparam: true*/ (function () { 'use strict'; var util = require('util'), Transform = require('stream').Transform, JSONReportStream; JSONReportStream = function JSONReportStream_constructor(options) { if (!(this instanceof JSONReportStream)) { return new JSONReportStream(options); } Transform.call(this, {objectMode: true}); this.allOK = true; }; util.inherits(JSONReportStream, Transform); function JSONReportStream_transform(chunk, encoding, callback) { // chunk: a package of lint data from JSLint this.emit('data', JSON.stringify([chunk.file, chunk.linted.errors])); this.allOK = this.allOK && chunk.linted.ok; callback(); } /*jslint nomen: true */ JSONReportStream.prototype._transform = JSONReportStream_transform; module.exports = JSONReportStream; }());