node-web-mvc
Version:
node spring mvc
56 lines (55 loc) • 2.05 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRawValues = getRawValues;
const http_1 = require("http");
const WorkerSocket_1 = __importDefault(require("./WorkerSocket"));
const WorkerInvoker_1 = __importDefault(require("./WorkerInvoker"));
function getRawValues(raw) {
const data = {};
for (let n = 0; n < raw.length; n += 2) {
data[raw[n]] = raw[n + 1];
}
return data;
}
class WorkerIncomingMessage extends http_1.IncomingMessage {
constructor(options) {
super(new WorkerSocket_1.default(options.port, 'requestSocket', options.request.socket.address));
const meta = options.request;
this.url = meta.url;
this.workerPort = options.port;
this.method = meta.method;
this.rawHeaders = meta.rawHeaders;
this.rawTrailers = meta.rawTrailers;
this.httpVersion = meta.httpVersion;
this.httpVersionMajor = meta.httpVersionMajor;
this.httpVersionMinor = meta.httpVersionMinor;
this.headers = getRawValues(this.rawHeaders);
this.trailers = getRawValues(this.rawTrailers);
Object.defineProperty(this, 'readableEncoding', { value: this.readableEncoding });
this.invoker = new WorkerInvoker_1.default(options.port);
}
addListener(event, listener) {
this.invoker.addEventListener('request', event, listener);
return this;
}
once(event, listener) {
this.invoker.addEventListener('request', event, listener, true);
return this;
}
on(event, listener) {
if (event == 'data') {
process.nextTick(() => this.addListener(event, listener));
}
else {
this.addListener(event, listener);
}
return this;
}
read(size) {
return this.invoker.invoke('request', 'read', [size]);
}
}
exports.default = WorkerIncomingMessage;