@midwayjs/core 3.0.0-beta.7 → 3.0.0-beta.8
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/CHANGELOG.md +11 -0
- package/README.md +1 -1
- package/dist/common/middlewareManager.d.ts +62 -5
- package/dist/common/middlewareManager.js +141 -6
- package/dist/common/webGenerator.js +4 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -1
- package/dist/service/middlewareService.d.ts +1 -1
- package/dist/service/middlewareService.js +9 -18
- package/dist/util/index.d.ts +8 -0
- package/dist/util/index.js +38 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.0.0-beta.8](https://github.com/midwayjs/midway/compare/v3.0.0-beta.7...v3.0.0-beta.8) (2021-12-08)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* express routing middleware takes effect at the controller level ([#1364](https://github.com/midwayjs/midway/issues/1364)) ([b9272e0](https://github.com/midwayjs/midway/commit/b9272e0971003443304b0c53815be31a0061b4bd))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [3.0.0-beta.7](https://github.com/midwayjs/midway/compare/v3.0.0-beta.6...v3.0.0-beta.7) (2021-12-03)
|
|
7
18
|
|
|
8
19
|
|
package/README.md
CHANGED
|
@@ -1,11 +1,68 @@
|
|
|
1
1
|
import { CommonMiddleware, CommonMiddlewareUnion, IMidwayContext } from '../interface';
|
|
2
2
|
export declare class ContextMiddlewareManager<CTX extends IMidwayContext, R, N> extends Array<CommonMiddleware<CTX, R, N>> {
|
|
3
|
+
/**
|
|
4
|
+
* insert a middleware or middleware array to first
|
|
5
|
+
* @param middleware
|
|
6
|
+
*/
|
|
3
7
|
insertFirst(middleware: CommonMiddlewareUnion<CTX, R, N>): void;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
/**
|
|
9
|
+
* insert a middleware or middleware array to last
|
|
10
|
+
* @param middleware
|
|
11
|
+
*/
|
|
8
12
|
insertLast(middleware: CommonMiddlewareUnion<CTX, R, N>): void;
|
|
9
|
-
|
|
13
|
+
/**
|
|
14
|
+
* insert a middleware or middleware array to after another middleware
|
|
15
|
+
* @param middleware
|
|
16
|
+
* @param idxOrBeforeMiddleware
|
|
17
|
+
*/
|
|
18
|
+
insertBefore(middleware: CommonMiddlewareUnion<CTX, R, N>, idxOrBeforeMiddleware: CommonMiddleware<CTX, R, N> | string | number): void;
|
|
19
|
+
/**
|
|
20
|
+
* insert a middleware or middleware array to after another middleware
|
|
21
|
+
* @param middleware
|
|
22
|
+
* @param idxOrAfterMiddleware
|
|
23
|
+
*/
|
|
24
|
+
insertAfter(middleware: CommonMiddlewareUnion<CTX, R, N>, idxOrAfterMiddleware: CommonMiddleware<CTX, R, N> | string | number): void;
|
|
25
|
+
/**
|
|
26
|
+
* move a middleware after another middleware
|
|
27
|
+
* @param middlewareOrName
|
|
28
|
+
* @param afterMiddleware
|
|
29
|
+
*/
|
|
30
|
+
findAndInsertAfter(middlewareOrName: CommonMiddleware<CTX, R, N> | string, afterMiddleware: CommonMiddleware<CTX, R, N> | string | number): void;
|
|
31
|
+
/**
|
|
32
|
+
* move a middleware before another middleware
|
|
33
|
+
* @param middlewareOrName
|
|
34
|
+
* @param beforeMiddleware
|
|
35
|
+
*/
|
|
36
|
+
findAndInsertBefore(middlewareOrName: CommonMiddleware<CTX, R, N> | string, beforeMiddleware: CommonMiddleware<CTX, R, N> | string | number): void;
|
|
37
|
+
/**
|
|
38
|
+
* find middleware and move to first
|
|
39
|
+
* @param middlewareOrName
|
|
40
|
+
*/
|
|
41
|
+
findAndInsertFirst(middlewareOrName: CommonMiddleware<CTX, R, N> | string): void;
|
|
42
|
+
/**
|
|
43
|
+
* find middleware and move to last
|
|
44
|
+
* @param middlewareOrName
|
|
45
|
+
*/
|
|
46
|
+
findAndInsertLast(middlewareOrName: CommonMiddleware<CTX, R, N> | string): void;
|
|
47
|
+
/**
|
|
48
|
+
* find a middleware and return index
|
|
49
|
+
* @param middlewareOrName
|
|
50
|
+
*/
|
|
51
|
+
findItemIndex(middlewareOrName: CommonMiddleware<CTX, R, N> | string | number): number;
|
|
52
|
+
findItem(middlewareOrName: CommonMiddleware<CTX, R, N> | string | number): CommonMiddleware<CTX, R, N>;
|
|
53
|
+
/**
|
|
54
|
+
* get name from middleware
|
|
55
|
+
* @param middleware
|
|
56
|
+
*/
|
|
57
|
+
getMiddlewareName(middleware: CommonMiddleware<CTX, R, N>): string;
|
|
58
|
+
/**
|
|
59
|
+
* remove a middleware
|
|
60
|
+
* @param middlewareOrNameOrIdx
|
|
61
|
+
*/
|
|
62
|
+
remove(middlewareOrNameOrIdx: CommonMiddleware<CTX, R, N> | string | number): CommonMiddleware<CTX, R, N>;
|
|
63
|
+
/**
|
|
64
|
+
* get middleware name list
|
|
65
|
+
*/
|
|
66
|
+
getNames(): string[];
|
|
10
67
|
}
|
|
11
68
|
//# sourceMappingURL=middlewareManager.d.ts.map
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ContextMiddlewareManager = void 0;
|
|
4
4
|
class ContextMiddlewareManager extends Array {
|
|
5
|
+
/**
|
|
6
|
+
* insert a middleware or middleware array to first
|
|
7
|
+
* @param middleware
|
|
8
|
+
*/
|
|
5
9
|
insertFirst(middleware) {
|
|
6
10
|
if (Array.isArray(middleware)) {
|
|
7
11
|
this.unshift(...middleware);
|
|
@@ -10,6 +14,23 @@ class ContextMiddlewareManager extends Array {
|
|
|
10
14
|
this.unshift(middleware);
|
|
11
15
|
}
|
|
12
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* insert a middleware or middleware array to last
|
|
19
|
+
* @param middleware
|
|
20
|
+
*/
|
|
21
|
+
insertLast(middleware) {
|
|
22
|
+
if (Array.isArray(middleware)) {
|
|
23
|
+
this.push(...middleware);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.push(middleware);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* insert a middleware or middleware array to after another middleware
|
|
31
|
+
* @param middleware
|
|
32
|
+
* @param idxOrBeforeMiddleware
|
|
33
|
+
*/
|
|
13
34
|
insertBefore(middleware, idxOrBeforeMiddleware) {
|
|
14
35
|
if (typeof idxOrBeforeMiddleware !== 'number') {
|
|
15
36
|
idxOrBeforeMiddleware = this.findItemIndex(idxOrBeforeMiddleware);
|
|
@@ -21,6 +42,11 @@ class ContextMiddlewareManager extends Array {
|
|
|
21
42
|
this.splice(idxOrBeforeMiddleware, 0, middleware);
|
|
22
43
|
}
|
|
23
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* insert a middleware or middleware array to after another middleware
|
|
47
|
+
* @param middleware
|
|
48
|
+
* @param idxOrAfterMiddleware
|
|
49
|
+
*/
|
|
24
50
|
insertAfter(middleware, idxOrAfterMiddleware) {
|
|
25
51
|
if (typeof idxOrAfterMiddleware !== 'number') {
|
|
26
52
|
idxOrAfterMiddleware = this.findItemIndex(idxOrAfterMiddleware);
|
|
@@ -32,16 +58,125 @@ class ContextMiddlewareManager extends Array {
|
|
|
32
58
|
this.splice(idxOrAfterMiddleware + 1, 0, middleware);
|
|
33
59
|
}
|
|
34
60
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
61
|
+
/**
|
|
62
|
+
* move a middleware after another middleware
|
|
63
|
+
* @param middlewareOrName
|
|
64
|
+
* @param afterMiddleware
|
|
65
|
+
*/
|
|
66
|
+
findAndInsertAfter(middlewareOrName, afterMiddleware) {
|
|
67
|
+
middlewareOrName = this.findItem(middlewareOrName);
|
|
68
|
+
afterMiddleware = this.findItem(afterMiddleware);
|
|
69
|
+
if (!middlewareOrName ||
|
|
70
|
+
!afterMiddleware ||
|
|
71
|
+
middlewareOrName === afterMiddleware) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (afterMiddleware) {
|
|
75
|
+
const mw = this.remove(middlewareOrName);
|
|
76
|
+
if (mw) {
|
|
77
|
+
this.insertAfter(mw, afterMiddleware);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* move a middleware before another middleware
|
|
83
|
+
* @param middlewareOrName
|
|
84
|
+
* @param beforeMiddleware
|
|
85
|
+
*/
|
|
86
|
+
findAndInsertBefore(middlewareOrName, beforeMiddleware) {
|
|
87
|
+
middlewareOrName = this.findItem(middlewareOrName);
|
|
88
|
+
beforeMiddleware = this.findItem(beforeMiddleware);
|
|
89
|
+
if (!middlewareOrName ||
|
|
90
|
+
!beforeMiddleware ||
|
|
91
|
+
middlewareOrName === beforeMiddleware) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (beforeMiddleware) {
|
|
95
|
+
const mw = this.remove(middlewareOrName);
|
|
96
|
+
if (mw) {
|
|
97
|
+
this.insertBefore(mw, beforeMiddleware);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* find middleware and move to first
|
|
103
|
+
* @param middlewareOrName
|
|
104
|
+
*/
|
|
105
|
+
findAndInsertFirst(middlewareOrName) {
|
|
106
|
+
const mw = this.remove(middlewareOrName);
|
|
107
|
+
if (mw) {
|
|
108
|
+
this.insertFirst(mw);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* find middleware and move to last
|
|
113
|
+
* @param middlewareOrName
|
|
114
|
+
*/
|
|
115
|
+
findAndInsertLast(middlewareOrName) {
|
|
116
|
+
const mw = this.remove(middlewareOrName);
|
|
117
|
+
if (mw) {
|
|
118
|
+
this.insertLast(mw);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* find a middleware and return index
|
|
123
|
+
* @param middlewareOrName
|
|
124
|
+
*/
|
|
125
|
+
findItemIndex(middlewareOrName) {
|
|
126
|
+
if (typeof middlewareOrName === 'number') {
|
|
127
|
+
return middlewareOrName;
|
|
128
|
+
}
|
|
129
|
+
else if (typeof middlewareOrName === 'string') {
|
|
130
|
+
return this.findIndex(item => this.getMiddlewareName(item) === middlewareOrName);
|
|
38
131
|
}
|
|
39
132
|
else {
|
|
40
|
-
this.
|
|
133
|
+
return this.findIndex(item => item === middlewareOrName);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
findItem(middlewareOrName) {
|
|
137
|
+
if (typeof middlewareOrName === 'number') {
|
|
138
|
+
if (middlewareOrName >= 0 && middlewareOrName <= this.length - 1) {
|
|
139
|
+
return this[middlewareOrName];
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else if (typeof middlewareOrName === 'string') {
|
|
143
|
+
return this.find(item => this.getMiddlewareName(item) === middlewareOrName);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
return middlewareOrName;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* get name from middleware
|
|
151
|
+
* @param middleware
|
|
152
|
+
*/
|
|
153
|
+
getMiddlewareName(middleware) {
|
|
154
|
+
var _a;
|
|
155
|
+
return (_a = middleware._name) !== null && _a !== void 0 ? _a : middleware.name;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* remove a middleware
|
|
159
|
+
* @param middlewareOrNameOrIdx
|
|
160
|
+
*/
|
|
161
|
+
remove(middlewareOrNameOrIdx) {
|
|
162
|
+
if (typeof middlewareOrNameOrIdx === 'number' &&
|
|
163
|
+
middlewareOrNameOrIdx !== -1) {
|
|
164
|
+
return this.splice(middlewareOrNameOrIdx, 1)[0];
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
const idx = this.findItemIndex(middlewareOrNameOrIdx);
|
|
168
|
+
if (idx !== -1) {
|
|
169
|
+
return this.splice(idx, 1)[0];
|
|
170
|
+
}
|
|
41
171
|
}
|
|
42
172
|
}
|
|
43
|
-
|
|
44
|
-
|
|
173
|
+
/**
|
|
174
|
+
* get middleware name list
|
|
175
|
+
*/
|
|
176
|
+
getNames() {
|
|
177
|
+
return this.map(item => {
|
|
178
|
+
return this.getMiddlewareName(item);
|
|
179
|
+
});
|
|
45
180
|
}
|
|
46
181
|
}
|
|
47
182
|
exports.ContextMiddlewareManager = ContextMiddlewareManager;
|
|
@@ -9,6 +9,8 @@ exports.WebControllerGenerator = void 0;
|
|
|
9
9
|
*/
|
|
10
10
|
const decorator_1 = require("@midwayjs/decorator");
|
|
11
11
|
const index_1 = require("../index");
|
|
12
|
+
const util = require("util");
|
|
13
|
+
const debug = util.debuglog('midway:debug');
|
|
12
14
|
class WebControllerGenerator {
|
|
13
15
|
constructor(applicationContext, frameworkType, logger) {
|
|
14
16
|
this.applicationContext = applicationContext;
|
|
@@ -67,6 +69,7 @@ class WebControllerGenerator {
|
|
|
67
69
|
// bind controller first
|
|
68
70
|
this.applicationContext.bindClass(routerInfo.routerModule);
|
|
69
71
|
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug(`Load Controller "${routerInfo.controllerId}", prefix=${routerInfo.prefix}`);
|
|
72
|
+
debug(`[core:webGenerator]: Load Controller "${routerInfo.controllerId}", prefix=${routerInfo.prefix}`);
|
|
70
73
|
// new router
|
|
71
74
|
const newRouter = this.createRouter({
|
|
72
75
|
prefix: routerInfo.prefix,
|
|
@@ -97,6 +100,7 @@ class WebControllerGenerator {
|
|
|
97
100
|
this.generateController(routeInfo),
|
|
98
101
|
];
|
|
99
102
|
(_b = this.logger) === null || _b === void 0 ? void 0 : _b.debug(`Load Router "${routeInfo.requestMethod.toUpperCase()} ${routeInfo.url}"`);
|
|
103
|
+
debug(`[core:webGenerator]: Load Router "${routeInfo.requestMethod.toUpperCase()} ${routeInfo.url}"`);
|
|
100
104
|
// apply controller from request context
|
|
101
105
|
// eslint-disable-next-line prefer-spread
|
|
102
106
|
newRouter[routeInfo.requestMethod].apply(newRouter, routerArgs);
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { MidwayRequestContainer } from './context/requestContainer';
|
|
|
4
4
|
export { BaseFramework } from './baseFramework';
|
|
5
5
|
export * from './context/providerWrapper';
|
|
6
6
|
export * from './common/constants';
|
|
7
|
-
export { safelyGet, safeRequire, delegateTargetPrototypeMethod, delegateTargetMethod, delegateTargetProperties, deprecatedOutput, transformRequestObjectByType, } from './util/';
|
|
7
|
+
export { safelyGet, safeRequire, delegateTargetPrototypeMethod, delegateTargetMethod, delegateTargetProperties, deprecatedOutput, transformRequestObjectByType, pathMatching, wrapMiddleware, } from './util/';
|
|
8
8
|
export * from './util/pathFileUtil';
|
|
9
9
|
export * from './util/webRouterParam';
|
|
10
10
|
export * from './common/webRouterCollector';
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
10
10
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.MidwayFrameworkType = exports.MidwayDecoratorService = exports.MidwayMiddlewareService = exports.MidwayLifeCycleService = exports.MidwayAspectService = exports.MidwayFrameworkService = exports.MidwayLoggerService = exports.MidwayInformationService = exports.MidwayEnvironmentService = exports.MidwayConfigService = exports.createConfiguration = exports.transformRequestObjectByType = exports.deprecatedOutput = exports.delegateTargetProperties = exports.delegateTargetMethod = exports.delegateTargetPrototypeMethod = exports.safeRequire = exports.safelyGet = exports.BaseFramework = exports.MidwayRequestContainer = void 0;
|
|
13
|
+
exports.MidwayFrameworkType = exports.MidwayDecoratorService = exports.MidwayMiddlewareService = exports.MidwayLifeCycleService = exports.MidwayAspectService = exports.MidwayFrameworkService = exports.MidwayLoggerService = exports.MidwayInformationService = exports.MidwayEnvironmentService = exports.MidwayConfigService = exports.createConfiguration = exports.wrapMiddleware = exports.pathMatching = exports.transformRequestObjectByType = exports.deprecatedOutput = exports.delegateTargetProperties = exports.delegateTargetMethod = exports.delegateTargetPrototypeMethod = exports.safeRequire = exports.safelyGet = exports.BaseFramework = exports.MidwayRequestContainer = void 0;
|
|
14
14
|
__exportStar(require("./interface"), exports);
|
|
15
15
|
__exportStar(require("./context/container"), exports);
|
|
16
16
|
var requestContainer_1 = require("./context/requestContainer");
|
|
@@ -27,6 +27,8 @@ Object.defineProperty(exports, "delegateTargetMethod", { enumerable: true, get:
|
|
|
27
27
|
Object.defineProperty(exports, "delegateTargetProperties", { enumerable: true, get: function () { return util_1.delegateTargetProperties; } });
|
|
28
28
|
Object.defineProperty(exports, "deprecatedOutput", { enumerable: true, get: function () { return util_1.deprecatedOutput; } });
|
|
29
29
|
Object.defineProperty(exports, "transformRequestObjectByType", { enumerable: true, get: function () { return util_1.transformRequestObjectByType; } });
|
|
30
|
+
Object.defineProperty(exports, "pathMatching", { enumerable: true, get: function () { return util_1.pathMatching; } });
|
|
31
|
+
Object.defineProperty(exports, "wrapMiddleware", { enumerable: true, get: function () { return util_1.wrapMiddleware; } });
|
|
30
32
|
__exportStar(require("./util/pathFileUtil"), exports);
|
|
31
33
|
__exportStar(require("./util/webRouterParam"), exports);
|
|
32
34
|
__exportStar(require("./common/webRouterCollector"), exports);
|
|
@@ -6,6 +6,6 @@ export declare class MidwayMiddlewareService<T, R, N = unknown> {
|
|
|
6
6
|
(context: any, next?: any): Promise<any>;
|
|
7
7
|
_name: string;
|
|
8
8
|
}>;
|
|
9
|
+
getMiddlewareName(mw: any): any;
|
|
9
10
|
}
|
|
10
|
-
export declare function pathMatching(options: any): (ctx?: any) => any;
|
|
11
11
|
//# sourceMappingURL=middlewareService.d.ts.map
|
|
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.MidwayMiddlewareService = void 0;
|
|
13
13
|
const decorator_1 = require("@midwayjs/decorator");
|
|
14
14
|
const error_1 = require("../error");
|
|
15
15
|
const util_1 = require("../util");
|
|
@@ -32,14 +32,16 @@ let MidwayMiddlewareService = class MidwayMiddlewareService {
|
|
|
32
32
|
if (classMiddleware) {
|
|
33
33
|
fn = classMiddleware.resolve();
|
|
34
34
|
if (!classMiddleware.match && !classMiddleware.ignore) {
|
|
35
|
-
fn.
|
|
35
|
+
if (!fn.name) {
|
|
36
|
+
fn._name = classMiddleware.constructor.name;
|
|
37
|
+
}
|
|
36
38
|
// just got fn
|
|
37
39
|
newMiddlewareArr.push(fn);
|
|
38
40
|
}
|
|
39
41
|
else {
|
|
40
42
|
// wrap ignore and match
|
|
41
43
|
const mw = fn;
|
|
42
|
-
const match = pathMatching({
|
|
44
|
+
const match = (0, util_1.pathMatching)({
|
|
43
45
|
match: classMiddleware.match,
|
|
44
46
|
ignore: classMiddleware.ignore,
|
|
45
47
|
});
|
|
@@ -111,6 +113,10 @@ let MidwayMiddlewareService = class MidwayMiddlewareService {
|
|
|
111
113
|
}
|
|
112
114
|
return composeFn;
|
|
113
115
|
}
|
|
116
|
+
getMiddlewareName(mw) {
|
|
117
|
+
var _a;
|
|
118
|
+
return (_a = mw.name) !== null && _a !== void 0 ? _a : mw._name;
|
|
119
|
+
}
|
|
114
120
|
};
|
|
115
121
|
MidwayMiddlewareService = __decorate([
|
|
116
122
|
(0, decorator_1.Provide)(),
|
|
@@ -118,19 +124,4 @@ MidwayMiddlewareService = __decorate([
|
|
|
118
124
|
__metadata("design:paramtypes", [Object])
|
|
119
125
|
], MidwayMiddlewareService);
|
|
120
126
|
exports.MidwayMiddlewareService = MidwayMiddlewareService;
|
|
121
|
-
function pathMatching(options) {
|
|
122
|
-
options = options || {};
|
|
123
|
-
if (options.match && options.ignore)
|
|
124
|
-
throw new error_1.MidwayCommonError('options.match and options.ignore can not both present');
|
|
125
|
-
if (!options.match && !options.ignore)
|
|
126
|
-
return () => true;
|
|
127
|
-
const matchFn = options.match
|
|
128
|
-
? (0, util_1.toPathMatch)(options.match)
|
|
129
|
-
: (0, util_1.toPathMatch)(options.ignore);
|
|
130
|
-
return function pathMatch(ctx) {
|
|
131
|
-
const matched = matchFn(ctx);
|
|
132
|
-
return options.match ? matched : !matched;
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
exports.pathMatching = pathMatching;
|
|
136
127
|
//# sourceMappingURL=middlewareService.js.map
|
package/dist/util/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FunctionMiddleware } from '../interface';
|
|
1
2
|
/**
|
|
2
3
|
* @since 2.0.0
|
|
3
4
|
* @param env
|
|
@@ -73,5 +74,12 @@ export declare const deprecatedOutput: (message: string) => void;
|
|
|
73
74
|
*/
|
|
74
75
|
export declare const transformRequestObjectByType: (originValue: any, targetType?: any) => any;
|
|
75
76
|
export declare function toPathMatch(pattern: any): any;
|
|
77
|
+
export declare function pathMatching(options: any): (ctx?: any) => any;
|
|
78
|
+
/**
|
|
79
|
+
* wrap function middleware with match and ignore
|
|
80
|
+
* @param mw
|
|
81
|
+
* @param options
|
|
82
|
+
*/
|
|
83
|
+
export declare function wrapMiddleware(mw: FunctionMiddleware<any, any>, options: any): (context: any, next: any, options?: any) => any;
|
|
76
84
|
export declare function isIncludeProperty(obj: any, prop: string): boolean;
|
|
77
85
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/util/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isIncludeProperty = exports.toPathMatch = exports.transformRequestObjectByType = exports.deprecatedOutput = exports.getCurrentDateString = exports.delegateTargetProperties = exports.delegateTargetMethod = exports.delegateTargetPrototypeMethod = exports.joinURLPath = exports.getUserHome = exports.parsePrefix = exports.safelyGet = exports.safeRequire = exports.getCurrentEnvironment = exports.isDevelopmentEnvironment = void 0;
|
|
3
|
+
exports.isIncludeProperty = exports.wrapMiddleware = exports.pathMatching = exports.toPathMatch = exports.transformRequestObjectByType = exports.deprecatedOutput = exports.getCurrentDateString = exports.delegateTargetProperties = exports.delegateTargetMethod = exports.delegateTargetPrototypeMethod = exports.joinURLPath = exports.getUserHome = exports.parsePrefix = exports.safelyGet = exports.safeRequire = exports.getCurrentEnvironment = exports.isDevelopmentEnvironment = void 0;
|
|
4
4
|
const path_1 = require("path");
|
|
5
5
|
const fs_1 = require("fs");
|
|
6
6
|
const util_1 = require("util");
|
|
@@ -237,6 +237,43 @@ function toPathMatch(pattern) {
|
|
|
237
237
|
throw new error_1.MidwayCommonError('match/ignore pattern must be RegExp, Array or String, but got ' + pattern);
|
|
238
238
|
}
|
|
239
239
|
exports.toPathMatch = toPathMatch;
|
|
240
|
+
function pathMatching(options) {
|
|
241
|
+
options = options || {};
|
|
242
|
+
if (options.match && options.ignore)
|
|
243
|
+
throw new error_1.MidwayCommonError('options.match and options.ignore can not both present');
|
|
244
|
+
if (!options.match && !options.ignore)
|
|
245
|
+
return () => true;
|
|
246
|
+
const matchFn = options.match
|
|
247
|
+
? toPathMatch(options.match)
|
|
248
|
+
: toPathMatch(options.ignore);
|
|
249
|
+
return function pathMatch(ctx) {
|
|
250
|
+
const matched = matchFn(ctx);
|
|
251
|
+
return options.match ? matched : !matched;
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
exports.pathMatching = pathMatching;
|
|
255
|
+
/**
|
|
256
|
+
* wrap function middleware with match and ignore
|
|
257
|
+
* @param mw
|
|
258
|
+
* @param options
|
|
259
|
+
*/
|
|
260
|
+
function wrapMiddleware(mw, options) {
|
|
261
|
+
// support options.enable
|
|
262
|
+
if (options.enable === false)
|
|
263
|
+
return null;
|
|
264
|
+
// support options.match and options.ignore
|
|
265
|
+
if (!options.match && !options.ignore)
|
|
266
|
+
return mw;
|
|
267
|
+
const match = pathMatching(options);
|
|
268
|
+
const fn = (ctx, next) => {
|
|
269
|
+
if (!match(ctx))
|
|
270
|
+
return next();
|
|
271
|
+
return mw(ctx, next);
|
|
272
|
+
};
|
|
273
|
+
fn._name = mw._name + 'middlewareWrapper';
|
|
274
|
+
return fn;
|
|
275
|
+
}
|
|
276
|
+
exports.wrapMiddleware = wrapMiddleware;
|
|
240
277
|
function isOwnPropertyWritable(obj, prop) {
|
|
241
278
|
if (obj == null)
|
|
242
279
|
return false;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@midwayjs/core",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.8",
|
|
4
4
|
"description": "midway core",
|
|
5
5
|
"main": "dist/index",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
],
|
|
22
22
|
"license": "MIT",
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@midwayjs/decorator": "^3.0.0-beta.
|
|
24
|
+
"@midwayjs/decorator": "^3.0.0-beta.8",
|
|
25
25
|
"koa": "^2.13.4",
|
|
26
26
|
"midway-test-component": "*",
|
|
27
27
|
"mm": "3",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@midwayjs/glob": "^1.0.2",
|
|
35
|
-
"@midwayjs/logger": "^3.0.0-beta.
|
|
35
|
+
"@midwayjs/logger": "^3.0.0-beta.8",
|
|
36
36
|
"class-transformer": "^0.5.1",
|
|
37
37
|
"extend2": "^1.0.0",
|
|
38
38
|
"picomatch": "^2.2.2",
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"engines": {
|
|
47
47
|
"node": ">=12"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "bfafbdf8798f48d4daac5dd88ad53c6b2f33c110"
|
|
50
50
|
}
|