huxy-server 1.0.0-beta.6 → 1.0.0-beta.7

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.
Files changed (3) hide show
  1. package/example.js +1 -1
  2. package/package.json +1 -1
  3. package/src/index.js +45 -45
package/example.js CHANGED
@@ -15,7 +15,7 @@ const config = {
15
15
  expiresIn: '1d',
16
16
  };
17
17
 
18
- const callback = (huxyConfig, app) => {
18
+ const callback = (huxyConfig, app, huxyServer, logger) => {
19
19
  app.get('/huxyConfig', (req, res) => {
20
20
  logger.info('详细配置:', huxyConfig);
21
21
  res.status(200).json({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "huxy-server",
3
- "version": "1.0.0-beta.6",
3
+ "version": "1.0.0-beta.7",
4
4
  "description": "一个精炼、高性能的 Express.js 服务器模板,为现代 Node.js 应用程序设计,提供灵活的功能和最佳实践。",
5
5
  "type": "module",
6
6
  "module": "./src/index.js",
package/src/index.js CHANGED
@@ -12,47 +12,47 @@ import {
12
12
  resolvePath as ne,
13
13
  } from 'huxy-node-server';
14
14
  import {createProxyMiddleware as E} from 'http-proxy-middleware';
15
- import {logger as P, dateTime as I} from 'huxy-node-server';
15
+ import {dateTime as I} from 'huxy-node-server';
16
16
  import j from 'jsonwebtoken';
17
- var m = (r, e = {secret, ...opt}) => j.verify(r, secret, opt);
18
- var d =
17
+ var d = (r, e = {secret, ...opt}) => j.verify(r, secret, opt);
18
+ var f =
19
19
  (r = {}) =>
20
20
  (e, t, o) => {
21
21
  let s = e.headers.authorization;
22
22
  if (!s) return (e.log.warn('\u8BA4\u8BC1\u5931\u8D25: \u7F3A\u5C11\u8BA4\u8BC1\u4FE1\u606F'), t.status(401).json({message: '\u7F3A\u5C11\u8BA4\u8BC1\u4FE1\u606F'}));
23
23
  if (!s.startsWith('Bearer '))
24
24
  return (e.log.warn('\u8BA4\u8BC1\u5931\u8D25: \u672A\u63D0\u4F9B\u6709\u6548\u8BA4\u8BC1\u4FE1\u606F'), t.status(401).json({message: '\u672A\u63D0\u4F9B\u6709\u6548\u8BA4\u8BC1\u4FE1\u606F'}));
25
- let n = s.split(' ')[1];
26
- if (!n) return (e.log.warn('\u8BA4\u8BC1\u5931\u8D25: \u8BBF\u95EE\u4EE4\u724C\u7F3A\u5931'), t.status(401).json({message: '\u8BBF\u95EE\u4EE4\u724C\u7F3A\u5931'}));
25
+ let a = s.split(' ')[1];
26
+ if (!a) return (e.log.warn('\u8BA4\u8BC1\u5931\u8D25: \u8BBF\u95EE\u4EE4\u724C\u7F3A\u5931'), t.status(401).json({message: '\u8BBF\u95EE\u4EE4\u724C\u7F3A\u5931'}));
27
27
  try {
28
- let a = m(n, r);
29
- (e.log.info(a, '\u8BA4\u8BC1\u6210\u529F'), (e.user = a), o());
30
- } catch (a) {
31
- return a.name === 'TokenExpiredError'
28
+ let n = d(a, r);
29
+ (e.log.info(n, '\u8BA4\u8BC1\u6210\u529F'), (e.user = n), o());
30
+ } catch (n) {
31
+ return n.name === 'TokenExpiredError'
32
32
  ? (e.log.warn({ip: e.ip}, '\u8BA4\u8BC1\u5931\u8D25: \u4EE4\u724C\u5DF2\u8FC7\u671F'), t.status(401).json({message: '\u4EE4\u724C\u5DF2\u8FC7\u671F'}))
33
- : a.name === 'JsonWebTokenError'
33
+ : n.name === 'JsonWebTokenError'
34
34
  ? (e.log.warn({ip: e.ip}, '\u8BA4\u8BC1\u5931\u8D25: \u65E0\u6548\u7684\u4EE4\u724C'), t.status(403).json({message: '\u65E0\u6548\u7684\u4EE4\u724C'}))
35
- : a instanceof AuthorizationError
36
- ? (e.log.warn({ip: e.ip}, `\u8BA4\u8BC1\u5931\u8D25: ${a.message}`), t.status(a.status).json({message: a.message}))
37
- : (e.log.warn({err: a, ip: e.ip}, '\u8BA4\u8BC1\u5931\u8D25: \u5185\u90E8\u670D\u52A1\u5668\u9519\u8BEF'), t.status(500).json({message: '\u5185\u90E8\u670D\u52A1\u5668\u9519\u8BEF'}));
35
+ : n instanceof AuthorizationError
36
+ ? (e.log.warn({ip: e.ip}, `\u8BA4\u8BC1\u5931\u8D25: ${n.message}`), t.status(n.status).json({message: n.message}))
37
+ : (e.log.warn({err: n, ip: e.ip}, '\u8BA4\u8BC1\u5931\u8D25: \u5185\u90E8\u670D\u52A1\u5668\u9519\u8BEF'), t.status(500).json({message: '\u5185\u90E8\u670D\u52A1\u5668\u9519\u8BEF'}));
38
38
  }
39
39
  };
40
40
  var T =
41
41
  ({whiteAuthKeys: r = [], whiteAuthPaths: e = [], config: t = {}}) =>
42
- (o, s, n) => {
43
- if (o.method === 'OPTIONS' || e.includes(o.path)) return n();
44
- let a = o.headers['x-huxy-auth'] || o.headers['x-api-key'];
45
- if (r.includes(a)) return n();
46
- let {secret: p, expiresIn: h, algorithm: i, issuer: c} = t;
47
- d({secret: p, expiresIn: h, algorithm: i, issuer: c})(o, s, n);
42
+ (o, s, a) => {
43
+ if (o.method === 'OPTIONS' || e.includes(o.path)) return a();
44
+ let n = o.headers['x-huxy-auth'] || o.headers['x-api-key'];
45
+ if (r.includes(n)) return a();
46
+ let {secret: c, expiresIn: p, algorithm: h, issuer: i} = t;
47
+ f({secret: c, expiresIn: p, algorithm: h, issuer: i})(o, s, a);
48
48
  },
49
- f = T;
49
+ x = T;
50
50
  var v = ['x-powered-by', 'server'],
51
- x = (r, e) => {
51
+ y = (r, e) => {
52
52
  let t = new Headers(r);
53
53
  return (headersToRemove.forEach(o => t.delete(o)), t.set('Host', e), t.set('User-Agent', 'IHUXY-API/1.0'), t);
54
54
  },
55
- g = r => {
55
+ w = r => {
56
56
  let e = new Headers(r);
57
57
  return (
58
58
  v.forEach(t => e.delete(t)),
@@ -64,21 +64,21 @@ var v = ['x-powered-by', 'server'],
64
64
  };
65
65
  var H = r => Object.prototype.toString.call(r).slice(8, -1).toLowerCase(),
66
66
  R = r => (H(r) === 'object' ? [r] : Array.isArray(r) ? r : []),
67
- y = (r, e) => R(r).map(t => ((t.prefix = `${e}${t.prefix ?? `/${t.name}`}`.replace('//', '/')), t)),
68
- w = (r, e) => ['/', '/health', e, ...r].map(t => `${e}${t}`.replace('//', '/'));
67
+ g = (r, e) => R(r).map(t => ((t.prefix = `${e}${t.prefix ?? `/${t.name}`}`.replace('//', '/')), t)),
68
+ P = (r, e) => ['/', '/health', e, ...r].map(t => `${e}${t}`.replace('//', '/'));
69
69
  var $ = ({target: r = 'http://localhost:11434', prefix: e = '/api', ...t} = {}, o = !1) => ({
70
70
  target: r,
71
71
  pathRewrite: {[`^${e}`]: ''},
72
72
  changeOrigin: !0,
73
73
  selfHandleResponse: !1,
74
- onProxyReq: (s, n, a) => {
75
- !o && x(s.headers, r);
74
+ onProxyReq: (s, a, n) => {
75
+ !o && y(s.headers, r);
76
76
  },
77
- onProxyRes: (s, n, a) => {
78
- !o && g(s.headers);
77
+ onProxyRes: (s, a, n) => {
78
+ !o && w(s.headers);
79
79
  },
80
- onError: (s, n, a) => {
81
- (n.log.error({err: s}, '\u4EE3\u7406\u9519\u8BEF'), a.headersSent || a.status(502).json({error: '\u7F51\u5173\u9519\u8BEF'}));
80
+ onError: (s, a, n) => {
81
+ (a.log.error({err: s}, '\u4EE3\u7406\u9519\u8BEF'), n.headersSent || n.status(502).json({error: '\u7F51\u5173\u9519\u8BEF'}));
82
82
  },
83
83
  ...t,
84
84
  }),
@@ -88,18 +88,18 @@ var $ = ({target: r = 'http://localhost:11434', prefix: e = '/api', ...t} = {},
88
88
  s.status(200).json(t);
89
89
  });
90
90
  },
91
- C = (r, e = {}) => {
92
- let {apiPrefix: t, proxys: o = [], whiteAuthKeys: s = [], whitePathList: n = [], preserve: a = !1} = e,
93
- p = y(o, t);
91
+ C = (r, e = {}, t) => {
92
+ let {apiPrefix: o, proxys: s = [], whiteAuthKeys: a = [], whitePathList: n = [], preserve: c = !1} = e,
93
+ p = g(s, o);
94
94
  if (!p.length) return;
95
- (P.info(`\u{1F4DD} API \u63A5\u53E3\u5730\u5740: http://${e.host}:${e.port}${t}`), S(r, t));
96
- let h = f({whiteAuthKeys: s, whitePathList: w(n, t), config: e});
97
- p.map(({prefix: i, target: c}) => {
98
- let A = $({prefix: i, target: c}, a);
99
- (r.use(i, h, E(A)), P.info(`\u2705 \u4EE3\u7406\u4E2D ${i} -> ${c}`));
95
+ (t.info(`\u{1F4DD} API \u63A5\u53E3\u5730\u5740: http://${e.host}:${e.port}${o}`), S(r, o));
96
+ let h = x({whiteAuthKeys: a, whitePathList: P(n, o), config: e});
97
+ p.map(({prefix: i, target: m}) => {
98
+ let A = $({prefix: i, target: m}, c);
99
+ (r.use(i, h, E(A)), t.info(`\u2705 \u4EE3\u7406\u4E2D ${i} -> ${m}`));
100
100
  });
101
101
  },
102
- l = C;
102
+ u = C;
103
103
  var k = {
104
104
  port: parseInt(process.env.PORT || '8080', 10),
105
105
  host: process.env.HOST || 'localhost',
@@ -113,18 +113,18 @@ var k = {
113
113
  expiresIn: process.env.JWT_EXPIRES_IN || '30d',
114
114
  issuer: process.env.JWT_ISSUER || 'huxyApp',
115
115
  },
116
- u = k;
116
+ l = k;
117
117
  var L = (r, e) =>
118
- O({...u, ...r}, async (t, o, s) => {
119
- (await e?.(t, o, s), l(o, t));
118
+ O({...l, ...r}, async (t, o, s, a) => {
119
+ (await e?.(t, o, s, a), u(o, t, a));
120
120
  }),
121
121
  ce = L,
122
122
  he = (r, e) =>
123
- W({...u, ...r}, async (t, o, s) => {
124
- (await e?.(t, o, s), l(o, t));
123
+ W({...l, ...r}, async (t, o, s, a) => {
124
+ (await e?.(t, o, s, a), u(o, t, a));
125
125
  });
126
126
  export {
127
- l as appProxy,
127
+ u as appProxy,
128
128
  se as checkPort,
129
129
  q as createLogger,
130
130
  ee as dateTime,