start on modified bare server
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.writeResponse = exports.Response = exports.Request = void 0;
|
||||
const node_stream_1 = require("node:stream");
|
||||
const headers_polyfill_1 = require("headers-polyfill");
|
||||
/**
|
||||
* Abstraction for the data read from IncomingMessage
|
||||
*/
|
||||
class Request {
|
||||
body;
|
||||
method;
|
||||
headers;
|
||||
url;
|
||||
constructor(body, init) {
|
||||
this.body = body;
|
||||
this.method = init.method;
|
||||
this.headers = new headers_polyfill_1.Headers(init.headers);
|
||||
// Parse the URL pathname. Host doesn't matter.
|
||||
this.url = new URL(init.path, 'http://bare-server-node');
|
||||
}
|
||||
}
|
||||
exports.Request = Request;
|
||||
class Response {
|
||||
body;
|
||||
status;
|
||||
statusText;
|
||||
headers;
|
||||
constructor(body, init = {}) {
|
||||
if (body) {
|
||||
this.body = body instanceof node_stream_1.Stream ? body : Buffer.from(body);
|
||||
}
|
||||
if (typeof init.status === 'number') {
|
||||
this.status = init.status;
|
||||
}
|
||||
else {
|
||||
this.status = 200;
|
||||
}
|
||||
if (typeof init.statusText === 'string') {
|
||||
this.statusText = init.statusText;
|
||||
}
|
||||
this.headers = new headers_polyfill_1.Headers(init.headers);
|
||||
}
|
||||
}
|
||||
exports.Response = Response;
|
||||
function writeResponse(response, res) {
|
||||
for (const [header, value] of response.headers)
|
||||
res.setHeader(header, value);
|
||||
res.writeHead(response.status, response.statusText);
|
||||
if (response.body instanceof node_stream_1.Stream) {
|
||||
const { body } = response;
|
||||
res.on('close', () => body.destroy());
|
||||
body.pipe(res);
|
||||
}
|
||||
else if (response.body instanceof Buffer)
|
||||
res.end(response.body);
|
||||
else
|
||||
res.end();
|
||||
return true;
|
||||
}
|
||||
exports.writeResponse = writeResponse;
|
||||
//# sourceMappingURL=AbstractMessage.js.map
|
||||
Reference in New Issue
Block a user