Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Avatar for KuCalc : devops.
Download
50650 views
1
if (global.GENTLY) require = GENTLY.hijack(require);
2
3
var Buffer = require('buffer').Buffer;
4
5
function JSONParser(parent) {
6
this.parent = parent;
7
this.data = new Buffer('');
8
this.bytesWritten = 0;
9
}
10
exports.JSONParser = JSONParser;
11
12
JSONParser.prototype.initWithLength = function(length) {
13
this.data = new Buffer(length);
14
};
15
16
JSONParser.prototype.write = function(buffer) {
17
if (this.data.length >= this.bytesWritten + buffer.length) {
18
buffer.copy(this.data, this.bytesWritten);
19
} else {
20
this.data = Buffer.concat([this.data, buffer]);
21
}
22
this.bytesWritten += buffer.length;
23
return buffer.length;
24
};
25
26
JSONParser.prototype.end = function() {
27
try {
28
var fields = JSON.parse(this.data.toString('utf8'));
29
for (var field in fields) {
30
this.onField(field, fields[field]);
31
}
32
} catch (e) {
33
this.parent.emit('error', e);
34
}
35
this.data = null;
36
37
this.onEnd();
38
};
39
40