@midwayjs/koa 3.20.11 → 3.20.13
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/dist/framework.js +19 -10
- package/dist/interface.d.ts +13 -0
- package/dist/utils.d.ts +1 -0
- package/dist/utils.js +18 -1
- package/package.json +3 -2
package/dist/framework.js
CHANGED
|
@@ -14,6 +14,7 @@ const koa = require("koa");
|
|
|
14
14
|
const onerror_1 = require("./onerror");
|
|
15
15
|
const qs = require("qs");
|
|
16
16
|
const querystring = require("querystring");
|
|
17
|
+
const utils_1 = require("./utils");
|
|
17
18
|
const COOKIES = Symbol('context#cookies');
|
|
18
19
|
class KoaControllerGenerator extends core_1.WebControllerGenerator {
|
|
19
20
|
constructor(app, webRouterService) {
|
|
@@ -182,7 +183,6 @@ let MidwayKoaFramework = class MidwayKoaFramework extends core_1.BaseFramework {
|
|
|
182
183
|
return mwIns.resolve();
|
|
183
184
|
}
|
|
184
185
|
async run() {
|
|
185
|
-
var _a;
|
|
186
186
|
// load controller
|
|
187
187
|
await this.loadMidwayController();
|
|
188
188
|
// restore use method
|
|
@@ -218,19 +218,27 @@ let MidwayKoaFramework = class MidwayKoaFramework extends core_1.BaseFramework {
|
|
|
218
218
|
if (core_1.Types.isNumber(this.configurationOptions.serverTimeout)) {
|
|
219
219
|
this.server.setTimeout(this.configurationOptions.serverTimeout);
|
|
220
220
|
}
|
|
221
|
+
this.configurationOptions.listenOptions = {
|
|
222
|
+
port: this.configurationOptions.port,
|
|
223
|
+
host: this.configurationOptions.hostname,
|
|
224
|
+
...this.configurationOptions.listenOptions,
|
|
225
|
+
};
|
|
221
226
|
// set port and listen server
|
|
222
|
-
|
|
223
|
-
|
|
227
|
+
let customPort = process.env.MIDWAY_HTTP_PORT ||
|
|
228
|
+
this.configurationOptions.listenOptions.port;
|
|
229
|
+
if (customPort === 0 || customPort === '0') {
|
|
230
|
+
customPort = await (0, utils_1.getFreePort)();
|
|
231
|
+
this.configurationOptions.listenOptions.port = customPort;
|
|
232
|
+
this.logger.info(`Midway koa is listening on port ${customPort} (auto assigned)`);
|
|
233
|
+
}
|
|
234
|
+
if (this.configurationOptions.listenOptions.port) {
|
|
224
235
|
new Promise(resolve => {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
args.push(this.configurationOptions.hostname);
|
|
228
|
-
}
|
|
229
|
-
args.push(() => {
|
|
236
|
+
// 使用 ListenOptions 对象启动服务器
|
|
237
|
+
this.server.listen(this.configurationOptions.listenOptions, () => {
|
|
230
238
|
resolve();
|
|
231
239
|
});
|
|
232
|
-
|
|
233
|
-
process.env.MIDWAY_HTTP_PORT = String(
|
|
240
|
+
// 设置环境变量
|
|
241
|
+
process.env.MIDWAY_HTTP_PORT = String(this.configurationOptions.listenOptions.port);
|
|
234
242
|
});
|
|
235
243
|
}
|
|
236
244
|
}
|
|
@@ -238,6 +246,7 @@ let MidwayKoaFramework = class MidwayKoaFramework extends core_1.BaseFramework {
|
|
|
238
246
|
if (this.server) {
|
|
239
247
|
new Promise(resolve => {
|
|
240
248
|
this.server.close(resolve);
|
|
249
|
+
process.env.MIDWAY_HTTP_PORT = '';
|
|
241
250
|
});
|
|
242
251
|
}
|
|
243
252
|
}
|
package/dist/interface.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
3
4
|
import { IConfigurationOptions, IMidwayApplication, IMidwayContext } from '@midwayjs/core';
|
|
4
5
|
import * as koa from 'koa';
|
|
5
6
|
import { Context as KoaContext, DefaultState, Middleware, Next } from 'koa';
|
|
6
7
|
import { RouterParamValue } from '@midwayjs/core';
|
|
7
8
|
import * as qs from 'qs';
|
|
9
|
+
import { ListenOptions } from 'net';
|
|
8
10
|
export interface State extends DefaultState {
|
|
9
11
|
}
|
|
10
12
|
export type IMidwayKoaContext = IMidwayContext<KoaContext>;
|
|
@@ -15,6 +17,10 @@ export type IMidwayKoaApplication = IMidwayApplication<IMidwayKoaContext, koa<St
|
|
|
15
17
|
* @param middlewareId
|
|
16
18
|
*/
|
|
17
19
|
generateMiddleware(middlewareId: any): Promise<Middleware<State, IMidwayKoaContext>>;
|
|
20
|
+
/**
|
|
21
|
+
* Get the port that the application is listening on
|
|
22
|
+
*/
|
|
23
|
+
getPort(): string;
|
|
18
24
|
}>;
|
|
19
25
|
/**
|
|
20
26
|
* @deprecated use NextFunction definition
|
|
@@ -86,7 +92,14 @@ export interface IMidwayKoaConfigurationOptions extends IConfigurationOptions {
|
|
|
86
92
|
* qs options
|
|
87
93
|
*/
|
|
88
94
|
queryParseOptions?: qs.IParseOptions;
|
|
95
|
+
/**
|
|
96
|
+
* https/https/http2 server options
|
|
97
|
+
*/
|
|
89
98
|
serverOptions?: Record<string, any>;
|
|
99
|
+
/**
|
|
100
|
+
* listen options
|
|
101
|
+
*/
|
|
102
|
+
listenOptions?: ListenOptions;
|
|
90
103
|
}
|
|
91
104
|
export type MiddlewareParamArray = Array<Middleware<DefaultState, IMidwayKoaContext>>;
|
|
92
105
|
export interface IWebMiddleware {
|
package/dist/utils.d.ts
CHANGED
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.escapeHtml = exports.tpl = exports.isProduction = exports.sendToWormhole = exports.accepts = exports.detectStatus = void 0;
|
|
3
|
+
exports.getFreePort = exports.escapeHtml = exports.tpl = exports.isProduction = exports.sendToWormhole = exports.accepts = exports.detectStatus = void 0;
|
|
4
|
+
const net_1 = require("net");
|
|
4
5
|
function detectStatus(err) {
|
|
5
6
|
// detect status
|
|
6
7
|
let status = err.status || 500;
|
|
@@ -153,4 +154,20 @@ function escapeHtml(string) {
|
|
|
153
154
|
return lastIndex !== index ? html + str.substring(lastIndex, index) : html;
|
|
154
155
|
}
|
|
155
156
|
exports.escapeHtml = escapeHtml;
|
|
157
|
+
async function getFreePort() {
|
|
158
|
+
return new Promise((resolve, reject) => {
|
|
159
|
+
const server = (0, net_1.createServer)();
|
|
160
|
+
server.listen(0, () => {
|
|
161
|
+
try {
|
|
162
|
+
const port = server.address().port;
|
|
163
|
+
server.close();
|
|
164
|
+
resolve(port);
|
|
165
|
+
}
|
|
166
|
+
catch (err) {
|
|
167
|
+
reject(err);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
exports.getFreePort = getFreePort;
|
|
156
173
|
//# sourceMappingURL=utils.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@midwayjs/koa",
|
|
3
|
-
"version": "3.20.
|
|
3
|
+
"version": "3.20.13",
|
|
4
4
|
"description": "Midway Web Framework for KOA",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "index.d.ts",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@midwayjs/mock": "^3.20.11",
|
|
28
28
|
"@types/koa-router": "7.4.8",
|
|
29
|
+
"axios": "1.8.4",
|
|
29
30
|
"fs-extra": "11.3.0"
|
|
30
31
|
},
|
|
31
32
|
"dependencies": {
|
|
@@ -47,5 +48,5 @@
|
|
|
47
48
|
"engines": {
|
|
48
49
|
"node": ">=12"
|
|
49
50
|
},
|
|
50
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "f76931e4b5bd99c498d27a84c00f2114db81c8a3"
|
|
51
52
|
}
|