@abtnode/router-provider 1.16.21-beta-bd0e2503 → 1.16.21-beta-445a8baa

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -82,6 +82,9 @@ const createRequestHandler = (id) => (req, res, target) => {
82
82
  if (rule.componentId) {
83
83
  req.headers['x-blocklet-component-id'] = rule.componentId;
84
84
  }
85
+ if (rule.pageGroup) {
86
+ req.headers['x-page-group'] = rule.pageGroup;
87
+ }
85
88
 
86
89
  req.headers['x-path-prefix'] = rule.prefix.replace(WELLKNOWN_SERVICE_PATH_PREFIX, '') || '/';
87
90
  req.headers['x-group-path-prefix'] = rule.groupPrefix || '/';
@@ -120,12 +123,12 @@ const sharedResolver = (host, url, req) => {
120
123
  }
121
124
 
122
125
  const match = findCertificate(config.certs, domain);
123
- const upstream = `http://127.0.0.1:${rule.type === ROUTING_RULE_TYPES.BLOCKLET ? servicePort : rule.port}`;
126
+ const upstream = `http://127.0.0.1:${rule.type === ROUTING_RULE_TYPES.BLOCKLET ? servicePort : rule.port || servicePort}`; // prettier-ignore
124
127
  logger.debug('resolved request', { host, url, domain, upstream, rule });
125
128
 
126
129
  return {
127
130
  id: rule.id,
128
- url: upstream,
131
+ url: rule.targetPrefix && rule.targetPrefix !== '/' ? joinUrl(upstream, rule.targetPrefix) : upstream,
129
132
  path: '/',
130
133
  opts: {
131
134
  ssl: match ? { key: match.privateKey, cert: match.certificate } : null,
@@ -252,6 +255,10 @@ const updateConfig = (reload = false) => {
252
255
  if (!rule) {
253
256
  continue;
254
257
  }
258
+ if (!rule.port) {
259
+ logger.warn('No port found for rule', rule);
260
+ return;
261
+ }
255
262
 
256
263
  logger.info('register domain on reload', { domain });
257
264
  const match = findCertificate(config.certs, site.domain);
@@ -316,6 +323,10 @@ config.sites.forEach((site) => {
316
323
  if (!rule) {
317
324
  return;
318
325
  }
326
+ if (!rule.port) {
327
+ logger.warn('No port found for rule', rule);
328
+ return;
329
+ }
319
330
 
320
331
  const match = findCertificate(config.certs, domain);
321
332
  logger.info('register domain on start', { domain });
@@ -471,12 +471,12 @@ module.exports = class ReverseProxy {
471
471
  if (route.opts && route.opts.onRequest) {
472
472
  const resultFromRequestHandler = route.opts.onRequest(req, res, target);
473
473
  if (resultFromRequestHandler !== undefined) {
474
- logger.info('proxy %s received result from onRequest handler, returning.', src + url);
474
+ logger.info('proxy returned result from onRequest handler', { from: src + url });
475
475
  return resultFromRequestHandler;
476
476
  }
477
477
  }
478
478
 
479
- logger.info('proxy: %s => %s', src + url, path.posix.join(target.host, req.url));
479
+ logger.info('proxy', { from: src + url, to: path.posix.join(target.host, req.url) });
480
480
 
481
481
  return target;
482
482
  });
package/lib/util.js CHANGED
@@ -164,7 +164,8 @@ const findRule = (rules, url) =>
164
164
  rules.find((x) => {
165
165
  const { prefix, suffix = '' } = x;
166
166
  if (suffix) {
167
- return url.startsWith(prefix) && url.endsWith(suffix);
167
+ const regex = new RegExp(`${suffix}$`);
168
+ return url.startsWith(prefix) && regex.test(url);
168
169
  }
169
170
 
170
171
  if (prefix === '/' && prefix === url) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abtnode/router-provider",
3
- "version": "1.16.21-beta-bd0e2503",
3
+ "version": "1.16.21-beta-445a8baa",
4
4
  "description": "Routing engine implementations for abt node",
5
5
  "author": "polunzh <polunzh@gmail.com>",
6
6
  "homepage": "https://github.com/ArcBlock/blocklet-server#readme",
@@ -32,10 +32,10 @@
32
32
  "url": "https://github.com/ArcBlock/blocklet-server/issues"
33
33
  },
34
34
  "dependencies": {
35
- "@abtnode/constant": "1.16.21-beta-bd0e2503",
36
- "@abtnode/logger": "1.16.21-beta-bd0e2503",
37
- "@abtnode/router-templates": "1.16.21-beta-bd0e2503",
38
- "@abtnode/util": "1.16.21-beta-bd0e2503",
35
+ "@abtnode/constant": "1.16.21-beta-445a8baa",
36
+ "@abtnode/logger": "1.16.21-beta-445a8baa",
37
+ "@abtnode/router-templates": "1.16.21-beta-445a8baa",
38
+ "@abtnode/util": "1.16.21-beta-445a8baa",
39
39
  "@arcblock/http-proxy": "^1.19.1",
40
40
  "axios": "^0.27.2",
41
41
  "debug": "^4.3.4",
@@ -59,5 +59,5 @@
59
59
  "bluebird": "^3.7.2",
60
60
  "fs-extra": "^10.1.0"
61
61
  },
62
- "gitHead": "f4550e061b661cb67d7f1413ada51f3f6491f0b8"
62
+ "gitHead": "7a7ff8be7f424775c3bde0eead773d8e6177fa1a"
63
63
  }