@midwayjs/web 4.0.0-beta.1 → 4.0.0-beta.2

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) {
@@ -200,7 +201,10 @@ let MidwayWebFramework = class MidwayWebFramework extends core_1.BaseFramework {
200
201
  this.getApplicationContext().registerObject(core_1.HTTP_SERVER_KEY, this.server);
201
202
  const eggConfig = this.configService.getConfiguration('egg');
202
203
  if (!this.isClusterMode && eggConfig) {
203
- const customPort = process.env.MIDWAY_HTTP_PORT ?? eggConfig.port;
204
+ let customPort = process.env.MIDWAY_HTTP_PORT ?? eggConfig.port;
205
+ if (customPort === 0) {
206
+ customPort = await getFreePort();
207
+ }
204
208
  if (customPort) {
205
209
  new Promise(resolve => {
206
210
  const args = [customPort];
@@ -260,4 +264,19 @@ __decorate([
260
264
  exports.MidwayWebFramework = MidwayWebFramework = __decorate([
261
265
  (0, core_1.Framework)()
262
266
  ], MidwayWebFramework);
267
+ async function getFreePort() {
268
+ return new Promise((resolve, reject) => {
269
+ const server = (0, net_1.createServer)();
270
+ server.listen(0, () => {
271
+ try {
272
+ const port = server.address().port;
273
+ server.close();
274
+ resolve(port);
275
+ }
276
+ catch (err) {
277
+ reject(err);
278
+ }
279
+ });
280
+ });
281
+ }
263
282
  //# sourceMappingURL=web.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@midwayjs/web",
3
- "version": "4.0.0-beta.1",
3
+ "version": "4.0.0-beta.2",
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": "^4.0.0-beta.1",
32
+ "@midwayjs/mock": "^4.0.0-beta.2",
33
33
  "@types/koa": "2.15.0",
34
34
  "dayjs": "1.11.13",
35
35
  "egg-logger": "3.6.1",
@@ -49,7 +49,7 @@
49
49
  },
50
50
  "dependencies": {
51
51
  "@eggjs/router": "^2.0.0",
52
- "@midwayjs/core": "^4.0.0-beta.1",
52
+ "@midwayjs/core": "^4.0.0-beta.2",
53
53
  "egg": "^2.28.0",
54
54
  "egg-cluster": "^1.27.1",
55
55
  "egg-path-matching": "^2.1.0",
@@ -63,7 +63,7 @@
63
63
  "url": "https://github.com/midwayjs/midway.git"
64
64
  },
65
65
  "engines": {
66
- "node": ">=12"
66
+ "node": ">=20"
67
67
  },
68
- "gitHead": "832961ec3aff123c033197d8c00cb2bc9bad7ff8"
68
+ "gitHead": "53bfef4c5279da5f09025e4610bdbf64f94f60bd"
69
69
  }