@loopback/context 3.11.1 → 3.12.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 +11 -0
- package/dist/binding.d.ts +60 -3
- package/dist/binding.js +111 -35
- package/dist/binding.js.map +1 -1
- package/dist/context.d.ts +25 -4
- package/dist/context.js +80 -4
- package/dist/context.js.map +1 -1
- package/dist/interceptor-chain.d.ts +1 -0
- package/dist/interceptor-chain.js.map +1 -1
- package/dist/resolver.js +5 -7
- package/dist/resolver.js.map +1 -1
- package/package.json +10 -10
- package/src/binding.ts +119 -32
- package/src/context.ts +100 -5
- package/src/interceptor-chain.ts +1 -0
- package/src/resolver.ts +5 -9
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.12.0](https://github.com/strongloop/loopback-next/compare/@loopback/context@3.11.1...@loopback/context@3.12.0) (2020-10-07)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **context:** introduce new binding scopes ([9916cfd](https://github.com/strongloop/loopback-next/commit/9916cfd4449a870f7a3378e2e674957aed7c1626))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [3.11.1](https://github.com/strongloop/loopback-next/compare/@loopback/context@3.11.0...@loopback/context@3.11.1) (2020-09-17)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @loopback/context
|
package/dist/binding.d.ts
CHANGED
|
@@ -30,6 +30,10 @@ export declare enum BindingScope {
|
|
|
30
30
|
*/
|
|
31
31
|
TRANSIENT = "Transient",
|
|
32
32
|
/**
|
|
33
|
+
* @deprecated Finer-grained scopes such as `APPLICATION`, `SERVER`, or
|
|
34
|
+
* `REQUEST` should be used instead to ensure the scope of sharing of resolved
|
|
35
|
+
* binding values.
|
|
36
|
+
*
|
|
33
37
|
* The binding provides a value as a singleton within each local context. The
|
|
34
38
|
* value is calculated only once per context and cached for subsequential
|
|
35
39
|
* uses. Child contexts have their own value and do not share with their
|
|
@@ -51,6 +55,7 @@ export declare enum BindingScope {
|
|
|
51
55
|
* 3. `'b1'` is resolved in `app` but not in `req2`, a new value `2` is
|
|
52
56
|
* calculated and used for `req2` afterward
|
|
53
57
|
* - req2.get('b1') ==> 2 (always)
|
|
58
|
+
*
|
|
54
59
|
*/
|
|
55
60
|
CONTEXT = "Context",
|
|
56
61
|
/**
|
|
@@ -74,7 +79,53 @@ export declare enum BindingScope {
|
|
|
74
79
|
* 3. `'b1'` is resolved in `app`, reuse it for `req2`
|
|
75
80
|
* - req2.get('b1') ==> 0 (always)
|
|
76
81
|
*/
|
|
77
|
-
SINGLETON = "Singleton"
|
|
82
|
+
SINGLETON = "Singleton",
|
|
83
|
+
/**
|
|
84
|
+
* Application scope
|
|
85
|
+
*
|
|
86
|
+
* @remarks
|
|
87
|
+
* The binding provides an application-scoped value within the context
|
|
88
|
+
* hierarchy. Resolved value for this binding will be cached and shared for
|
|
89
|
+
* the same application context (denoted by its scope property set to
|
|
90
|
+
* `BindingScope.APPLICATION`).
|
|
91
|
+
*
|
|
92
|
+
*/
|
|
93
|
+
APPLICATION = "Application",
|
|
94
|
+
/**
|
|
95
|
+
* Server scope
|
|
96
|
+
*
|
|
97
|
+
* @remarks
|
|
98
|
+
* The binding provides an server-scoped value within the context hierarchy.
|
|
99
|
+
* Resolved value for this binding will be cached and shared for the same
|
|
100
|
+
* server context (denoted by its scope property set to
|
|
101
|
+
* `BindingScope.SERVER`).
|
|
102
|
+
*
|
|
103
|
+
* It's possible that an application has more than one servers configured,
|
|
104
|
+
* such as a `RestServer` and a `GrpcServer`. Both server contexts are created
|
|
105
|
+
* with `scope` set to `BindingScope.SERVER`. Depending on where a binding
|
|
106
|
+
* is resolved:
|
|
107
|
+
* - If the binding is resolved from the RestServer or below, it will be
|
|
108
|
+
* cached using the RestServer context as the key.
|
|
109
|
+
* - If the binding is resolved from the GrpcServer or below, it will be
|
|
110
|
+
* cached using the GrpcServer context as the key.
|
|
111
|
+
*
|
|
112
|
+
* The same binding can resolved/shared/cached for all servers, each of which
|
|
113
|
+
* has its own value for the binding.
|
|
114
|
+
*/
|
|
115
|
+
SERVER = "Server",
|
|
116
|
+
/**
|
|
117
|
+
* Request scope
|
|
118
|
+
*
|
|
119
|
+
* @remarks
|
|
120
|
+
* The binding provides an request-scoped value within the context hierarchy.
|
|
121
|
+
* Resolved value for this binding will be cached and shared for the same
|
|
122
|
+
* request context (denoted by its scope property set to
|
|
123
|
+
* `BindingScope.REQUEST`).
|
|
124
|
+
*
|
|
125
|
+
* The `REQUEST` scope is very useful for controllers, services and artifacts
|
|
126
|
+
* that want to have a single instance/value for a given request.
|
|
127
|
+
*/
|
|
128
|
+
REQUEST = "Request"
|
|
78
129
|
}
|
|
79
130
|
/**
|
|
80
131
|
* Type of the binding source
|
|
@@ -245,7 +296,7 @@ export declare class Binding<T = BoundValue> extends EventEmitter {
|
|
|
245
296
|
constructor(key: BindingAddress<T>, isLocked?: boolean);
|
|
246
297
|
/**
|
|
247
298
|
* Cache the resolved value by the binding scope
|
|
248
|
-
* @param
|
|
299
|
+
* @param resolutionCtx - The resolution context
|
|
249
300
|
* @param result - The calculated value for the binding
|
|
250
301
|
*/
|
|
251
302
|
private _cacheValue;
|
|
@@ -255,7 +306,7 @@ export declare class Binding<T = BoundValue> extends EventEmitter {
|
|
|
255
306
|
private _clearCache;
|
|
256
307
|
/**
|
|
257
308
|
* Invalidate the binding cache so that its value will be reloaded next time.
|
|
258
|
-
* This is useful to force reloading a
|
|
309
|
+
* This is useful to force reloading a cached value when its configuration or
|
|
259
310
|
* dependencies are changed.
|
|
260
311
|
* **WARNING**: The state held in the cached value will be gone.
|
|
261
312
|
*
|
|
@@ -296,6 +347,12 @@ export declare class Binding<T = BoundValue> extends EventEmitter {
|
|
|
296
347
|
* @param options - Optional options for binding and dependency resolution
|
|
297
348
|
*/
|
|
298
349
|
getValue(ctx: Context, options?: ResolutionOptions): ValueOrPromise<T | undefined>;
|
|
350
|
+
/**
|
|
351
|
+
* Locate and validate the resolution context
|
|
352
|
+
* @param ctx - Current context
|
|
353
|
+
* @param options - Resolution options
|
|
354
|
+
*/
|
|
355
|
+
private getResolutionContext;
|
|
299
356
|
/**
|
|
300
357
|
* Lock the binding so that it cannot be rebound
|
|
301
358
|
*/
|
package/dist/binding.js
CHANGED
|
@@ -42,6 +42,10 @@ var BindingScope;
|
|
|
42
42
|
*/
|
|
43
43
|
BindingScope["TRANSIENT"] = "Transient";
|
|
44
44
|
/**
|
|
45
|
+
* @deprecated Finer-grained scopes such as `APPLICATION`, `SERVER`, or
|
|
46
|
+
* `REQUEST` should be used instead to ensure the scope of sharing of resolved
|
|
47
|
+
* binding values.
|
|
48
|
+
*
|
|
45
49
|
* The binding provides a value as a singleton within each local context. The
|
|
46
50
|
* value is calculated only once per context and cached for subsequential
|
|
47
51
|
* uses. Child contexts have their own value and do not share with their
|
|
@@ -63,6 +67,7 @@ var BindingScope;
|
|
|
63
67
|
* 3. `'b1'` is resolved in `app` but not in `req2`, a new value `2` is
|
|
64
68
|
* calculated and used for `req2` afterward
|
|
65
69
|
* - req2.get('b1') ==> 2 (always)
|
|
70
|
+
*
|
|
66
71
|
*/
|
|
67
72
|
BindingScope["CONTEXT"] = "Context";
|
|
68
73
|
/**
|
|
@@ -87,6 +92,58 @@ var BindingScope;
|
|
|
87
92
|
* - req2.get('b1') ==> 0 (always)
|
|
88
93
|
*/
|
|
89
94
|
BindingScope["SINGLETON"] = "Singleton";
|
|
95
|
+
/*
|
|
96
|
+
* The following scopes are checked against the context hierarchy to find
|
|
97
|
+
* the first matching context for a given scope in the chain. Resolved binding
|
|
98
|
+
* values will be cached and shared on the scoped context. This ensures a
|
|
99
|
+
* binding to have the same value for the scoped context.
|
|
100
|
+
*/
|
|
101
|
+
/**
|
|
102
|
+
* Application scope
|
|
103
|
+
*
|
|
104
|
+
* @remarks
|
|
105
|
+
* The binding provides an application-scoped value within the context
|
|
106
|
+
* hierarchy. Resolved value for this binding will be cached and shared for
|
|
107
|
+
* the same application context (denoted by its scope property set to
|
|
108
|
+
* `BindingScope.APPLICATION`).
|
|
109
|
+
*
|
|
110
|
+
*/
|
|
111
|
+
BindingScope["APPLICATION"] = "Application";
|
|
112
|
+
/**
|
|
113
|
+
* Server scope
|
|
114
|
+
*
|
|
115
|
+
* @remarks
|
|
116
|
+
* The binding provides an server-scoped value within the context hierarchy.
|
|
117
|
+
* Resolved value for this binding will be cached and shared for the same
|
|
118
|
+
* server context (denoted by its scope property set to
|
|
119
|
+
* `BindingScope.SERVER`).
|
|
120
|
+
*
|
|
121
|
+
* It's possible that an application has more than one servers configured,
|
|
122
|
+
* such as a `RestServer` and a `GrpcServer`. Both server contexts are created
|
|
123
|
+
* with `scope` set to `BindingScope.SERVER`. Depending on where a binding
|
|
124
|
+
* is resolved:
|
|
125
|
+
* - If the binding is resolved from the RestServer or below, it will be
|
|
126
|
+
* cached using the RestServer context as the key.
|
|
127
|
+
* - If the binding is resolved from the GrpcServer or below, it will be
|
|
128
|
+
* cached using the GrpcServer context as the key.
|
|
129
|
+
*
|
|
130
|
+
* The same binding can resolved/shared/cached for all servers, each of which
|
|
131
|
+
* has its own value for the binding.
|
|
132
|
+
*/
|
|
133
|
+
BindingScope["SERVER"] = "Server";
|
|
134
|
+
/**
|
|
135
|
+
* Request scope
|
|
136
|
+
*
|
|
137
|
+
* @remarks
|
|
138
|
+
* The binding provides an request-scoped value within the context hierarchy.
|
|
139
|
+
* Resolved value for this binding will be cached and shared for the same
|
|
140
|
+
* request context (denoted by its scope property set to
|
|
141
|
+
* `BindingScope.REQUEST`).
|
|
142
|
+
*
|
|
143
|
+
* The `REQUEST` scope is very useful for controllers, services and artifacts
|
|
144
|
+
* that want to have a single instance/value for a given request.
|
|
145
|
+
*/
|
|
146
|
+
BindingScope["REQUEST"] = "Request";
|
|
90
147
|
})(BindingScope = exports.BindingScope || (exports.BindingScope = {}));
|
|
91
148
|
/**
|
|
92
149
|
* Type of the binding source
|
|
@@ -190,22 +247,16 @@ class Binding extends events_1.EventEmitter {
|
|
|
190
247
|
}
|
|
191
248
|
/**
|
|
192
249
|
* Cache the resolved value by the binding scope
|
|
193
|
-
* @param
|
|
250
|
+
* @param resolutionCtx - The resolution context
|
|
194
251
|
* @param result - The calculated value for the binding
|
|
195
252
|
*/
|
|
196
|
-
_cacheValue(
|
|
253
|
+
_cacheValue(resolutionCtx, result) {
|
|
197
254
|
// Initialize the cache as a weakmap keyed by context
|
|
198
255
|
if (!this._cache)
|
|
199
256
|
this._cache = new WeakMap();
|
|
200
|
-
if (this.scope
|
|
201
|
-
|
|
202
|
-
this._cache.set(ctx.getOwnerContext(this.key), result);
|
|
203
|
-
}
|
|
204
|
-
else if (this.scope === BindingScope.CONTEXT) {
|
|
205
|
-
// Cache the value at the current context
|
|
206
|
-
this._cache.set(ctx, result);
|
|
257
|
+
if (this.scope !== BindingScope.TRANSIENT) {
|
|
258
|
+
this._cache.set(resolutionCtx, result);
|
|
207
259
|
}
|
|
208
|
-
// Do not cache for `TRANSIENT`
|
|
209
260
|
return result;
|
|
210
261
|
}
|
|
211
262
|
/**
|
|
@@ -219,7 +270,7 @@ class Binding extends events_1.EventEmitter {
|
|
|
219
270
|
}
|
|
220
271
|
/**
|
|
221
272
|
* Invalidate the binding cache so that its value will be reloaded next time.
|
|
222
|
-
* This is useful to force reloading a
|
|
273
|
+
* This is useful to force reloading a cached value when its configuration or
|
|
223
274
|
* dependencies are changed.
|
|
224
275
|
* **WARNING**: The state held in the cached value will be gone.
|
|
225
276
|
*
|
|
@@ -228,17 +279,12 @@ class Binding extends events_1.EventEmitter {
|
|
|
228
279
|
refresh(ctx) {
|
|
229
280
|
if (!this._cache)
|
|
230
281
|
return;
|
|
231
|
-
if (this.scope
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
this._cache.delete(ownerCtx);
|
|
282
|
+
if (this.scope !== BindingScope.TRANSIENT) {
|
|
283
|
+
const resolutionCtx = ctx.getResolutionContext(this);
|
|
284
|
+
if (resolutionCtx != null) {
|
|
285
|
+
this._cache.delete(resolutionCtx);
|
|
236
286
|
}
|
|
237
287
|
}
|
|
238
|
-
else if (this.scope === BindingScope.CONTEXT) {
|
|
239
|
-
// Cache the value at the current context
|
|
240
|
-
this._cache.delete(ctx);
|
|
241
|
-
}
|
|
242
288
|
}
|
|
243
289
|
// Implementation
|
|
244
290
|
getValue(ctx, optionsOrSession) {
|
|
@@ -246,23 +292,20 @@ class Binding extends events_1.EventEmitter {
|
|
|
246
292
|
if (debug.enabled) {
|
|
247
293
|
debug('Get value for binding %s', this.key);
|
|
248
294
|
}
|
|
295
|
+
const options = resolution_session_1.asResolutionOptions(optionsOrSession);
|
|
296
|
+
const resolutionCtx = this.getResolutionContext(ctx, options);
|
|
297
|
+
if (resolutionCtx == null)
|
|
298
|
+
return undefined;
|
|
249
299
|
// First check cached value for non-transient
|
|
250
300
|
if (this._cache) {
|
|
251
|
-
if (this.scope
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
return this._cache.get(ownerCtx);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
else if (this.scope === BindingScope.CONTEXT) {
|
|
258
|
-
if (this._cache.has(ctx)) {
|
|
259
|
-
return this._cache.get(ctx);
|
|
301
|
+
if (this.scope !== BindingScope.TRANSIENT) {
|
|
302
|
+
if (resolutionCtx && this._cache.has(resolutionCtx)) {
|
|
303
|
+
return this._cache.get(resolutionCtx);
|
|
260
304
|
}
|
|
261
305
|
}
|
|
262
306
|
}
|
|
263
|
-
const
|
|
264
|
-
|
|
265
|
-
context: ctx,
|
|
307
|
+
const resolutionMetadata = {
|
|
308
|
+
context: resolutionCtx,
|
|
266
309
|
binding: this,
|
|
267
310
|
options,
|
|
268
311
|
};
|
|
@@ -272,16 +315,49 @@ class Binding extends events_1.EventEmitter {
|
|
|
272
315
|
// We already test `this._getValue` is a function. It's safe to assert
|
|
273
316
|
// that `this._getValue` is not undefined.
|
|
274
317
|
return this._getValue({
|
|
275
|
-
...
|
|
318
|
+
...resolutionMetadata,
|
|
276
319
|
options: optionsWithSession,
|
|
277
320
|
});
|
|
278
321
|
}, this, options.session);
|
|
279
|
-
return this._cacheValue(
|
|
322
|
+
return this._cacheValue(resolutionCtx, result);
|
|
280
323
|
}
|
|
281
324
|
// `@inject.binding` adds a binding without _getValue
|
|
282
325
|
if (options.optional)
|
|
283
326
|
return undefined;
|
|
284
|
-
return Promise.reject(new resolution_session_1.ResolutionError(`No value was configured for binding ${this.key}.`,
|
|
327
|
+
return Promise.reject(new resolution_session_1.ResolutionError(`No value was configured for binding ${this.key}.`, resolutionMetadata));
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Locate and validate the resolution context
|
|
331
|
+
* @param ctx - Current context
|
|
332
|
+
* @param options - Resolution options
|
|
333
|
+
*/
|
|
334
|
+
getResolutionContext(ctx, options) {
|
|
335
|
+
const resolutionCtx = ctx.getResolutionContext(this);
|
|
336
|
+
switch (this.scope) {
|
|
337
|
+
case BindingScope.APPLICATION:
|
|
338
|
+
case BindingScope.SERVER:
|
|
339
|
+
case BindingScope.REQUEST:
|
|
340
|
+
if (resolutionCtx == null) {
|
|
341
|
+
const msg = `Binding "${this.key}" in context "${ctx.name}" cannot` +
|
|
342
|
+
` be resolved in scope "${this.scope}"`;
|
|
343
|
+
if (options.optional) {
|
|
344
|
+
debug(msg);
|
|
345
|
+
return undefined;
|
|
346
|
+
}
|
|
347
|
+
throw new Error(msg);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
const ownerCtx = ctx.getOwnerContext(this.key);
|
|
351
|
+
if (ownerCtx != null && !ownerCtx.isVisibleTo(resolutionCtx)) {
|
|
352
|
+
const msg = `Resolution context "${resolutionCtx === null || resolutionCtx === void 0 ? void 0 : resolutionCtx.name}" does not have ` +
|
|
353
|
+
`visibility to binding "${this.key} (scope:${this.scope})" in context "${ownerCtx.name}"`;
|
|
354
|
+
if (options.optional) {
|
|
355
|
+
debug(msg);
|
|
356
|
+
return undefined;
|
|
357
|
+
}
|
|
358
|
+
throw new Error(msg);
|
|
359
|
+
}
|
|
360
|
+
return resolutionCtx;
|
|
285
361
|
}
|
|
286
362
|
/**
|
|
287
363
|
* Lock the binding so that it cannot be rebound
|
package/dist/binding.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"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"}
|
package/dist/context.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { Debugger } from 'debug';
|
|
3
3
|
import { EventEmitter } from 'events';
|
|
4
|
-
import { Binding, BindingInspectOptions, BindingTag } from './binding';
|
|
4
|
+
import { Binding, BindingInspectOptions, BindingScope, BindingTag } from './binding';
|
|
5
5
|
import { ConfigurationResolver } from './binding-config';
|
|
6
6
|
import { BindingFilter } from './binding-filter';
|
|
7
7
|
import { BindingAddress } from './binding-key';
|
|
@@ -56,6 +56,10 @@ export declare class Context extends EventEmitter {
|
|
|
56
56
|
* ```
|
|
57
57
|
*/
|
|
58
58
|
protected _debug: Debugger;
|
|
59
|
+
/**
|
|
60
|
+
* Scope for binding resolution
|
|
61
|
+
*/
|
|
62
|
+
scope: BindingScope;
|
|
59
63
|
/**
|
|
60
64
|
* Create a new context.
|
|
61
65
|
*
|
|
@@ -236,10 +240,27 @@ export declare class Context extends EventEmitter {
|
|
|
236
240
|
*/
|
|
237
241
|
isBound(key: BindingAddress): boolean;
|
|
238
242
|
/**
|
|
239
|
-
* Get the owning context for a binding key
|
|
240
|
-
* @param
|
|
243
|
+
* Get the owning context for a binding or its key
|
|
244
|
+
* @param keyOrBinding - Binding object or key
|
|
245
|
+
*/
|
|
246
|
+
getOwnerContext(keyOrBinding: BindingAddress | Readonly<Binding<unknown>>): Context | undefined;
|
|
247
|
+
/**
|
|
248
|
+
* Get the context matching the scope
|
|
249
|
+
* @param scope - Binding scope
|
|
250
|
+
*/
|
|
251
|
+
getScopedContext(scope: BindingScope.APPLICATION | BindingScope.SERVER | BindingScope.REQUEST): Context | undefined;
|
|
252
|
+
/**
|
|
253
|
+
* Locate the resolution context for the given binding. Only bindings in the
|
|
254
|
+
* resolution context and its ancestors are visible as dependencies to resolve
|
|
255
|
+
* the given binding
|
|
256
|
+
* @param binding - Binding object
|
|
257
|
+
*/
|
|
258
|
+
getResolutionContext(binding: Readonly<Binding<unknown>>): Context | undefined;
|
|
259
|
+
/**
|
|
260
|
+
* Check if this context is visible (same or ancestor) to the given one
|
|
261
|
+
* @param ctx - Another context object
|
|
241
262
|
*/
|
|
242
|
-
|
|
263
|
+
isVisibleTo(ctx: Context): boolean;
|
|
243
264
|
/**
|
|
244
265
|
* Find bindings using a key pattern or filter function
|
|
245
266
|
* @param pattern - A filter function, a regexp or a wildcard pattern with
|
package/dist/context.js
CHANGED
|
@@ -51,6 +51,10 @@ class Context extends events_1.EventEmitter {
|
|
|
51
51
|
* Key to binding map as the internal registry
|
|
52
52
|
*/
|
|
53
53
|
this.registry = new Map();
|
|
54
|
+
/**
|
|
55
|
+
* Scope for binding resolution
|
|
56
|
+
*/
|
|
57
|
+
this.scope = binding_1.BindingScope.CONTEXT;
|
|
54
58
|
// The number of listeners can grow with the number of child contexts
|
|
55
59
|
// For example, each request can add a listener to the RestServer and the
|
|
56
60
|
// listener is removed when the request processing is finished.
|
|
@@ -349,17 +353,89 @@ class Context extends events_1.EventEmitter {
|
|
|
349
353
|
return false;
|
|
350
354
|
}
|
|
351
355
|
/**
|
|
352
|
-
* Get the owning context for a binding key
|
|
353
|
-
* @param
|
|
356
|
+
* Get the owning context for a binding or its key
|
|
357
|
+
* @param keyOrBinding - Binding object or key
|
|
354
358
|
*/
|
|
355
|
-
getOwnerContext(
|
|
356
|
-
|
|
359
|
+
getOwnerContext(keyOrBinding) {
|
|
360
|
+
let key;
|
|
361
|
+
if (keyOrBinding instanceof binding_1.Binding) {
|
|
362
|
+
key = keyOrBinding.key;
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
key = keyOrBinding;
|
|
366
|
+
}
|
|
367
|
+
if (this.contains(key)) {
|
|
368
|
+
if (keyOrBinding instanceof binding_1.Binding) {
|
|
369
|
+
// Check if the contained binding is the same
|
|
370
|
+
if (this.registry.get(key.toString()) === keyOrBinding) {
|
|
371
|
+
return this;
|
|
372
|
+
}
|
|
373
|
+
return undefined;
|
|
374
|
+
}
|
|
357
375
|
return this;
|
|
376
|
+
}
|
|
358
377
|
if (this._parent) {
|
|
359
378
|
return this._parent.getOwnerContext(key);
|
|
360
379
|
}
|
|
361
380
|
return undefined;
|
|
362
381
|
}
|
|
382
|
+
/**
|
|
383
|
+
* Get the context matching the scope
|
|
384
|
+
* @param scope - Binding scope
|
|
385
|
+
*/
|
|
386
|
+
getScopedContext(scope) {
|
|
387
|
+
if (this.scope === scope)
|
|
388
|
+
return this;
|
|
389
|
+
if (this._parent) {
|
|
390
|
+
return this._parent.getScopedContext(scope);
|
|
391
|
+
}
|
|
392
|
+
return undefined;
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Locate the resolution context for the given binding. Only bindings in the
|
|
396
|
+
* resolution context and its ancestors are visible as dependencies to resolve
|
|
397
|
+
* the given binding
|
|
398
|
+
* @param binding - Binding object
|
|
399
|
+
*/
|
|
400
|
+
getResolutionContext(binding) {
|
|
401
|
+
let resolutionCtx;
|
|
402
|
+
switch (binding.scope) {
|
|
403
|
+
case binding_1.BindingScope.SINGLETON:
|
|
404
|
+
// Use the owner context
|
|
405
|
+
return this.getOwnerContext(binding.key);
|
|
406
|
+
case binding_1.BindingScope.TRANSIENT:
|
|
407
|
+
case binding_1.BindingScope.CONTEXT:
|
|
408
|
+
// Use the current context
|
|
409
|
+
return this;
|
|
410
|
+
case binding_1.BindingScope.REQUEST:
|
|
411
|
+
resolutionCtx = this.getScopedContext(binding.scope);
|
|
412
|
+
if (resolutionCtx != null) {
|
|
413
|
+
return resolutionCtx;
|
|
414
|
+
}
|
|
415
|
+
else {
|
|
416
|
+
// If no `REQUEST` scope exists in the chain, fall back to the current
|
|
417
|
+
// context
|
|
418
|
+
this.debug('No context is found for binding "%s (scope=%s)". Fall back to the current context.', binding.key, binding.scope);
|
|
419
|
+
return this;
|
|
420
|
+
}
|
|
421
|
+
default:
|
|
422
|
+
// Use the scoped context
|
|
423
|
+
return this.getScopedContext(binding.scope);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Check if this context is visible (same or ancestor) to the given one
|
|
428
|
+
* @param ctx - Another context object
|
|
429
|
+
*/
|
|
430
|
+
isVisibleTo(ctx) {
|
|
431
|
+
let current = ctx;
|
|
432
|
+
while (current != null) {
|
|
433
|
+
if (current === this)
|
|
434
|
+
return true;
|
|
435
|
+
current = current._parent;
|
|
436
|
+
}
|
|
437
|
+
return false;
|
|
438
|
+
}
|
|
363
439
|
/**
|
|
364
440
|
* Find bindings using a key pattern or filter function
|
|
365
441
|
* @param pattern - A filter function, a regexp or a wildcard pattern with
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ export declare type Next = () => ValueOrPromise<NonVoid>;
|
|
|
19
19
|
* It serves as the base interface for various types of interceptors, such
|
|
20
20
|
* as method invocation interceptor or request/response processing interceptor.
|
|
21
21
|
*
|
|
22
|
+
* @remarks
|
|
22
23
|
* We choose `NonVoid` as the return type to avoid possible bugs that an
|
|
23
24
|
* interceptor forgets to return the value from `next()`. For example, the code
|
|
24
25
|
* below will fail to compile.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interceptor-chain.js","sourceRoot":"","sources":["../src/interceptor-chain.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,iCAAiC;AACjC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAiC;AAMjC,mDAAwE;AACxE,MAAM,KAAK,GAAG,eAAY,CAAC,oCAAoC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"interceptor-chain.js","sourceRoot":"","sources":["../src/interceptor-chain.ts"],"names":[],"mappings":"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"}
|
package/dist/resolver.js
CHANGED
|
@@ -9,7 +9,6 @@ const tslib_1 = require("tslib");
|
|
|
9
9
|
const metadata_1 = require("@loopback/metadata");
|
|
10
10
|
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
11
11
|
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
12
|
-
const binding_1 = require("./binding");
|
|
13
12
|
const binding_filter_1 = require("./binding-filter");
|
|
14
13
|
const inject_1 = require("./inject");
|
|
15
14
|
const resolution_session_1 = require("./resolution-session");
|
|
@@ -64,9 +63,8 @@ exports.instantiateClass = instantiateClass;
|
|
|
64
63
|
*/
|
|
65
64
|
function resolveContext(ctx, injection, session) {
|
|
66
65
|
const currentBinding = session === null || session === void 0 ? void 0 : session.currentBinding;
|
|
67
|
-
if (currentBinding == null
|
|
68
|
-
|
|
69
|
-
// No current binding or its scope is not `SINGLETON`
|
|
66
|
+
if (currentBinding == null) {
|
|
67
|
+
// No current binding
|
|
70
68
|
return ctx;
|
|
71
69
|
}
|
|
72
70
|
const isConstructorOrPropertyInjection =
|
|
@@ -75,9 +73,9 @@ function resolveContext(ctx, injection, session) {
|
|
|
75
73
|
// property injection
|
|
76
74
|
typeof injection.methodDescriptorOrParameterIndex !== 'number';
|
|
77
75
|
if (isConstructorOrPropertyInjection) {
|
|
78
|
-
// Set context to the
|
|
79
|
-
// or property injections against a singleton
|
|
80
|
-
ctx = ctx.
|
|
76
|
+
// Set context to the resolution context of the current binding for
|
|
77
|
+
// constructor or property injections against a singleton
|
|
78
|
+
ctx = ctx.getResolutionContext(currentBinding);
|
|
81
79
|
}
|
|
82
80
|
return ctx;
|
|
83
81
|
}
|
package/dist/resolver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,iCAAiC;AACjC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,iDAAoD;AACpD,4DAA4B;AAC5B,0DAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loopback/context",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.12.0",
|
|
4
4
|
"description": "Facilities to manage artifacts and their dependencies in your Node.js applications. The module exposes TypeScript/JavaScript APIs and decorators to register artifacts, declare dependencies, and resolve artifacts by keys. It also serves as an IoC container to support dependency injection",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"engines": {
|
|
8
|
-
"node": "
|
|
8
|
+
"node": "^10.16 || 12 || 14"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"",
|
|
@@ -23,18 +23,18 @@
|
|
|
23
23
|
"access": "public"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@loopback/metadata": "^3.0.
|
|
26
|
+
"@loopback/metadata": "^3.0.2",
|
|
27
27
|
"@types/debug": "^4.1.5",
|
|
28
|
-
"debug": "^4.
|
|
28
|
+
"debug": "^4.2.0",
|
|
29
29
|
"hyperid": "^2.0.5",
|
|
30
30
|
"p-event": "^4.2.0",
|
|
31
|
-
"tslib": "^2.0.
|
|
32
|
-
"uuid": "^8.3.
|
|
31
|
+
"tslib": "^2.0.2",
|
|
32
|
+
"uuid": "^8.3.1"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@loopback/build": "^6.2.
|
|
36
|
-
"@loopback/eslint-config": "^10.0.
|
|
37
|
-
"@loopback/testlab": "^3.2.
|
|
35
|
+
"@loopback/build": "^6.2.5",
|
|
36
|
+
"@loopback/eslint-config": "^10.0.1",
|
|
37
|
+
"@loopback/testlab": "^3.2.7",
|
|
38
38
|
"@types/bluebird": "^3.5.32",
|
|
39
39
|
"@types/node": "^10.17.35",
|
|
40
40
|
"@types/uuid": "^8.3.0",
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"url": "https://github.com/strongloop/loopback-next.git",
|
|
61
61
|
"directory": "packages/context"
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "390f2794d10eea3d969ae417963af815ce1bc417"
|
|
64
64
|
}
|
package/src/binding.ts
CHANGED
|
@@ -58,6 +58,10 @@ export enum BindingScope {
|
|
|
58
58
|
TRANSIENT = 'Transient',
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
|
+
* @deprecated Finer-grained scopes such as `APPLICATION`, `SERVER`, or
|
|
62
|
+
* `REQUEST` should be used instead to ensure the scope of sharing of resolved
|
|
63
|
+
* binding values.
|
|
64
|
+
*
|
|
61
65
|
* The binding provides a value as a singleton within each local context. The
|
|
62
66
|
* value is calculated only once per context and cached for subsequential
|
|
63
67
|
* uses. Child contexts have their own value and do not share with their
|
|
@@ -79,6 +83,7 @@ export enum BindingScope {
|
|
|
79
83
|
* 3. `'b1'` is resolved in `app` but not in `req2`, a new value `2` is
|
|
80
84
|
* calculated and used for `req2` afterward
|
|
81
85
|
* - req2.get('b1') ==> 2 (always)
|
|
86
|
+
*
|
|
82
87
|
*/
|
|
83
88
|
CONTEXT = 'Context',
|
|
84
89
|
|
|
@@ -104,6 +109,62 @@ export enum BindingScope {
|
|
|
104
109
|
* - req2.get('b1') ==> 0 (always)
|
|
105
110
|
*/
|
|
106
111
|
SINGLETON = 'Singleton',
|
|
112
|
+
|
|
113
|
+
/*
|
|
114
|
+
* The following scopes are checked against the context hierarchy to find
|
|
115
|
+
* the first matching context for a given scope in the chain. Resolved binding
|
|
116
|
+
* values will be cached and shared on the scoped context. This ensures a
|
|
117
|
+
* binding to have the same value for the scoped context.
|
|
118
|
+
*/
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Application scope
|
|
122
|
+
*
|
|
123
|
+
* @remarks
|
|
124
|
+
* The binding provides an application-scoped value within the context
|
|
125
|
+
* hierarchy. Resolved value for this binding will be cached and shared for
|
|
126
|
+
* the same application context (denoted by its scope property set to
|
|
127
|
+
* `BindingScope.APPLICATION`).
|
|
128
|
+
*
|
|
129
|
+
*/
|
|
130
|
+
APPLICATION = 'Application',
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Server scope
|
|
134
|
+
*
|
|
135
|
+
* @remarks
|
|
136
|
+
* The binding provides an server-scoped value within the context hierarchy.
|
|
137
|
+
* Resolved value for this binding will be cached and shared for the same
|
|
138
|
+
* server context (denoted by its scope property set to
|
|
139
|
+
* `BindingScope.SERVER`).
|
|
140
|
+
*
|
|
141
|
+
* It's possible that an application has more than one servers configured,
|
|
142
|
+
* such as a `RestServer` and a `GrpcServer`. Both server contexts are created
|
|
143
|
+
* with `scope` set to `BindingScope.SERVER`. Depending on where a binding
|
|
144
|
+
* is resolved:
|
|
145
|
+
* - If the binding is resolved from the RestServer or below, it will be
|
|
146
|
+
* cached using the RestServer context as the key.
|
|
147
|
+
* - If the binding is resolved from the GrpcServer or below, it will be
|
|
148
|
+
* cached using the GrpcServer context as the key.
|
|
149
|
+
*
|
|
150
|
+
* The same binding can resolved/shared/cached for all servers, each of which
|
|
151
|
+
* has its own value for the binding.
|
|
152
|
+
*/
|
|
153
|
+
SERVER = 'Server',
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Request scope
|
|
157
|
+
*
|
|
158
|
+
* @remarks
|
|
159
|
+
* The binding provides an request-scoped value within the context hierarchy.
|
|
160
|
+
* Resolved value for this binding will be cached and shared for the same
|
|
161
|
+
* request context (denoted by its scope property set to
|
|
162
|
+
* `BindingScope.REQUEST`).
|
|
163
|
+
*
|
|
164
|
+
* The `REQUEST` scope is very useful for controllers, services and artifacts
|
|
165
|
+
* that want to have a single instance/value for a given request.
|
|
166
|
+
*/
|
|
167
|
+
REQUEST = 'Request',
|
|
107
168
|
}
|
|
108
169
|
|
|
109
170
|
/**
|
|
@@ -352,23 +413,18 @@ export class Binding<T = BoundValue> extends EventEmitter {
|
|
|
352
413
|
|
|
353
414
|
/**
|
|
354
415
|
* Cache the resolved value by the binding scope
|
|
355
|
-
* @param
|
|
416
|
+
* @param resolutionCtx - The resolution context
|
|
356
417
|
* @param result - The calculated value for the binding
|
|
357
418
|
*/
|
|
358
419
|
private _cacheValue(
|
|
359
|
-
|
|
420
|
+
resolutionCtx: Context,
|
|
360
421
|
result: ValueOrPromise<T>,
|
|
361
422
|
): ValueOrPromise<T> {
|
|
362
423
|
// Initialize the cache as a weakmap keyed by context
|
|
363
424
|
if (!this._cache) this._cache = new WeakMap<Context, ValueOrPromise<T>>();
|
|
364
|
-
if (this.scope
|
|
365
|
-
|
|
366
|
-
this._cache.set(ctx.getOwnerContext(this.key)!, result);
|
|
367
|
-
} else if (this.scope === BindingScope.CONTEXT) {
|
|
368
|
-
// Cache the value at the current context
|
|
369
|
-
this._cache.set(ctx, result);
|
|
425
|
+
if (this.scope !== BindingScope.TRANSIENT) {
|
|
426
|
+
this._cache.set(resolutionCtx!, result);
|
|
370
427
|
}
|
|
371
|
-
// Do not cache for `TRANSIENT`
|
|
372
428
|
return result;
|
|
373
429
|
}
|
|
374
430
|
|
|
@@ -383,7 +439,7 @@ export class Binding<T = BoundValue> extends EventEmitter {
|
|
|
383
439
|
|
|
384
440
|
/**
|
|
385
441
|
* Invalidate the binding cache so that its value will be reloaded next time.
|
|
386
|
-
* This is useful to force reloading a
|
|
442
|
+
* This is useful to force reloading a cached value when its configuration or
|
|
387
443
|
* dependencies are changed.
|
|
388
444
|
* **WARNING**: The state held in the cached value will be gone.
|
|
389
445
|
*
|
|
@@ -391,15 +447,11 @@ export class Binding<T = BoundValue> extends EventEmitter {
|
|
|
391
447
|
*/
|
|
392
448
|
refresh(ctx: Context) {
|
|
393
449
|
if (!this._cache) return;
|
|
394
|
-
if (this.scope
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
this._cache.delete(ownerCtx);
|
|
450
|
+
if (this.scope !== BindingScope.TRANSIENT) {
|
|
451
|
+
const resolutionCtx = ctx.getResolutionContext(this);
|
|
452
|
+
if (resolutionCtx != null) {
|
|
453
|
+
this._cache.delete(resolutionCtx);
|
|
399
454
|
}
|
|
400
|
-
} else if (this.scope === BindingScope.CONTEXT) {
|
|
401
|
-
// Cache the value at the current context
|
|
402
|
-
this._cache.delete(ctx);
|
|
403
455
|
}
|
|
404
456
|
}
|
|
405
457
|
|
|
@@ -451,22 +503,20 @@ export class Binding<T = BoundValue> extends EventEmitter {
|
|
|
451
503
|
if (debug.enabled) {
|
|
452
504
|
debug('Get value for binding %s', this.key);
|
|
453
505
|
}
|
|
506
|
+
|
|
507
|
+
const options = asResolutionOptions(optionsOrSession);
|
|
508
|
+
const resolutionCtx = this.getResolutionContext(ctx, options);
|
|
509
|
+
if (resolutionCtx == null) return undefined;
|
|
454
510
|
// First check cached value for non-transient
|
|
455
511
|
if (this._cache) {
|
|
456
|
-
if (this.scope
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
return this._cache.get(ownerCtx)!;
|
|
460
|
-
}
|
|
461
|
-
} else if (this.scope === BindingScope.CONTEXT) {
|
|
462
|
-
if (this._cache.has(ctx)) {
|
|
463
|
-
return this._cache.get(ctx)!;
|
|
512
|
+
if (this.scope !== BindingScope.TRANSIENT) {
|
|
513
|
+
if (resolutionCtx && this._cache.has(resolutionCtx)) {
|
|
514
|
+
return this._cache.get(resolutionCtx)!;
|
|
464
515
|
}
|
|
465
516
|
}
|
|
466
517
|
}
|
|
467
|
-
const
|
|
468
|
-
|
|
469
|
-
context: ctx,
|
|
518
|
+
const resolutionMetadata = {
|
|
519
|
+
context: resolutionCtx!,
|
|
470
520
|
binding: this,
|
|
471
521
|
options,
|
|
472
522
|
};
|
|
@@ -477,25 +527,62 @@ export class Binding<T = BoundValue> extends EventEmitter {
|
|
|
477
527
|
// We already test `this._getValue` is a function. It's safe to assert
|
|
478
528
|
// that `this._getValue` is not undefined.
|
|
479
529
|
return this._getValue!({
|
|
480
|
-
...
|
|
530
|
+
...resolutionMetadata,
|
|
481
531
|
options: optionsWithSession,
|
|
482
532
|
});
|
|
483
533
|
},
|
|
484
534
|
this,
|
|
485
535
|
options.session,
|
|
486
536
|
);
|
|
487
|
-
return this._cacheValue(
|
|
537
|
+
return this._cacheValue(resolutionCtx!, result);
|
|
488
538
|
}
|
|
489
539
|
// `@inject.binding` adds a binding without _getValue
|
|
490
540
|
if (options.optional) return undefined;
|
|
491
541
|
return Promise.reject(
|
|
492
542
|
new ResolutionError(
|
|
493
543
|
`No value was configured for binding ${this.key}.`,
|
|
494
|
-
|
|
544
|
+
resolutionMetadata,
|
|
495
545
|
),
|
|
496
546
|
);
|
|
497
547
|
}
|
|
498
548
|
|
|
549
|
+
/**
|
|
550
|
+
* Locate and validate the resolution context
|
|
551
|
+
* @param ctx - Current context
|
|
552
|
+
* @param options - Resolution options
|
|
553
|
+
*/
|
|
554
|
+
private getResolutionContext(ctx: Context, options: ResolutionOptions) {
|
|
555
|
+
const resolutionCtx = ctx.getResolutionContext(this);
|
|
556
|
+
switch (this.scope) {
|
|
557
|
+
case BindingScope.APPLICATION:
|
|
558
|
+
case BindingScope.SERVER:
|
|
559
|
+
case BindingScope.REQUEST:
|
|
560
|
+
if (resolutionCtx == null) {
|
|
561
|
+
const msg =
|
|
562
|
+
`Binding "${this.key}" in context "${ctx.name}" cannot` +
|
|
563
|
+
` be resolved in scope "${this.scope}"`;
|
|
564
|
+
if (options.optional) {
|
|
565
|
+
debug(msg);
|
|
566
|
+
return undefined;
|
|
567
|
+
}
|
|
568
|
+
throw new Error(msg);
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
const ownerCtx = ctx.getOwnerContext(this.key);
|
|
573
|
+
if (ownerCtx != null && !ownerCtx.isVisibleTo(resolutionCtx!)) {
|
|
574
|
+
const msg =
|
|
575
|
+
`Resolution context "${resolutionCtx?.name}" does not have ` +
|
|
576
|
+
`visibility to binding "${this.key} (scope:${this.scope})" in context "${ownerCtx.name}"`;
|
|
577
|
+
if (options.optional) {
|
|
578
|
+
debug(msg);
|
|
579
|
+
return undefined;
|
|
580
|
+
}
|
|
581
|
+
throw new Error(msg);
|
|
582
|
+
}
|
|
583
|
+
return resolutionCtx;
|
|
584
|
+
}
|
|
585
|
+
|
|
499
586
|
/**
|
|
500
587
|
* Lock the binding so that it cannot be rebound
|
|
501
588
|
*/
|
package/src/context.ts
CHANGED
|
@@ -5,7 +5,12 @@
|
|
|
5
5
|
|
|
6
6
|
import debugFactory, {Debugger} from 'debug';
|
|
7
7
|
import {EventEmitter} from 'events';
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
Binding,
|
|
10
|
+
BindingInspectOptions,
|
|
11
|
+
BindingScope,
|
|
12
|
+
BindingTag,
|
|
13
|
+
} from './binding';
|
|
9
14
|
import {
|
|
10
15
|
ConfigurationResolver,
|
|
11
16
|
DefaultConfigurationResolver,
|
|
@@ -91,6 +96,11 @@ export class Context extends EventEmitter {
|
|
|
91
96
|
*/
|
|
92
97
|
protected _debug: Debugger;
|
|
93
98
|
|
|
99
|
+
/**
|
|
100
|
+
* Scope for binding resolution
|
|
101
|
+
*/
|
|
102
|
+
scope: BindingScope = BindingScope.CONTEXT;
|
|
103
|
+
|
|
94
104
|
/**
|
|
95
105
|
* Create a new context.
|
|
96
106
|
*
|
|
@@ -467,17 +477,102 @@ export class Context extends EventEmitter {
|
|
|
467
477
|
}
|
|
468
478
|
|
|
469
479
|
/**
|
|
470
|
-
* Get the owning context for a binding key
|
|
471
|
-
* @param
|
|
480
|
+
* Get the owning context for a binding or its key
|
|
481
|
+
* @param keyOrBinding - Binding object or key
|
|
472
482
|
*/
|
|
473
|
-
getOwnerContext(
|
|
474
|
-
|
|
483
|
+
getOwnerContext(
|
|
484
|
+
keyOrBinding: BindingAddress | Readonly<Binding<unknown>>,
|
|
485
|
+
): Context | undefined {
|
|
486
|
+
let key: BindingAddress;
|
|
487
|
+
if (keyOrBinding instanceof Binding) {
|
|
488
|
+
key = keyOrBinding.key;
|
|
489
|
+
} else {
|
|
490
|
+
key = keyOrBinding as BindingAddress;
|
|
491
|
+
}
|
|
492
|
+
if (this.contains(key)) {
|
|
493
|
+
if (keyOrBinding instanceof Binding) {
|
|
494
|
+
// Check if the contained binding is the same
|
|
495
|
+
if (this.registry.get(key.toString()) === keyOrBinding) {
|
|
496
|
+
return this;
|
|
497
|
+
}
|
|
498
|
+
return undefined;
|
|
499
|
+
}
|
|
500
|
+
return this;
|
|
501
|
+
}
|
|
475
502
|
if (this._parent) {
|
|
476
503
|
return this._parent.getOwnerContext(key);
|
|
477
504
|
}
|
|
478
505
|
return undefined;
|
|
479
506
|
}
|
|
480
507
|
|
|
508
|
+
/**
|
|
509
|
+
* Get the context matching the scope
|
|
510
|
+
* @param scope - Binding scope
|
|
511
|
+
*/
|
|
512
|
+
getScopedContext(
|
|
513
|
+
scope:
|
|
514
|
+
| BindingScope.APPLICATION
|
|
515
|
+
| BindingScope.SERVER
|
|
516
|
+
| BindingScope.REQUEST,
|
|
517
|
+
): Context | undefined {
|
|
518
|
+
if (this.scope === scope) return this;
|
|
519
|
+
if (this._parent) {
|
|
520
|
+
return this._parent.getScopedContext(scope);
|
|
521
|
+
}
|
|
522
|
+
return undefined;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
/**
|
|
526
|
+
* Locate the resolution context for the given binding. Only bindings in the
|
|
527
|
+
* resolution context and its ancestors are visible as dependencies to resolve
|
|
528
|
+
* the given binding
|
|
529
|
+
* @param binding - Binding object
|
|
530
|
+
*/
|
|
531
|
+
getResolutionContext(
|
|
532
|
+
binding: Readonly<Binding<unknown>>,
|
|
533
|
+
): Context | undefined {
|
|
534
|
+
let resolutionCtx: Context | undefined;
|
|
535
|
+
switch (binding.scope) {
|
|
536
|
+
case BindingScope.SINGLETON:
|
|
537
|
+
// Use the owner context
|
|
538
|
+
return this.getOwnerContext(binding.key);
|
|
539
|
+
case BindingScope.TRANSIENT:
|
|
540
|
+
case BindingScope.CONTEXT:
|
|
541
|
+
// Use the current context
|
|
542
|
+
return this;
|
|
543
|
+
case BindingScope.REQUEST:
|
|
544
|
+
resolutionCtx = this.getScopedContext(binding.scope);
|
|
545
|
+
if (resolutionCtx != null) {
|
|
546
|
+
return resolutionCtx;
|
|
547
|
+
} else {
|
|
548
|
+
// If no `REQUEST` scope exists in the chain, fall back to the current
|
|
549
|
+
// context
|
|
550
|
+
this.debug(
|
|
551
|
+
'No context is found for binding "%s (scope=%s)". Fall back to the current context.',
|
|
552
|
+
binding.key,
|
|
553
|
+
binding.scope,
|
|
554
|
+
);
|
|
555
|
+
return this;
|
|
556
|
+
}
|
|
557
|
+
default:
|
|
558
|
+
// Use the scoped context
|
|
559
|
+
return this.getScopedContext(binding.scope);
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
* Check if this context is visible (same or ancestor) to the given one
|
|
565
|
+
* @param ctx - Another context object
|
|
566
|
+
*/
|
|
567
|
+
isVisibleTo(ctx: Context) {
|
|
568
|
+
let current: Context | undefined = ctx;
|
|
569
|
+
while (current != null) {
|
|
570
|
+
if (current === this) return true;
|
|
571
|
+
current = current._parent;
|
|
572
|
+
}
|
|
573
|
+
return false;
|
|
574
|
+
}
|
|
575
|
+
|
|
481
576
|
/**
|
|
482
577
|
* Find bindings using a key pattern or filter function
|
|
483
578
|
* @param pattern - A filter function, a regexp or a wildcard pattern with
|
package/src/interceptor-chain.ts
CHANGED
|
@@ -29,6 +29,7 @@ export type Next = () => ValueOrPromise<NonVoid>;
|
|
|
29
29
|
* It serves as the base interface for various types of interceptors, such
|
|
30
30
|
* as method invocation interceptor or request/response processing interceptor.
|
|
31
31
|
*
|
|
32
|
+
* @remarks
|
|
32
33
|
* We choose `NonVoid` as the return type to avoid possible bugs that an
|
|
33
34
|
* interceptor forgets to return the value from `next()`. For example, the code
|
|
34
35
|
* below will fail to compile.
|
package/src/resolver.ts
CHANGED
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
import {DecoratorFactory} from '@loopback/metadata';
|
|
7
7
|
import assert from 'assert';
|
|
8
8
|
import debugModule from 'debug';
|
|
9
|
-
import {BindingScope} from './binding';
|
|
10
9
|
import {isBindingAddress} from './binding-filter';
|
|
11
10
|
import {BindingAddress} from './binding-key';
|
|
12
11
|
import {Context} from './context';
|
|
@@ -98,11 +97,8 @@ function resolveContext(
|
|
|
98
97
|
session?: ResolutionSession,
|
|
99
98
|
) {
|
|
100
99
|
const currentBinding = session?.currentBinding;
|
|
101
|
-
if (
|
|
102
|
-
|
|
103
|
-
currentBinding.scope !== BindingScope.SINGLETON
|
|
104
|
-
) {
|
|
105
|
-
// No current binding or its scope is not `SINGLETON`
|
|
100
|
+
if (currentBinding == null) {
|
|
101
|
+
// No current binding
|
|
106
102
|
return ctx;
|
|
107
103
|
}
|
|
108
104
|
|
|
@@ -113,9 +109,9 @@ function resolveContext(
|
|
|
113
109
|
typeof injection.methodDescriptorOrParameterIndex !== 'number';
|
|
114
110
|
|
|
115
111
|
if (isConstructorOrPropertyInjection) {
|
|
116
|
-
// Set context to the
|
|
117
|
-
// or property injections against a singleton
|
|
118
|
-
ctx = ctx.
|
|
112
|
+
// Set context to the resolution context of the current binding for
|
|
113
|
+
// constructor or property injections against a singleton
|
|
114
|
+
ctx = ctx.getResolutionContext(currentBinding)!;
|
|
119
115
|
}
|
|
120
116
|
return ctx;
|
|
121
117
|
}
|