huxy-server 1.0.9 → 1.0.10
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.
- package/package.json +1 -1
- package/src/index.js +50 -49
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
|
-
startServer as
|
|
3
|
-
startStatic as
|
|
4
|
-
logger as
|
|
5
|
-
createLogger as
|
|
6
|
-
dateTime as
|
|
7
|
-
localIPs as
|
|
8
|
-
nodeArgs as
|
|
9
|
-
getEnvConfig as
|
|
10
|
-
checkPort as
|
|
11
|
-
getDirName as
|
|
12
|
-
resolvePath as
|
|
2
|
+
startServer as L,
|
|
3
|
+
startStatic as U,
|
|
4
|
+
logger as re,
|
|
5
|
+
createLogger as se,
|
|
6
|
+
dateTime as oe,
|
|
7
|
+
localIPs as ae,
|
|
8
|
+
nodeArgs as ne,
|
|
9
|
+
getEnvConfig as ie,
|
|
10
|
+
checkPort as pe,
|
|
11
|
+
getDirName as ce,
|
|
12
|
+
resolvePath as ue,
|
|
13
13
|
} from 'huxy-node-server';
|
|
14
|
-
import {createProxyMiddleware as
|
|
15
|
-
import {dateTime as
|
|
16
|
-
import
|
|
17
|
-
var x = (r, {secret: e = '', ...t} = {}) =>
|
|
14
|
+
import {createProxyMiddleware as k, fixRequestBody as O} from 'http-proxy-middleware';
|
|
15
|
+
import {dateTime as M} from 'huxy-node-server';
|
|
16
|
+
import $ from 'jsonwebtoken';
|
|
17
|
+
var x = (r, {secret: e = '', ...t} = {}) => $.verify(r, e, t);
|
|
18
18
|
var y =
|
|
19
19
|
(r = {}) =>
|
|
20
20
|
(e, t, s) => {
|
|
@@ -38,7 +38,7 @@ var y =
|
|
|
38
38
|
: (e.log.warn({err: o, 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'}));
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
|
-
var
|
|
41
|
+
var v =
|
|
42
42
|
({whiteAuthKeys: r = [], whiteAuthPaths: e = [], config: t = {}}) =>
|
|
43
43
|
(s, n, a) => {
|
|
44
44
|
if (s.method === 'OPTIONS' || e.includes(s.path)) return a();
|
|
@@ -50,30 +50,30 @@ var $ =
|
|
|
50
50
|
let {secret: c, expiresIn: p, algorithm: l, issuer: h} = t;
|
|
51
51
|
y({secret: c, expiresIn: p, algorithm: l, issuer: h})(s, n, a);
|
|
52
52
|
},
|
|
53
|
-
w =
|
|
54
|
-
var
|
|
55
|
-
|
|
53
|
+
w = v;
|
|
54
|
+
var I = ['origin', 'referer', 'x-forwarded-for', 'x-real-ip', 'cf-connecting-ip', 'cf-ipcountry', 'cf-ray', 'x-huxy-auth'],
|
|
55
|
+
R = ['x-powered-by', 'server'],
|
|
56
56
|
A = (r, e) => {
|
|
57
57
|
let t = new Headers(r);
|
|
58
|
-
return (
|
|
58
|
+
return (I.forEach(s => t.delete(s)), t.set('Host', e), t.set('User-Agent', 'IHUXY-API/1.0'), t);
|
|
59
59
|
},
|
|
60
60
|
P = r => {
|
|
61
61
|
let e = new Headers(r);
|
|
62
62
|
return (
|
|
63
|
-
|
|
63
|
+
R.forEach(t => e.delete(t)),
|
|
64
64
|
e.set('Access-Control-Allow-Origin', '*'),
|
|
65
65
|
e.set('X-Content-Type-Options', 'nosniff'),
|
|
66
66
|
e.get('content-type')?.includes('text/event-stream') && ((e['Cache-Control'] = 'no-cache, no-transform'), (e.Connection = 'keep-alive'), (e['X-Accel-Buffering'] = 'no')),
|
|
67
67
|
e
|
|
68
68
|
);
|
|
69
69
|
};
|
|
70
|
-
var
|
|
71
|
-
|
|
72
|
-
g = (r, e) =>
|
|
70
|
+
var E = r => Object.prototype.toString.call(r).slice(8, -1).toLowerCase(),
|
|
71
|
+
S = r => (E(r) === 'object' ? [r] : Array.isArray(r) ? r : []),
|
|
72
|
+
g = (r, e) => S(r).map(t => ((t.prefix = `${e}${t.prefix ?? (t.name ? `/${t.name}` : '')}`.replace('//', '/')), t)),
|
|
73
73
|
T = r => (Array.isArray(r) ? r : []).filter(Boolean),
|
|
74
74
|
j = (r, e) => [...new Set(['/', '/health', e, ...(Array.isArray(r) ? r : [])])].filter(Boolean).map(t => `${e}${t}`.replace('//', '/'));
|
|
75
75
|
var d = (r, e = '/') => {
|
|
76
|
-
let t = {status: 'OK', message: `API \u670D\u52A1\u5668\u8FD0\u884C\u4E2D \u{1F449} ${e}`, timestamp:
|
|
76
|
+
let t = {status: 'OK', message: `API \u670D\u52A1\u5668\u8FD0\u884C\u4E2D \u{1F449} ${e}`, timestamp: M(), uptime: process.uptime(), memoryUsage: process.memoryUsage()};
|
|
77
77
|
(r.get(e, (s, n) => {
|
|
78
78
|
n.status(200).json(t);
|
|
79
79
|
}),
|
|
@@ -81,17 +81,18 @@ var d = (r, e = '/') => {
|
|
|
81
81
|
n.status(200).json(t);
|
|
82
82
|
}));
|
|
83
83
|
},
|
|
84
|
+
H = 0,
|
|
84
85
|
W = ({target: r = 'http://', prefix: e, withPrefix: t, preserve: s = !0, ...n} = {}) => ({
|
|
85
86
|
target: r,
|
|
86
87
|
changeOrigin: !0,
|
|
87
88
|
selfHandleResponse: !1,
|
|
88
89
|
on: {
|
|
89
|
-
proxyReq: (a, o, i) => (!s && A(a.headers, r),
|
|
90
|
+
proxyReq: (a, o, i) => (!s && A(a.headers, r), O(a, o, i)),
|
|
90
91
|
proxyRes: (a, o, i) => {
|
|
91
92
|
!s && P(a.headers);
|
|
92
93
|
},
|
|
93
94
|
error: (a, o, i) => {
|
|
94
|
-
(o.log.error({err: a}, '\u4EE3\u7406\u9519\u8BEF'), i.headersSent || i.status(502).json({error: '\u7F51\u5173\u9519\u8BEF'}));
|
|
95
|
+
(H || ((H = 1), o.log.error({err: a}, '\u4EE3\u7406\u9519\u8BEF')), i.headersSent || i.status(502).json({error: '\u7F51\u5173\u9519\u8BEF'}));
|
|
95
96
|
},
|
|
96
97
|
},
|
|
97
98
|
...n,
|
|
@@ -104,13 +105,13 @@ var d = (r, e = '/') => {
|
|
|
104
105
|
let u = w({whiteAuthKeys: T(a), whitePathList: j(o, s), config: e});
|
|
105
106
|
return (
|
|
106
107
|
i.map(({prefix: c, target: p, withPrefix: l = !0, ...h}) => {
|
|
107
|
-
((p = l ? `${p}${c}` : p), r.use(c, u,
|
|
108
|
+
((p = l ? `${p}${c}` : p), r.use(c, u, k(W({prefix: c, target: p, withPrefix: l, ...h}))), t.info(`\u2705 \u4EE3\u7406\u4E2D ${c} \u{1F449} ${p}`));
|
|
108
109
|
}),
|
|
109
110
|
!0
|
|
110
111
|
);
|
|
111
112
|
},
|
|
112
113
|
m = B;
|
|
113
|
-
var
|
|
114
|
+
var C = {
|
|
114
115
|
port: parseInt(process.env.PORT || '8080', 10),
|
|
115
116
|
host: process.env.HOST || 'localhost',
|
|
116
117
|
apiPrefix: process.env.API_PREFIX || '/',
|
|
@@ -122,32 +123,32 @@ var M = {
|
|
|
122
123
|
expiresIn: process.env.JWT_EXPIRES_IN || '30d',
|
|
123
124
|
issuer: process.env.JWT_ISSUER || 'huxyApp',
|
|
124
125
|
},
|
|
125
|
-
f =
|
|
126
|
-
var
|
|
127
|
-
|
|
126
|
+
f = C;
|
|
127
|
+
var X = (r, e) =>
|
|
128
|
+
L({...f, ...r}, async (t, s, n, a) => {
|
|
128
129
|
let o = m(s, t, a);
|
|
129
130
|
(await e?.(t, s, n, a), o && d(s, t.apiPrefix));
|
|
130
131
|
}),
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
he = X,
|
|
133
|
+
me = (r, e) =>
|
|
134
|
+
U({...f, ...r}, async (t, s, n, a) => {
|
|
134
135
|
let o = m(s, t, a);
|
|
135
136
|
(await e?.(t, s, n, a), d(s, t.apiPrefix), o && d(s, t.apiPrefix));
|
|
136
137
|
});
|
|
137
138
|
export {
|
|
138
139
|
m as appProxy,
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
140
|
+
pe as checkPort,
|
|
141
|
+
se as createLogger,
|
|
142
|
+
oe as dateTime,
|
|
143
|
+
he as default,
|
|
144
|
+
ce as getDirName,
|
|
145
|
+
ie as getEnvConfig,
|
|
146
|
+
ae as localIPs,
|
|
147
|
+
re as logger,
|
|
148
|
+
ne as nodeArgs,
|
|
149
|
+
ue as resolvePath,
|
|
150
|
+
X as startApp,
|
|
151
|
+
L as startServer,
|
|
152
|
+
U as startStatic,
|
|
153
|
+
me as startStaticApp,
|
|
153
154
|
};
|