@loopback/express 2.0.1 → 2.1.0
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 +16 -0
- package/dist/express.server.js +1 -0
- package/dist/express.server.js.map +1 -1
- package/dist/middleware-registry.d.ts +5 -1
- package/dist/middleware.js +4 -3
- package/dist/middleware.js.map +1 -1
- package/dist/mixins/middleware.mixin.d.ts +5 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/package.json +12 -12
- package/src/express.server.ts +8 -1
- package/src/middleware.ts +5 -3
- package/src/types.ts +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
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
|
+
# [2.1.0](https://github.com/strongloop/loopback-next/compare/@loopback/express@2.0.1...@loopback/express@2.1.0) (2020-10-07)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **express:** make sure middleware group name from `[@bind](https://github.com/bind)` is preserved ([1a170e5](https://github.com/strongloop/loopback-next/commit/1a170e59ed8d549fe37d33a4ba9e8bdf2b74ac0d))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* **context:** introduce new binding scopes ([9916cfd](https://github.com/strongloop/loopback-next/commit/9916cfd4449a870f7a3378e2e674957aed7c1626))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## [2.0.1](https://github.com/strongloop/loopback-next/compare/@loopback/express@2.0.0...@loopback/express@2.0.1) (2020-09-17)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @loopback/express
|
package/dist/express.server.js
CHANGED
|
@@ -22,6 +22,7 @@ let ExpressServer = class ExpressServer extends middleware_registry_1.BaseMiddle
|
|
|
22
22
|
var _a;
|
|
23
23
|
super(parent);
|
|
24
24
|
this.config = config;
|
|
25
|
+
this.scope = core_1.BindingScope.SERVER;
|
|
25
26
|
let basePath = (_a = config === null || config === void 0 ? void 0 : config.basePath) !== null && _a !== void 0 ? _a : '';
|
|
26
27
|
// Trim leading and trailing `/`
|
|
27
28
|
basePath = basePath.replace(/(^\/)|(\/$)/, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.server.js","sourceRoot":"","sources":["../src/express.server.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,iCAAiC;AACjC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,
|
|
1
|
+
{"version":3,"file":"express.server.js","sourceRoot":"","sources":["../src/express.server.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,iCAAiC;AACjC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAMwB;AACxB,uDAA4E;AAC5E,0DAAiC;AACjC,8DAA8B;AAC9B,6CAAiD;AACjD,+DAA6D;AAC7D,mCAAuE;AAEvE,MAAM,KAAK,GAAG,eAAY,CAAC,qBAAqB,CAAC,CAAC;AAgBlD;;GAEG;AACH,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,4CAAsB;IAcvD,YAEqB,MAA4B,EAE/C,MAAgB;;QAEhB,KAAK,CAAC,MAAM,CAAC,CAAC;QAJK,WAAM,GAAN,MAAM,CAAsB;QAK/C,IAAI,CAAC,KAAK,GAAG,mBAAY,CAAC,MAAM,CAAC;QACjC,IAAI,QAAQ,SAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,mCAAI,EAAE,CAAC;QACtC,gCAAgC;QAChC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAC/C,IAAI,QAAQ;YAAE,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,CAAC,UAAU,GAAG,iBAAO,EAAE,CAAC;QAC5B,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE;YACpB,KAAK,MAAM,CAAC,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE;gBAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;aAC7C;SACF;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAU,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAE1D,4DAA4D;QAC5D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,gCAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACH,IAAI,GAAG;QACL,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACjC,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,IAAI,OAAO;;QACT,aAAO,IAAI,CAAC,UAAU,0CAAE,GAAG,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC9B,KAAK,CAAC,+BAA+B,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,OAAgB;QACnC,8DAA8D;QAC9D,OAAQ,OAAe,CAAC,0BAAkB,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AAtFY,aAAa;IAerB,mBAAA,aAAM,CAAC,mBAAY,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAA;IAE/D,mBAAA,aAAM,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAA;qDACjC,cAAO;GAlBP,aAAa,CAsFzB;AAtFY,sCAAa"}
|
|
@@ -62,6 +62,7 @@ declare const BaseMiddlewareRegistry_base: {
|
|
|
62
62
|
middleware(middleware: Middleware | Constructor<Provider<Middleware>>, options?: MiddlewareBindingOptions): Binding<Middleware>;
|
|
63
63
|
readonly name: string;
|
|
64
64
|
readonly subscriptionManager: loopbackContext.ContextSubscriptionManager;
|
|
65
|
+
scope: loopbackContext.BindingScope;
|
|
65
66
|
readonly parent: Context | undefined;
|
|
66
67
|
emitEvent: <T extends loopbackContext.ContextEvent>(type: string, event: T) => void;
|
|
67
68
|
emitError: (err: unknown) => void;
|
|
@@ -79,7 +80,10 @@ declare const BaseMiddlewareRegistry_base: {
|
|
|
79
80
|
createView: <T_1 = unknown>(filter: loopbackContext.BindingFilter, comparator?: loopbackContext.BindingComparator | undefined) => loopbackContext.ContextView<T_1>;
|
|
80
81
|
contains: (key: BindingAddress<unknown>) => boolean;
|
|
81
82
|
isBound: (key: BindingAddress<unknown>) => boolean;
|
|
82
|
-
getOwnerContext: (
|
|
83
|
+
getOwnerContext: (keyOrBinding: string | loopbackContext.BindingKey<unknown> | Readonly<Binding<unknown>>) => Context | undefined;
|
|
84
|
+
getScopedContext: (scope: loopbackContext.BindingScope.APPLICATION | loopbackContext.BindingScope.SERVER | loopbackContext.BindingScope.REQUEST) => Context | undefined;
|
|
85
|
+
getResolutionContext: (binding: Readonly<Binding<unknown>>) => Context | undefined;
|
|
86
|
+
isVisibleTo: (ctx: Context) => boolean;
|
|
83
87
|
find: <ValueType_1 = any>(pattern?: string | RegExp | loopbackContext.BindingFilter | undefined) => Readonly<Binding<ValueType_1>>[];
|
|
84
88
|
findByTag: <ValueType_2 = any>(tagFilter: string | RegExp | Record<string, any>) => Readonly<Binding<ValueType_2>>[];
|
|
85
89
|
get: {
|
package/dist/middleware.js
CHANGED
|
@@ -82,9 +82,10 @@ exports.registerExpressMiddleware = registerExpressMiddleware;
|
|
|
82
82
|
function asMiddleware(options = {}) {
|
|
83
83
|
return function middlewareBindingTemplate(binding) {
|
|
84
84
|
var _a, _b;
|
|
85
|
-
binding
|
|
86
|
-
|
|
87
|
-
.tag({ group: (_b = options.group) !== null && _b !== void 0 ? _b : keys_1.DEFAULT_MIDDLEWARE_GROUP });
|
|
85
|
+
binding.apply(core_1.extensionFor((_a = options.chain) !== null && _a !== void 0 ? _a : types_1.DEFAULT_MIDDLEWARE_CHAIN));
|
|
86
|
+
if (!binding.tagMap.group) {
|
|
87
|
+
binding.tag({ group: (_b = options.group) !== null && _b !== void 0 ? _b : keys_1.DEFAULT_MIDDLEWARE_GROUP });
|
|
88
|
+
}
|
|
88
89
|
const groupsBefore = options.upstreamGroups;
|
|
89
90
|
if (groupsBefore != null) {
|
|
90
91
|
binding.tag({
|
package/dist/middleware.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,iCAAiC;AACjC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAiBwB;AACxB,0DAAiC;AACjC,iDAAgD;AAChD,iCAAsE;AACtE,qEAIkC;AAClC,mCAUiB;AAEjB,MAAM,KAAK,GAAG,eAAY,CAAC,qBAAqB,CAAC,CAAC;AAElD;;;;;;;;;;;;GAYG;AACH,SAAgB,YAAY,CAC1B,YAAmC,EACnC,GAAG,kBAA2C;IAE9C,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,sCAAa,CAAC,YAAY,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,GAAG,kBAAkB,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAC5C,sCAAa,CAAoB,OAAO,CAAC,CAC1C,CAAC;IACF,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE;QAC7B,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;SAC/C;QACD,MAAM,eAAe,GAAG,IAAI,uBAAe,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAC3E,OAAO,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAhBD,oCAgBC;AAED;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAC9B,iBAAgD,EAChD,gBAAsB;IAEtB,OAAO,0CAAiB,CACtB,iBAAiB,EACjB,gBAAgB,CACjB,CAAC;AACJ,CAAC;AARD,4CAQC;AAED;;;;;;;;;GASG;AACH,SAAgB,yBAAyB,CACvC,GAAY,EACZ,iBAAgD,EAChD,gBAAsB,EACtB,UAAoC,EAAE;;IAEtC,OAAO,GAAG,EAAC,mBAAmB,EAAE,IAAI,EAAE,GAAG,OAAO,EAAC,CAAC;IAClD,OAAO,CAAC,KAAK,SAAG,OAAO,CAAC,KAAK,mCAAI,gCAAwB,CAAC;IAC1D,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;QAChC,MAAM,UAAU,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QACzE,OAAO,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;KACrD;IAED,MAAM,aAAa,GAAG,kDAAyB,CAC7C,iBAAiB,EACjB,gBAAgB,EAChB,OAAO,CACR,CAAC;IACF,OAAO,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAnBD,8DAmBC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAC1B,UAAoC,EAAE;IAEtC,OAAO,SAAS,yBAAyB,CAAC,OAAO;;QAC/C,OAAO
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,7 @@ export declare function MiddlewareMixin<T extends MixinTarget<Context>>(superCla
|
|
|
71
71
|
middleware(middleware: Middleware | Constructor<Provider<Middleware>>, options?: MiddlewareBindingOptions): Binding<Middleware>;
|
|
72
72
|
readonly name: string;
|
|
73
73
|
readonly subscriptionManager: loopbackContext.ContextSubscriptionManager;
|
|
74
|
+
scope: loopbackContext.BindingScope;
|
|
74
75
|
readonly parent: Context | undefined;
|
|
75
76
|
emitEvent: <T_1 extends loopbackContext.ContextEvent>(type: string, event: T_1) => void;
|
|
76
77
|
emitError: (err: unknown) => void;
|
|
@@ -88,7 +89,10 @@ export declare function MiddlewareMixin<T extends MixinTarget<Context>>(superCla
|
|
|
88
89
|
createView: <T_2 = unknown>(filter: loopbackContext.BindingFilter, comparator?: loopbackContext.BindingComparator | undefined) => loopbackContext.ContextView<T_2>;
|
|
89
90
|
contains: (key: BindingAddress<unknown>) => boolean;
|
|
90
91
|
isBound: (key: BindingAddress<unknown>) => boolean;
|
|
91
|
-
getOwnerContext: (
|
|
92
|
+
getOwnerContext: (keyOrBinding: string | loopbackContext.BindingKey<unknown> | Readonly<Binding<unknown>>) => Context | undefined;
|
|
93
|
+
getScopedContext: (scope: loopbackContext.BindingScope.APPLICATION | loopbackContext.BindingScope.SERVER | loopbackContext.BindingScope.REQUEST) => Context | undefined;
|
|
94
|
+
getResolutionContext: (binding: Readonly<Binding<unknown>>) => Context | undefined;
|
|
95
|
+
isVisibleTo: (ctx: Context) => boolean;
|
|
92
96
|
find: <ValueType_1 = any>(pattern?: string | RegExp | loopbackContext.BindingFilter | undefined) => Readonly<Binding<ValueType_1>>[];
|
|
93
97
|
findByTag: <ValueType_2 = any>(tagFilter: string | RegExp | Record<string, any>) => Readonly<Binding<ValueType_2>>[];
|
|
94
98
|
get: {
|
package/dist/types.js
CHANGED
|
@@ -31,6 +31,7 @@ class MiddlewareContext extends core_1.Context {
|
|
|
31
31
|
* A flag to tell if the response is finished.
|
|
32
32
|
*/
|
|
33
33
|
this.responseFinished = false;
|
|
34
|
+
this.scope = core_1.BindingScope.REQUEST;
|
|
34
35
|
this.setupBindings();
|
|
35
36
|
on_finished_1.default(this.response, () => {
|
|
36
37
|
this.responseFinished = true;
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,iCAAiC;AACjC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,iCAAiC;AACjC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAUwB;AAExB,sEAAqC;AACrC,iCAA0C;AAE1C,mCAAiE;AAAtC,iGAAA,MAAM,OAAA;AAgBjC;;;GAGG;AACH,MAAa,iBAAkB,SAAQ,cAAO;IAM5C;;;;;;OAMG;IACH,YACkB,OAAgB,EAChB,QAAkB,EAClC,MAAgB,EAChB,IAAa;QAEb,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QALJ,YAAO,GAAP,OAAO,CAAS;QAChB,aAAQ,GAAR,QAAQ,CAAU;QAdpC;;WAEG;QACH,qBAAgB,GAAG,KAAK,CAAC;QAgBvB,IAAI,CAAC,KAAK,GAAG,mBAAY,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,qBAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,uEAAuE;YACvE,2BAA2B;YAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAES,aAAa;QACrB,IAAI,CAAC,IAAI,CAAC,yBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;CACF;AAlCD,8CAkCC;AAmDD;;;GAGG;AACH,MAAa,eAAgB,SAAQ,8BAEpC;CAAG;AAFJ,0CAEI;AAOJ;;GAEG;AACU,QAAA,wBAAwB,GAAG,yBAAyB,CAAC;AAwKlE;;GAEG;AACU,QAAA,kBAAkB,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;AAExE;;GAEG;AACH,IAAiB,gBAAgB,CAgBhC;AAhBD,WAAiB,gBAAgB;IAC/B;;OAEG;IACU,qBAAI,GAAG,MAAM,CAAC;IAE3B;;OAEG;IACU,yBAAQ,GAAG,SAAS,CAAC;IAElC;;OAEG;IACU,2BAAU,GAAG,YAAY,CAAC;IAC1B,wBAAO,GAAG,iBAAA,UAAU,CAAC;AACpC,CAAC,EAhBgB,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAgBhC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loopback/express",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Integrate with Express and expose middleware infrastructure for sequence and interceptors",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"loopback"
|
|
10
10
|
],
|
|
11
11
|
"engines": {
|
|
12
|
-
"node": "
|
|
12
|
+
"node": "^10.16 || 12 || 14"
|
|
13
13
|
},
|
|
14
14
|
"scripts": {
|
|
15
15
|
"build": "lb-tsc",
|
|
@@ -37,33 +37,33 @@
|
|
|
37
37
|
"!*/__tests__"
|
|
38
38
|
],
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@loopback/core": "^2.
|
|
40
|
+
"@loopback/core": "^2.11.0"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@loopback/http-server": "^2.
|
|
43
|
+
"@loopback/http-server": "^2.3.0",
|
|
44
44
|
"@types/body-parser": "^1.19.0",
|
|
45
45
|
"@types/express": "^4.17.8",
|
|
46
|
-
"@types/express-serve-static-core": "^4.17.
|
|
46
|
+
"@types/express-serve-static-core": "^4.17.13",
|
|
47
47
|
"@types/http-errors": "^1.8.0",
|
|
48
48
|
"body-parser": "^1.19.0",
|
|
49
|
-
"debug": "^4.
|
|
49
|
+
"debug": "^4.2.0",
|
|
50
50
|
"express": "^4.17.1",
|
|
51
51
|
"http-errors": "^1.8.0",
|
|
52
52
|
"on-finished": "^2.3.0",
|
|
53
53
|
"toposort": "^2.0.2",
|
|
54
|
-
"tslib": "^2.0.
|
|
54
|
+
"tslib": "^2.0.2"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@loopback/build": "^6.2.
|
|
58
|
-
"@loopback/core": "^2.
|
|
59
|
-
"@loopback/testlab": "^3.2.
|
|
57
|
+
"@loopback/build": "^6.2.5",
|
|
58
|
+
"@loopback/core": "^2.11.0",
|
|
59
|
+
"@loopback/testlab": "^3.2.7",
|
|
60
60
|
"@types/debug": "^4.1.5",
|
|
61
61
|
"@types/node": "^10.17.35",
|
|
62
62
|
"@types/on-finished": "^2.3.1",
|
|
63
63
|
"@types/toposort": "^2.0.3",
|
|
64
64
|
"http-errors": "^1.8.0",
|
|
65
65
|
"source-map-support": "^0.5.19",
|
|
66
|
-
"typescript": "~4.0.
|
|
66
|
+
"typescript": "~4.0.3"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "390f2794d10eea3d969ae417963af815ce1bc417"
|
|
69
69
|
}
|
package/src/express.server.ts
CHANGED
|
@@ -3,7 +3,13 @@
|
|
|
3
3
|
// This file is licensed under the MIT License.
|
|
4
4
|
// License text available at https://opensource.org/licenses/MIT
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
BindingScope,
|
|
8
|
+
Context,
|
|
9
|
+
CoreBindings,
|
|
10
|
+
inject,
|
|
11
|
+
Server,
|
|
12
|
+
} from '@loopback/core';
|
|
7
13
|
import {HttpOptions, HttpServer, HttpsOptions} from '@loopback/http-server';
|
|
8
14
|
import debugFactory from 'debug';
|
|
9
15
|
import express from 'express';
|
|
@@ -51,6 +57,7 @@ export class ExpressServer extends BaseMiddlewareRegistry implements Server {
|
|
|
51
57
|
parent?: Context,
|
|
52
58
|
) {
|
|
53
59
|
super(parent);
|
|
60
|
+
this.scope = BindingScope.SERVER;
|
|
54
61
|
let basePath = config?.basePath ?? '';
|
|
55
62
|
// Trim leading and trailing `/`
|
|
56
63
|
basePath = basePath.replace(/(^\/)|(\/$)/, '');
|
package/src/middleware.ts
CHANGED
|
@@ -132,9 +132,11 @@ export function asMiddleware(
|
|
|
132
132
|
options: MiddlewareBindingOptions = {},
|
|
133
133
|
): BindingTemplate {
|
|
134
134
|
return function middlewareBindingTemplate(binding) {
|
|
135
|
-
binding
|
|
136
|
-
|
|
137
|
-
|
|
135
|
+
binding.apply(extensionFor(options.chain ?? DEFAULT_MIDDLEWARE_CHAIN));
|
|
136
|
+
|
|
137
|
+
if (!binding.tagMap.group) {
|
|
138
|
+
binding.tag({group: options.group ?? DEFAULT_MIDDLEWARE_GROUP});
|
|
139
|
+
}
|
|
138
140
|
const groupsBefore = options.upstreamGroups;
|
|
139
141
|
if (groupsBefore != null) {
|
|
140
142
|
binding.tag({
|
package/src/types.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
7
|
BindingAddress,
|
|
8
|
+
BindingScope,
|
|
8
9
|
Context,
|
|
9
10
|
GenericInterceptor,
|
|
10
11
|
GenericInterceptorChain,
|
|
@@ -57,6 +58,7 @@ export class MiddlewareContext extends Context implements HandlerContext {
|
|
|
57
58
|
name?: string,
|
|
58
59
|
) {
|
|
59
60
|
super(parent, name);
|
|
61
|
+
this.scope = BindingScope.REQUEST;
|
|
60
62
|
this.setupBindings();
|
|
61
63
|
onFinished(this.response, () => {
|
|
62
64
|
this.responseFinished = true;
|