@midwayjs/web 3.20.11 → 3.20.19

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.
@@ -15,6 +15,7 @@ const router_1 = require("@eggjs/router");
15
15
  const logger_1 = require("@midwayjs/logger");
16
16
  const path_1 = require("path");
17
17
  const util_1 = require("util");
18
+ const net_1 = require("net");
18
19
  const debug = (0, util_1.debuglog)('midway:debug');
19
20
  class EggControllerGenerator extends core_1.WebControllerGenerator {
20
21
  constructor(app, webRouterService) {
@@ -205,7 +206,10 @@ let MidwayWebFramework = class MidwayWebFramework extends core_1.BaseFramework {
205
206
  this.getApplicationContext().registerObject(core_1.HTTP_SERVER_KEY, this.server);
206
207
  const eggConfig = this.configService.getConfiguration('egg');
207
208
  if (!this.isClusterMode && eggConfig) {
208
- const customPort = (_a = process.env.MIDWAY_HTTP_PORT) !== null && _a !== void 0 ? _a : eggConfig.port;
209
+ let customPort = (_a = process.env.MIDWAY_HTTP_PORT) !== null && _a !== void 0 ? _a : eggConfig.port;
210
+ if (customPort === 0) {
211
+ customPort = await getFreePort();
212
+ }
209
213
  if (customPort) {
210
214
  new Promise(resolve => {
211
215
  const args = [customPort];
@@ -265,4 +269,19 @@ MidwayWebFramework = __decorate([
265
269
  (0, core_1.Framework)()
266
270
  ], MidwayWebFramework);
267
271
  exports.MidwayWebFramework = MidwayWebFramework;
272
+ async function getFreePort() {
273
+ return new Promise((resolve, reject) => {
274
+ const server = (0, net_1.createServer)();
275
+ server.listen(0, () => {
276
+ try {
277
+ const port = server.address().port;
278
+ server.close();
279
+ resolve(port);
280
+ }
281
+ catch (err) {
282
+ reject(err);
283
+ }
284
+ });
285
+ });
286
+ }
268
287
  //# sourceMappingURL=web.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@midwayjs/web",
3
- "version": "3.20.11",
3
+ "version": "3.20.19",
4
4
  "description": "Midway Web Framework for Egg.js",
5
5
  "main": "dist/index.js",
6
6
  "typings": "index.d.ts",
@@ -29,7 +29,7 @@
29
29
  "license": "MIT",
30
30
  "devDependencies": {
31
31
  "@midwayjs/logger": "^3.0.0",
32
- "@midwayjs/mock": "^3.20.11",
32
+ "@midwayjs/mock": "^3.20.19",
33
33
  "dayjs": "1.11.13",
34
34
  "egg-logger": "3.6.1",
35
35
  "egg-mock": "4.2.1",
@@ -45,7 +45,7 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "@eggjs/router": "^2.0.0",
48
- "@midwayjs/core": "^3.20.11",
48
+ "@midwayjs/core": "^3.20.19",
49
49
  "egg": "^2.28.0",
50
50
  "egg-cluster": "^1.27.1",
51
51
  "find-up": "5.0.0",
@@ -60,5 +60,5 @@
60
60
  "engines": {
61
61
  "node": ">=12"
62
62
  },
63
- "gitHead": "741e5e2cd200d44182bf893f348f58fb5c4e5404"
63
+ "gitHead": "a163376426d8bec46fd73674715447556de88c5c"
64
64
  }