uspring
Version:
A very fast Webserver which has interface like springboot
51 lines (50 loc) • 1.52 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var fast_json_parse_1 = __importDefault(require("fast-json-parse"));
function jsonParserP(res, req, next) {
var buffer;
res.onData(function (ab, isLast) {
var chunk = Buffer.from(ab);
if (isLast) {
var json = void 0;
if (buffer) {
try {
json = fast_json_parse_1.default(Buffer.concat([buffer, chunk]));
}
catch (e) {
/* res.close calls onAborted */
res.close();
return;
}
next(true);
}
else {
try {
var str = chunk.toString();
json = JSON.parse(str);
}
catch (e) {
/* res.close calls onAborted */
res.close();
return;
}
req.body = json;
next(true);
}
}
else {
if (buffer) {
buffer = Buffer.concat([buffer, chunk]);
}
else {
buffer = Buffer.concat([chunk]);
}
}
});
/* Register error cb */
res.onAborted(next);
}
exports.jsonParserP = jsonParserP;