Socket
Socket
Sign inDemoInstall

@nohost/router

Package Overview
Dependencies
Maintainers
2
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nohost/router - npm Package Compare versions

Comparing version 0.6.4 to 0.7.0

38

lib/connect.js

@@ -1,2 +0,2 @@

const { request, tunnel, upgrade, getRawHeaders, onClose } = require('@nohost/connect');
const { request, tunnel, upgrade, getRawHeaders } = require('@nohost/connect');

@@ -6,25 +6,21 @@ const ERROR_HEADERS = { 'x-server': 'nohost/connect' };

module.exports = async (options, req, res) => {
if (!res) {
return request(req, options);
}
exports.writeError = (res, err) => {
res.writeHead(500, ERROR_HEADERS);
res.end(err.stack);
};
if (!res.writeHead) {
if (isUpgrade(req)) {
upgrade(req, options);
} else {
tunnel(req, options);
}
return;
}
exports.writeHead = (res, svrRes) => {
res.writeHead(svrRes.statusCode, getRawHeaders(svrRes));
};
onClose(res, (err) => req.emit('close', err));
try {
const svrRes = await request(req, options);
res.writeHead(svrRes.statusCode, getRawHeaders(svrRes));
svrRes.pipe(res);
} catch (err) {
res.writeHead(500, ERROR_HEADERS);
res.end(err.stack);
exports.writeBody = (res, svrRes) => svrRes.pipe(res);
exports.connect = async (options, req, res) => {
if (res.writeHead) {
return request(req, res, options);
}
if (isUpgrade(req)) {
return upgrade(req, options);
}
return tunnel(req, options);
};
const url = require('url');
const { parse: parseUrl } = require('url');
const { onClose, getRawHeaders } = require('@nohost/connect');
const { getServers, isFinished, getJSON } = require('./util');
const connect = require('./connect');
const { connect, writeError, writeHead, writeBody } = require('./connect');

@@ -96,6 +97,3 @@ const INTERVAL = 10000;

async proxy(req, res, callback) {
if (typeof res === 'function') {
callback = res;
res = null;
}
onClose(res);
if (this._nohostAddress) {

@@ -170,2 +168,6 @@ if (req.isUIRequest) {

Router.CLIENT_ID_FILTER = 'x-whistle-filter-client-id';
Router.writeError = writeError;
Router.writeHead = writeHead;
Router.writeBody = writeBody;
Router.getRawHeaders = getRawHeaders;
module.exports = Router;
{
"name": "@nohost/router",
"version": "0.6.4",
"version": "0.7.0",
"description": "Nohost cluster router",

@@ -35,5 +35,5 @@ "main": "lib/",

"dependencies": {
"@nohost/connect": "1.2.2",
"@nohost/connect": "^1.3.4",
"hparser": "^0.3.0"
}
}

@@ -24,2 +24,4 @@ # router

CLIENT_ID_FILTER,
writeHead,
writeError,
} = Router;

@@ -39,3 +41,9 @@ // 初始化传人部署的 nohost 服务器列表

// 支持http、websocket、tunnel
router.proxy(req, res);
try {
const svrRes = await router.proxy(req, res);
writeHead(res, svrRes);
svrRes.pipe(res);
} catch (err) {
writeError(res, err);
}

@@ -42,0 +50,0 @@ // 查看抓包请求

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc