// 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, reporter = require('./reporter'), ReportStream; ReportStream = function ReportStream_constructor(options) { var stream = this; if (!(this instanceof ReportStream)) { return new ReportStream(options); } options = options || {}; options.objectMode = true; Transform.call(this, options); this.reporter = reporter.makeReporter( { log: function (s) { stream.emit('data', s); }, err: function (s) { stream.emit('data', s); } }, options.color, options.terse ); this.allOK = true; }; util.inherits(ReportStream, Transform); function ReportStream_transform(chunk, encoding, callback) { // chunk: a package of lint data from JSLint this.reporter.report(chunk.file, chunk.linted); this.allOK = this.allOK && chunk.linted.ok; callback(); } /*jslint nomen: true */ ReportStream.prototype._transform = ReportStream_transform; module.exports = ReportStream; }());