35 lines · 837 B · JavaScript
RawDownload
if (global.GENTLY) require = GENTLY.hijack(require); var Buffer = require('buffer').Buffer; function JSONParser() {  this.data = new Buffer('');  this.bytesWritten = 0;}exports.JSONParser = JSONParser; JSONParser.prototype.initWithLength = function(length) {  this.data = new Buffer(length);}; JSONParser.prototype.write = function(buffer) {  if (this.data.length >= this.bytesWritten + buffer.length) {    buffer.copy(this.data, this.bytesWritten);  } else {    this.data = Buffer.concat([this.data, buffer]);  }  this.bytesWritten += buffer.length;  return buffer.length;}; JSONParser.prototype.end = function() {  try {    var fields = JSON.parse(this.data.toString('utf8'));    for (var field in fields) {      this.onField(field, fields[field]);    }  } catch (e) {}  this.data = null;   this.onEnd();};