@loopeco/socketio
Version:
A enhanced LoopBack's WebSocket server based on socket.io
40 lines • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isExpressResponse = exports.isExpressRequest = exports.expressInit = void 0;
const tslib_1 = require("tslib");
const express_1 = tslib_1.__importDefault(require("express"));
const setPrototypeOf = require("setprototypeof");
function expressInit(request, response, next) {
var _a;
if (typeof request.use === 'function') {
request = request.request;
}
if (typeof response === 'function') {
next = response;
response = undefined;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const req = (request !== null && request !== void 0 ? request : {});
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const res = ((_a = response !== null && response !== void 0 ? response : req.res) !== null && _a !== void 0 ? _a : {});
if (!req.res)
req.res = res;
if (!res.req)
res.req = req;
req.next = next;
if (!isExpressRequest(req))
setPrototypeOf(req, express_1.default.request);
if (!isExpressResponse(res))
setPrototypeOf(res, express_1.default.response);
return [req, res];
}
exports.expressInit = expressInit;
function isExpressRequest(x) {
return !!x && typeof x.header === 'function';
}
exports.isExpressRequest = isExpressRequest;
function isExpressResponse(x) {
return !!x && typeof x.header === 'function';
}
exports.isExpressResponse = isExpressResponse;
//# sourceMappingURL=express.js.map