@loopback/core 2.15.1 → 2.17.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/README.md +4 -4
- package/dist/keys.js.map +1 -1
- package/dist/lifecycle-registry.d.ts +6 -0
- package/dist/lifecycle-registry.js +5 -0
- package/dist/lifecycle-registry.js.map +1 -1
- package/package.json +22 -22
- package/src/keys.ts +8 -12
- package/src/lifecycle-registry.ts +12 -4
- package/src/mixin-target.ts +6 -8
- package/CHANGELOG.md +0 -1409
package/README.md
CHANGED
|
@@ -24,7 +24,7 @@ servers.
|
|
|
24
24
|
|
|
25
25
|
For a typical example of how to create a REST server with your application, see
|
|
26
26
|
the
|
|
27
|
-
[@loopback/rest package.](https://github.com/
|
|
27
|
+
[@loopback/rest package.](https://github.com/loopbackio/loopback-next/tree/master/packages/rest)
|
|
28
28
|
|
|
29
29
|
## Advanced Use
|
|
30
30
|
|
|
@@ -71,8 +71,8 @@ dynamic configuration updates.
|
|
|
71
71
|
|
|
72
72
|
## Contributions
|
|
73
73
|
|
|
74
|
-
- [Guidelines](https://github.com/
|
|
75
|
-
- [Join the team](https://github.com/
|
|
74
|
+
- [Guidelines](https://github.com/loopbackio/loopback-next/blob/master/docs/CONTRIBUTING.md)
|
|
75
|
+
- [Join the team](https://github.com/loopbackio/loopback-next/issues/110)
|
|
76
76
|
|
|
77
77
|
## Tests
|
|
78
78
|
|
|
@@ -81,7 +81,7 @@ Run `npm test` from the root folder.
|
|
|
81
81
|
## Contributors
|
|
82
82
|
|
|
83
83
|
See
|
|
84
|
-
[all contributors](https://github.com/
|
|
84
|
+
[all contributors](https://github.com/loopbackio/loopback-next/graphs/contributors).
|
|
85
85
|
|
|
86
86
|
## License
|
|
87
87
|
|
package/dist/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAEhE,+CAA6C;AAY7C;;GAEG;AACH,IAAiB,YAAY,
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAEhE,+CAA6C;AAY7C;;GAEG;AACH,IAAiB,YAAY,CA4E5B;AA5ED,WAAiB,YAAY;IAC3B,cAAc;IACd;;OAEG;IACU,iCAAoB,GAAG,oBAAU,CAAC,MAAM,CACnD,sBAAsB,CACvB,CAAC;IAEF;;OAEG;IACU,+BAAkB,GAC7B,oBAAU,CAAC,MAAM,CAAoB,oBAAoB,CAAC,CAAC;IAE7D;;OAEG;IACU,iCAAoB,GAAG,oBAAU,CAAC,MAAM,CACnD,sBAAsB,CACvB,CAAC;IAEF,SAAS;IACT;;OAEG;IACU,oBAAO,GAAG,SAAS,CAAC;IAEjC,YAAY;IACZ;;OAEG;IACU,uBAAU,GAAG,YAAY,CAAC;IAEvC,aAAa;IACA,wBAAW,GAAG,aAAa,CAAC;IAEzC;;;OAGG;IACU,6BAAgB,GAC3B,oBAAU,CAAC,MAAM,CAAkB,yBAAyB,CAAC,CAAC;IAEhE;;;OAGG;IACU,mCAAsB,GAAG,oBAAU,CAAC,MAAM,CACrD,8BAA8B,CAC/B,CAAC;IAEF;;;OAGG;IACU,mCAAsB,GAAG,wBAAwB,CAAC;IAE/D;;;OAGG;IACU,+BAAkB,GAAG,oBAAU,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE7D,iCAAoB,GAAG,oBAAoB,CAAC;IACzD;;OAEG;IACU,yCAA4B,GACvC,oBAAU,CAAC,MAAM,CAA4B,4BAA4B,CAAC,CAAC;IAE7E;;OAEG;IACU,wCAA2B,GACtC,oBAAU,CAAC,MAAM,CAA2B,2BAA2B,CAAC,CAAC;AAC7E,CAAC,EA5EgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QA4E5B;AAED,IAAiB,QAAQ,CA6CxB;AA7CD,WAAiB,QAAQ;IACvB;;OAEG;IACU,kBAAS,GAAG,WAAW,CAAC;IAErC;;OAEG;IACU,eAAM,GAAG,QAAQ,CAAC;IAE/B;;OAEG;IACU,mBAAU,GAAG,YAAY,CAAC;IAEvC;;OAEG;IACU,gBAAO,GAAG,SAAS,CAAC;IACjC;;OAEG;IACU,0BAAiB,GAAG,kBAAkB,CAAC;IAEpD;;OAEG;IACU,4BAAmB,GAAG,mBAAmB,CAAC;IAEvD;;OAEG;IACU,kCAAyB,GAAG,wBAAwB,CAAC;IAElE;;;OAGG;IACU,sBAAa,GAAG,cAAc,CAAC;IAE5C;;OAEG;IACU,wBAAe,GAAG,gBAAgB,CAAC;AAClD,CAAC,EA7CgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QA6CxB"}
|
|
@@ -21,6 +21,12 @@ export declare type LifeCycleObserverOptions = {
|
|
|
21
21
|
* observers are notified in the reverse order during `stop`.
|
|
22
22
|
*/
|
|
23
23
|
orderedGroups: string[];
|
|
24
|
+
/**
|
|
25
|
+
* Override and disable lifecycle observer groups. This setting applies to
|
|
26
|
+
* both ordered groups (i.e. those defined in `orderedGroups`) and unordered
|
|
27
|
+
* groups.
|
|
28
|
+
*/
|
|
29
|
+
disabledGroups?: string[];
|
|
24
30
|
/**
|
|
25
31
|
* Notify observers of the same group in parallel, default to `true`
|
|
26
32
|
*/
|
|
@@ -124,6 +124,7 @@ let LifeCycleObserverRegistry = class LifeCycleObserverRegistry {
|
|
|
124
124
|
* @param groups - Observer groups
|
|
125
125
|
*/
|
|
126
126
|
async notifyGroups(events, groups, reverse = false) {
|
|
127
|
+
var _a;
|
|
127
128
|
const observers = await this.observersView.values();
|
|
128
129
|
const bindings = this.observersView.bindings;
|
|
129
130
|
const found = observers.some(observer => events.some(e => typeof observer[e] === 'function'));
|
|
@@ -134,6 +135,10 @@ let LifeCycleObserverRegistry = class LifeCycleObserverRegistry {
|
|
|
134
135
|
groups = [...groups].reverse();
|
|
135
136
|
}
|
|
136
137
|
for (const group of groups) {
|
|
138
|
+
if ((_a = this.options.disabledGroups) === null || _a === void 0 ? void 0 : _a.includes(group.group)) {
|
|
139
|
+
debug('Notification skipped (Group is disabled): %s', group.group);
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
137
142
|
const observersForGroup = [];
|
|
138
143
|
const bindingsInGroup = reverse
|
|
139
144
|
? group.bindings.reverse()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-registry.js","sourceRoot":"","sources":["../src/lifecycle-registry.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,+CAO2B;AAC3B,iCAA8C;AAC9C,2CAAuE;AACvE,sCAAuC;AACvC,MAAM,KAAK,GAAG,YAAY,CAAC,yBAAyB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"lifecycle-registry.js","sourceRoot":"","sources":["../src/lifecycle-registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loopback/core",
|
|
3
|
-
"version": "2.15.1",
|
|
4
3
|
"description": "Define and implement core constructs such as Application and Component",
|
|
4
|
+
"version": "2.17.0",
|
|
5
|
+
"license": "MIT",
|
|
5
6
|
"main": "dist/index.js",
|
|
6
7
|
"types": "dist/index.d.ts",
|
|
8
|
+
"author": "IBM Corp.",
|
|
9
|
+
"copyright.owner": "IBM Corp.",
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "https://github.com/loopbackio/loopback-next.git",
|
|
13
|
+
"directory": "packages/core"
|
|
14
|
+
},
|
|
7
15
|
"engines": {
|
|
8
|
-
"node": "^10.16 || 12 || 14 ||
|
|
16
|
+
"node": "^10.16 || 12 || 14 || 16"
|
|
9
17
|
},
|
|
10
18
|
"scripts": {
|
|
11
19
|
"acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"",
|
|
@@ -17,34 +25,26 @@
|
|
|
17
25
|
"unit": "lb-mocha \"dist/__tests__/unit/**/*.js\"",
|
|
18
26
|
"verify": "npm pack && tar xf loopback-core*.tgz && tree package && npm run clean"
|
|
19
27
|
},
|
|
20
|
-
"author": "IBM Corp.",
|
|
21
|
-
"copyright.owner": "IBM Corp.",
|
|
22
|
-
"license": "MIT",
|
|
23
28
|
"publishConfig": {
|
|
24
29
|
"access": "public"
|
|
25
30
|
},
|
|
26
|
-
"dependencies": {
|
|
27
|
-
"@loopback/context": "^3.15.1",
|
|
28
|
-
"debug": "^4.3.1",
|
|
29
|
-
"tslib": "^2.1.0"
|
|
30
|
-
},
|
|
31
|
-
"devDependencies": {
|
|
32
|
-
"@loopback/build": "^6.3.1",
|
|
33
|
-
"@loopback/eslint-config": "^10.1.1",
|
|
34
|
-
"@loopback/testlab": "^3.3.1",
|
|
35
|
-
"@types/debug": "^4.1.5",
|
|
36
|
-
"@types/node": "^10.17.56"
|
|
37
|
-
},
|
|
38
31
|
"files": [
|
|
39
32
|
"README.md",
|
|
40
33
|
"dist",
|
|
41
34
|
"src",
|
|
42
35
|
"!*/__tests__"
|
|
43
36
|
],
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@loopback/context": "^3.17.2",
|
|
39
|
+
"debug": "^4.3.2",
|
|
40
|
+
"tslib": "^2.3.1"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@loopback/build": "^7.0.1",
|
|
44
|
+
"@loopback/eslint-config": "^11.0.1",
|
|
45
|
+
"@loopback/testlab": "^3.4.3",
|
|
46
|
+
"@types/debug": "^4.1.7",
|
|
47
|
+
"@types/node": "^10.17.60"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "1df36bb1ee2e513d9e197bd6010c4cfb296d50b8"
|
|
50
50
|
}
|
package/src/keys.ts
CHANGED
|
@@ -30,9 +30,8 @@ export namespace CoreBindings {
|
|
|
30
30
|
/**
|
|
31
31
|
* Binding key for application configuration
|
|
32
32
|
*/
|
|
33
|
-
export const APPLICATION_CONFIG: BindingKey<ApplicationConfig> =
|
|
34
|
-
'application.config'
|
|
35
|
-
);
|
|
33
|
+
export const APPLICATION_CONFIG: BindingKey<ApplicationConfig> =
|
|
34
|
+
BindingKey.create<ApplicationConfig>('application.config');
|
|
36
35
|
|
|
37
36
|
/**
|
|
38
37
|
* Binding key for the content of `package.json`
|
|
@@ -60,9 +59,8 @@ export namespace CoreBindings {
|
|
|
60
59
|
* Binding key for the controller class resolved in the current request
|
|
61
60
|
* context
|
|
62
61
|
*/
|
|
63
|
-
export const CONTROLLER_CLASS: BindingKey<ControllerClass> =
|
|
64
|
-
'controller.current.ctor'
|
|
65
|
-
);
|
|
62
|
+
export const CONTROLLER_CLASS: BindingKey<ControllerClass> =
|
|
63
|
+
BindingKey.create<ControllerClass>('controller.current.ctor');
|
|
66
64
|
|
|
67
65
|
/**
|
|
68
66
|
* Binding key for the controller method resolved in the current request
|
|
@@ -88,16 +86,14 @@ export namespace CoreBindings {
|
|
|
88
86
|
/**
|
|
89
87
|
* Binding key for life cycle observer options
|
|
90
88
|
*/
|
|
91
|
-
export const LIFE_CYCLE_OBSERVER_REGISTRY =
|
|
92
|
-
'lifeCycleObserver.registry'
|
|
93
|
-
);
|
|
89
|
+
export const LIFE_CYCLE_OBSERVER_REGISTRY =
|
|
90
|
+
BindingKey.create<LifeCycleObserverRegistry>('lifeCycleObserver.registry');
|
|
94
91
|
|
|
95
92
|
/**
|
|
96
93
|
* Binding key for life cycle observer options
|
|
97
94
|
*/
|
|
98
|
-
export const LIFE_CYCLE_OBSERVER_OPTIONS =
|
|
99
|
-
'lifeCycleObserver.options'
|
|
100
|
-
);
|
|
95
|
+
export const LIFE_CYCLE_OBSERVER_OPTIONS =
|
|
96
|
+
BindingKey.create<LifeCycleObserverOptions>('lifeCycleObserver.options');
|
|
101
97
|
}
|
|
102
98
|
|
|
103
99
|
export namespace CoreTags {
|
|
@@ -38,6 +38,12 @@ export type LifeCycleObserverOptions = {
|
|
|
38
38
|
* observers are notified in the reverse order during `stop`.
|
|
39
39
|
*/
|
|
40
40
|
orderedGroups: string[];
|
|
41
|
+
/**
|
|
42
|
+
* Override and disable lifecycle observer groups. This setting applies to
|
|
43
|
+
* both ordered groups (i.e. those defined in `orderedGroups`) and unordered
|
|
44
|
+
* groups.
|
|
45
|
+
*/
|
|
46
|
+
disabledGroups?: string[];
|
|
41
47
|
/**
|
|
42
48
|
* Notify observers of the same group in parallel, default to `true`
|
|
43
49
|
*/
|
|
@@ -116,10 +122,8 @@ export class LifeCycleObserverRegistry implements LifeCycleObserver {
|
|
|
116
122
|
bindings: Readonly<Binding<LifeCycleObserver>>[],
|
|
117
123
|
) {
|
|
118
124
|
// Group bindings in a map
|
|
119
|
-
const groupMap: Map<
|
|
120
|
-
|
|
121
|
-
Readonly<Binding<LifeCycleObserver>>[]
|
|
122
|
-
> = new Map();
|
|
125
|
+
const groupMap: Map<string, Readonly<Binding<LifeCycleObserver>>[]> =
|
|
126
|
+
new Map();
|
|
123
127
|
sortBindingsByPhase(
|
|
124
128
|
bindings,
|
|
125
129
|
CoreTags.LIFE_CYCLE_OBSERVER_GROUP,
|
|
@@ -213,6 +217,10 @@ export class LifeCycleObserverRegistry implements LifeCycleObserver {
|
|
|
213
217
|
groups = [...groups].reverse();
|
|
214
218
|
}
|
|
215
219
|
for (const group of groups) {
|
|
220
|
+
if (this.options.disabledGroups?.includes(group.group)) {
|
|
221
|
+
debug('Notification skipped (Group is disabled): %s', group.group);
|
|
222
|
+
continue;
|
|
223
|
+
}
|
|
216
224
|
const observersForGroup: LifeCycleObserver[] = [];
|
|
217
225
|
const bindingsInGroup = reverse
|
|
218
226
|
? group.bindings.reverse()
|
package/src/mixin-target.ts
CHANGED
|
@@ -61,11 +61,9 @@ import {Constructor} from '@loopback/context';
|
|
|
61
61
|
* }
|
|
62
62
|
* ```
|
|
63
63
|
*/
|
|
64
|
-
export type MixinTarget<T extends object> = Constructor<
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
>;
|
|
64
|
+
export type MixinTarget<T extends object> = Constructor<{
|
|
65
|
+
// Enumerate only public members to avoid the following compiler error:
|
|
66
|
+
// Property '(name)' of exported class expression
|
|
67
|
+
// may not be private or protected.ts(4094)
|
|
68
|
+
[P in keyof T]: T[P];
|
|
69
|
+
}>;
|