huxy-node-server 1.0.0-beta.5 → 1.0.0-beta.6
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 +42 -37
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -13,15 +13,15 @@ var m = (e = new Date()) => e.toLocaleString('zh-CN', {timeZone: 'Asia/Shanghai'
|
|
|
13
13
|
let r = e ? 'https' : 'http',
|
|
14
14
|
t = M.networkInterfaces(),
|
|
15
15
|
o = [];
|
|
16
|
-
return (Object.keys(t).map(
|
|
16
|
+
return (Object.keys(t).map(i => o.push(...t[i])), o.filter(i => i.family === 'IPv4').map(i => `${r}://${i.address}`));
|
|
17
17
|
},
|
|
18
18
|
x = e => {
|
|
19
19
|
let r = e ?? process.argv.slice(2) ?? [],
|
|
20
20
|
t = {};
|
|
21
21
|
return (
|
|
22
22
|
r.map(o => {
|
|
23
|
-
let [s,
|
|
24
|
-
t[s] =
|
|
23
|
+
let [s, n] = o.split('=');
|
|
24
|
+
t[s] = n;
|
|
25
25
|
}),
|
|
26
26
|
t
|
|
27
27
|
);
|
|
@@ -47,8 +47,8 @@ var m = (e = new Date()) => e.toLocaleString('zh-CN', {timeZone: 'Asia/Shanghai'
|
|
|
47
47
|
d = (e = {}, r = k) => {
|
|
48
48
|
let {env: t} = process;
|
|
49
49
|
Object.keys(r).map(s => {
|
|
50
|
-
let
|
|
51
|
-
|
|
50
|
+
let n = t[s] ?? e[s];
|
|
51
|
+
n && U(r[s], n, e);
|
|
52
52
|
});
|
|
53
53
|
let o = {...e, ...x()};
|
|
54
54
|
return ((o.port = o.staticPort || o.port), (o.isDev = o.NODE_ENV === 'development'), o);
|
|
@@ -64,7 +64,7 @@ var m = (e = new Date()) => e.toLocaleString('zh-CN', {timeZone: 'Asia/Shanghai'
|
|
|
64
64
|
}),
|
|
65
65
|
o.listen(Number(e), r));
|
|
66
66
|
}),
|
|
67
|
-
|
|
67
|
+
y = (e, r = {}) => {
|
|
68
68
|
let t = o => {
|
|
69
69
|
(a.warn(`\u6536\u5230 ${o} \u4FE1\u53F7, \u{1F6D1} \u6B63\u5728\u5173\u95ED\u670D\u52A1\u5668...`),
|
|
70
70
|
e.close(async () => {
|
|
@@ -83,18 +83,18 @@ var m = (e = new Date()) => e.toLocaleString('zh-CN', {timeZone: 'Asia/Shanghai'
|
|
|
83
83
|
(a.fatal({reason: o, promise: s}, '\u26A0\uFE0F \u672A\u5904\u7406\u7684 Promise \u62D2\u7EDD'), process.exit(1));
|
|
84
84
|
}));
|
|
85
85
|
},
|
|
86
|
-
|
|
86
|
+
I = (e, {port: r, host: t = '0.0.0.0'} = {}) =>
|
|
87
87
|
new Promise((o, s) => {
|
|
88
|
-
let
|
|
88
|
+
let n = l => {
|
|
89
89
|
(c(), s(l));
|
|
90
90
|
},
|
|
91
|
-
|
|
91
|
+
i = () => {
|
|
92
92
|
(c(), o(e));
|
|
93
93
|
},
|
|
94
94
|
c = () => {
|
|
95
|
-
(e.off('error',
|
|
95
|
+
(e.off('error', n), e.off('listening', i));
|
|
96
96
|
};
|
|
97
|
-
(e.once('error',
|
|
97
|
+
(e.once('error', n), e.once('listening', i), e.listen(r, t));
|
|
98
98
|
});
|
|
99
99
|
import 'dotenv';
|
|
100
100
|
var G = {
|
|
@@ -134,10 +134,10 @@ var w = p('error-handler'),
|
|
|
134
134
|
t.status(404).json({success: !1, timestamp: m(), status: 404, message: `\u8DEF\u7531 ${r.method} ${r.originalUrl} \u4E0D\u5B58\u5728`, url: r.originalUrl}));
|
|
135
135
|
},
|
|
136
136
|
b = e => (r, t, o, s) => {
|
|
137
|
-
let
|
|
138
|
-
|
|
139
|
-
(w.error({message:
|
|
140
|
-
o.status(
|
|
137
|
+
let n = r.status || 500,
|
|
138
|
+
i = r.message;
|
|
139
|
+
(w.error({message: i, timestamp: m(), stack: r.stack, url: t.originalUrl, method: t.method, ip: t.ip, userAgent: t.get('User-Agent')}, '\u670D\u52A1\u5668\u5185\u90E8\u9519\u8BEF'),
|
|
140
|
+
o.status(n).json({success: !1, timestamp: m(), message: e.isDev ? i : '\u670D\u52A1\u5668\u5185\u90E8\u9519\u8BEF', stack: e.isDev ? r.stack : void 0}));
|
|
141
141
|
};
|
|
142
142
|
var R = e => (r, t, o) => {
|
|
143
143
|
(t.set('Cache-Control', `public, max-age=${e.cacheMaxAge ?? 300}, stale-while-revalidate=60`), o());
|
|
@@ -175,16 +175,21 @@ var J = (e, r = {}) => {
|
|
|
175
175
|
let t = d(e),
|
|
176
176
|
{port: o} = t;
|
|
177
177
|
(await f(o, t.host)) || ((t.port = Number(o) + 1), a.warn(`\u7AEF\u53E3 ${o} \u5DF2\u88AB\u5360\u7528\uFF0C\u73B0\u5728\u4F7F\u7528\u7AEF\u53E3 ${t.port}`));
|
|
178
|
-
let
|
|
179
|
-
J(
|
|
180
|
-
let
|
|
181
|
-
|
|
178
|
+
let n = E();
|
|
179
|
+
J(n, t);
|
|
180
|
+
let i = Q(n);
|
|
181
|
+
y(i, t);
|
|
182
182
|
try {
|
|
183
|
-
await
|
|
184
|
-
} catch {
|
|
185
|
-
(a.error('\u26A0\uFE0F \u670D\u52A1\u5668\u542F\u52A8\u5931\u8D25'), process.exit(1));
|
|
183
|
+
await I(i, t);
|
|
184
|
+
} catch (c) {
|
|
185
|
+
(a.error({err: c}, '\u26A0\uFE0F \u670D\u52A1\u5668\u542F\u52A8\u5931\u8D25'), process.exit(1));
|
|
186
186
|
}
|
|
187
|
-
|
|
187
|
+
try {
|
|
188
|
+
await r?.(t, n, i);
|
|
189
|
+
} catch (c) {
|
|
190
|
+
(a.error({err: c}, `\u56DE\u8C03\u51FD\u6570\u9519\u8BEF\uFF1A${c.message}`), process.exit(1));
|
|
191
|
+
}
|
|
192
|
+
return (Y(n, t), {app: n, httpServer: i, config: t});
|
|
188
193
|
},
|
|
189
194
|
_ = Z;
|
|
190
195
|
var q = (e, r = 56) => {
|
|
@@ -194,18 +199,18 @@ var q = (e, r = 56) => {
|
|
|
194
199
|
return `${'-'.repeat(s)}${e}${'-'.repeat(o - s)}`;
|
|
195
200
|
},
|
|
196
201
|
ee = (e, r, t) =>
|
|
197
|
-
_({...g, ...e}, async (o, s,
|
|
198
|
-
let {port:
|
|
202
|
+
_({...g, ...e}, async (o, s, n) => {
|
|
203
|
+
let {port: i, host: c, nodeEnv: l, basepath: P, appName: D = 'HuxyServer'} = o;
|
|
199
204
|
if (!t) {
|
|
200
205
|
let H = u()
|
|
201
206
|
.filter(v => v !== `http://${c}`)
|
|
202
|
-
.map(v => `http://${v}:${
|
|
207
|
+
.map(v => `http://${v}:${i}${P}`);
|
|
203
208
|
(a.info(q(D)),
|
|
204
|
-
a.info(`\u{1F680} \u670D\u52A1\u8FD0\u884C\u5728\u3010${l}\u3011\u73AF\u5883: http://${c}:${
|
|
209
|
+
a.info(`\u{1F680} \u670D\u52A1\u8FD0\u884C\u5728\u3010${l}\u3011\u73AF\u5883: http://${c}:${i}${P}`),
|
|
205
210
|
a.info(`-----------------[${m()}]------------------`),
|
|
206
211
|
a.info({ips: H}, '\u672C\u5730\u5730\u5740\uFF1A'));
|
|
207
212
|
}
|
|
208
|
-
await r?.(o, s,
|
|
213
|
+
await r?.(o, s, n);
|
|
209
214
|
}),
|
|
210
215
|
h = ee;
|
|
211
216
|
import se from 'express';
|
|
@@ -214,14 +219,14 @@ import {dirname as oe, resolve as re} from 'node:path';
|
|
|
214
219
|
var T = (e = import.meta.url) => oe(te(e)),
|
|
215
220
|
S = e => re(T(), e),
|
|
216
221
|
$ = S;
|
|
217
|
-
var
|
|
218
|
-
|
|
219
|
-
h({...
|
|
222
|
+
var ie = {port: 9e3, host: 'localhost', basepath: '/', buildPath: './build'},
|
|
223
|
+
ne = (e, r) =>
|
|
224
|
+
h({...ie, ...e}, async (t, o, s) => {
|
|
220
225
|
await r?.(t, o, s);
|
|
221
|
-
let {basepath:
|
|
226
|
+
let {basepath: n, buildPath: i} = t;
|
|
222
227
|
(o.use(
|
|
223
|
-
|
|
224
|
-
se.static(
|
|
228
|
+
n,
|
|
229
|
+
se.static(i, {
|
|
225
230
|
maxAge: '1y',
|
|
226
231
|
immutable: !0,
|
|
227
232
|
setHeaders: (c, l) => {
|
|
@@ -229,11 +234,11 @@ var ne = {port: 9e3, host: 'localhost', basepath: '/', buildPath: './build'},
|
|
|
229
234
|
},
|
|
230
235
|
}),
|
|
231
236
|
),
|
|
232
|
-
o.get(`${
|
|
233
|
-
l.sendFile($(
|
|
237
|
+
o.get(`${n}/{*splat}`.replace('//', '/'), (c, l) => {
|
|
238
|
+
l.sendFile($(i, 'index.html'));
|
|
234
239
|
}));
|
|
235
240
|
}),
|
|
236
|
-
O =
|
|
241
|
+
O = ne;
|
|
237
242
|
var tt = {startServer: h, startStatic: O, logger: a, createLogger: p, dateTime: m, localIPs: u, nodeArgs: x, getEnvConfig: d, checkPort: f, getDirName: T, resolvePath: S};
|
|
238
243
|
export {
|
|
239
244
|
f as checkPort,
|