Add moved json-stream.js

pull/223/head
Ruben Daniels 2015-11-20 22:14:34 +00:00
rodzic def889f732
commit 6dc9e37db4
1 zmienionych plików z 47 dodań i 0 usunięć

Wyświetl plik

@ -0,0 +1,47 @@
define(function(require, exports, module) {
var EventEmitter = require("events").EventEmitter;
module.exports = function(stream) {
var emit = this.emit.bind(this);
var buffer = "";
stream.on("data", function(chunk) {
buffer += chunk;
var parts = buffer.split("\n");
while (parts.length) {
try {
var message = JSON.parse(parts[0]);
emit("data", message);
parts.shift();
}
catch (e) {
if (parts.length !== 1) {
emit("error", e);
parts.shift();
}
else {
break;
}
}
}
buffer = parts.join("\n");
});
stream.on("error", function(err){
emit("error", err);
});
stream.on("close", function(data){
emit("close", data);
});
this.write = function(data) {
stream.write(JSON.stringify(data) + "\n");
};
};
module.exports.prototype = new EventEmitter();
});