@loopback/context 1.8.1 → 1.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 +58 -0
- package/dist/binding-filter.d.ts +28 -1
- package/dist/binding-filter.js.map +1 -1
- package/dist/binding.d.ts +36 -6
- package/dist/binding.js +65 -38
- package/dist/binding.js.map +1 -1
- package/dist/context-view.d.ts +7 -0
- package/dist/context-view.js +15 -2
- package/dist/context-view.js.map +1 -1
- package/dist/context.d.ts +38 -15
- package/dist/context.js +52 -8
- package/dist/context.js.map +1 -1
- package/dist/inject.d.ts +61 -7
- package/dist/inject.js +93 -46
- package/dist/inject.js.map +1 -1
- package/dist/resolution-session.d.ts +17 -4
- package/dist/resolution-session.js +16 -4
- package/dist/resolution-session.js.map +1 -1
- package/dist/resolver.js +2 -2
- package/dist/resolver.js.map +1 -1
- package/package.json +9 -9
- package/src/binding-filter.ts +29 -1
- package/src/binding.ts +101 -23
- package/src/context-view.ts +20 -3
- package/src/context.ts +85 -29
- package/src/inject.ts +145 -70
- package/src/resolution-session.ts +25 -10
- package/src/resolver.ts +8 -2
package/dist/context.js
CHANGED
|
@@ -11,7 +11,7 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
|
11
11
|
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
const
|
|
14
|
+
const debugFactory = require("debug");
|
|
15
15
|
const events_1 = require("events");
|
|
16
16
|
const uuid_1 = require("uuid");
|
|
17
17
|
const binding_1 = require("./binding");
|
|
@@ -28,9 +28,13 @@ if (!Symbol.asyncIterator) {
|
|
|
28
28
|
// tslint:disable-next-line:no-any
|
|
29
29
|
Symbol.asyncIterator = Symbol.for('Symbol.asyncIterator');
|
|
30
30
|
}
|
|
31
|
-
|
|
31
|
+
/**
|
|
32
|
+
* WARNING: This following import must happen after the polyfill. The
|
|
33
|
+
* `auto-import` by an IDE such as VSCode may move the import before the
|
|
34
|
+
* polyfill. It must be then fixed manually.
|
|
35
|
+
*/
|
|
32
36
|
const p_event_1 = require("p-event");
|
|
33
|
-
const debug =
|
|
37
|
+
const debug = debugFactory('loopback:context');
|
|
34
38
|
/**
|
|
35
39
|
* Context provides an implementation of Inversion of Control (IoC) container
|
|
36
40
|
*/
|
|
@@ -502,6 +506,29 @@ class Context extends events_1.EventEmitter {
|
|
|
502
506
|
return undefined;
|
|
503
507
|
throw new Error(`The key '${key}' is not bound to any value in context ${this.name}`);
|
|
504
508
|
}
|
|
509
|
+
/**
|
|
510
|
+
* Find or create a binding for the given key
|
|
511
|
+
* @param key Binding address
|
|
512
|
+
* @param policy Binding creation policy
|
|
513
|
+
*/
|
|
514
|
+
findOrCreateBinding(key, policy) {
|
|
515
|
+
let binding;
|
|
516
|
+
if (policy === BindingCreationPolicy.ALWAYS_CREATE) {
|
|
517
|
+
binding = this.bind(key);
|
|
518
|
+
}
|
|
519
|
+
else if (policy === BindingCreationPolicy.NEVER_CREATE) {
|
|
520
|
+
binding = this.getBinding(key);
|
|
521
|
+
}
|
|
522
|
+
else if (this.isBound(key)) {
|
|
523
|
+
// CREATE_IF_NOT_BOUND - the key is bound
|
|
524
|
+
binding = this.getBinding(key);
|
|
525
|
+
}
|
|
526
|
+
else {
|
|
527
|
+
// CREATE_IF_NOT_BOUND - the key is not bound
|
|
528
|
+
binding = this.bind(key);
|
|
529
|
+
}
|
|
530
|
+
return binding;
|
|
531
|
+
}
|
|
505
532
|
/**
|
|
506
533
|
* Get the value bound to the given key.
|
|
507
534
|
*
|
|
@@ -531,14 +558,11 @@ class Context extends events_1.EventEmitter {
|
|
|
531
558
|
*/
|
|
532
559
|
getValueOrPromise(keyWithPath, optionsOrSession) {
|
|
533
560
|
const { key, propertyPath } = binding_key_1.BindingKey.parseKeyWithPath(keyWithPath);
|
|
534
|
-
|
|
535
|
-
if (optionsOrSession instanceof resolution_session_1.ResolutionSession) {
|
|
536
|
-
optionsOrSession = { session: optionsOrSession };
|
|
537
|
-
}
|
|
561
|
+
optionsOrSession = resolution_session_1.asResolutionOptions(optionsOrSession);
|
|
538
562
|
const binding = this.getBinding(key, optionsOrSession);
|
|
539
563
|
if (binding == null)
|
|
540
564
|
return undefined;
|
|
541
|
-
const boundValue = binding.getValue(this, optionsOrSession
|
|
565
|
+
const boundValue = binding.getValue(this, optionsOrSession);
|
|
542
566
|
if (propertyPath === undefined || propertyPath === '') {
|
|
543
567
|
return boundValue;
|
|
544
568
|
}
|
|
@@ -576,4 +600,24 @@ class ContextSubscription {
|
|
|
576
600
|
return this._closed;
|
|
577
601
|
}
|
|
578
602
|
}
|
|
603
|
+
/**
|
|
604
|
+
* Policy to control if a binding should be created for the context
|
|
605
|
+
*/
|
|
606
|
+
var BindingCreationPolicy;
|
|
607
|
+
(function (BindingCreationPolicy) {
|
|
608
|
+
/**
|
|
609
|
+
* Always create a binding with the key for the context
|
|
610
|
+
*/
|
|
611
|
+
BindingCreationPolicy["ALWAYS_CREATE"] = "Always";
|
|
612
|
+
/**
|
|
613
|
+
* Never create a binding for the context. If the key is not bound in the
|
|
614
|
+
* context, throw an error.
|
|
615
|
+
*/
|
|
616
|
+
BindingCreationPolicy["NEVER_CREATE"] = "Never";
|
|
617
|
+
/**
|
|
618
|
+
* Create a binding if the key is not bound in the context. Otherwise, return
|
|
619
|
+
* the existing binding.
|
|
620
|
+
*/
|
|
621
|
+
BindingCreationPolicy["CREATE_IF_NOT_BOUND"] = "IfNotBound";
|
|
622
|
+
})(BindingCreationPolicy = exports.BindingCreationPolicy || (exports.BindingCreationPolicy = {}));
|
|
579
623
|
//# sourceMappingURL=context.js.map
|
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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"}
|
package/dist/inject.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { MetadataMap } from '@loopback/metadata';
|
|
2
2
|
import { BindingFilter, BindingSelector } from './binding-filter';
|
|
3
3
|
import { BindingAddress } from './binding-key';
|
|
4
|
-
import { Context } from './context';
|
|
4
|
+
import { BindingCreationPolicy, Context } from './context';
|
|
5
5
|
import { ResolutionSession } from './resolution-session';
|
|
6
6
|
import { BoundValue, ValueOrPromise } from './value-promise';
|
|
7
7
|
/**
|
|
8
8
|
* A function to provide resolution of injected values
|
|
9
9
|
*/
|
|
10
10
|
export interface ResolverFunction {
|
|
11
|
-
(ctx: Context, injection: Readonly<Injection>, session
|
|
11
|
+
(ctx: Context, injection: Readonly<Injection>, session: ResolutionSession): ValueOrPromise<BoundValue>;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* An object to provide metadata for `@inject`
|
|
@@ -36,7 +36,7 @@ export interface Injection<ValueType = BoundValue> {
|
|
|
36
36
|
member?: string;
|
|
37
37
|
methodDescriptorOrParameterIndex?: TypedPropertyDescriptor<ValueType> | number;
|
|
38
38
|
bindingSelector: BindingSelector<ValueType>;
|
|
39
|
-
metadata
|
|
39
|
+
metadata: InjectionMetadata;
|
|
40
40
|
resolve?: ResolverFunction;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
@@ -67,7 +67,9 @@ export interface Injection<ValueType = BoundValue> {
|
|
|
67
67
|
*/
|
|
68
68
|
export declare function inject(bindingSelector: BindingSelector, metadata?: InjectionMetadata, resolve?: ResolverFunction): (target: Object, member: string, methodDescriptorOrParameterIndex?: number | TypedPropertyDescriptor<any> | undefined) => void;
|
|
69
69
|
/**
|
|
70
|
-
* The function injected by `@inject.getter(bindingSelector)`.
|
|
70
|
+
* The function injected by `@inject.getter(bindingSelector)`. It can be used
|
|
71
|
+
* to fetch bound value(s) from the underlying binding(s). The return value will
|
|
72
|
+
* be an array if the `bindingSelector` is a `BindingFilter` function.
|
|
71
73
|
*/
|
|
72
74
|
export declare type Getter<T> = () => Promise<T>;
|
|
73
75
|
export declare namespace Getter {
|
|
@@ -78,9 +80,26 @@ export declare namespace Getter {
|
|
|
78
80
|
function fromValue<T>(value: T): Getter<T>;
|
|
79
81
|
}
|
|
80
82
|
/**
|
|
81
|
-
* The function injected by `@inject.setter(
|
|
83
|
+
* The function injected by `@inject.setter(bindingKey)`. It sets the underlying
|
|
84
|
+
* binding to a constant value using `binding.to(value)`.
|
|
85
|
+
*
|
|
86
|
+
* For example:
|
|
87
|
+
*
|
|
88
|
+
* ```ts
|
|
89
|
+
* setterFn('my-value');
|
|
90
|
+
* ```
|
|
91
|
+
* @param value The value for the underlying binding
|
|
82
92
|
*/
|
|
83
93
|
export declare type Setter<T> = (value: T) => void;
|
|
94
|
+
/**
|
|
95
|
+
* Metadata for `@inject.binding`
|
|
96
|
+
*/
|
|
97
|
+
export interface InjectBindingMetadata extends InjectionMetadata {
|
|
98
|
+
/**
|
|
99
|
+
* Controls how the underlying binding is resolved/created
|
|
100
|
+
*/
|
|
101
|
+
bindingCreation?: BindingCreationPolicy;
|
|
102
|
+
}
|
|
84
103
|
export declare namespace inject {
|
|
85
104
|
/**
|
|
86
105
|
* Inject a function for getting the actual bound value.
|
|
@@ -110,11 +129,37 @@ export declare namespace inject {
|
|
|
110
129
|
* @param bindingKey The key of the value we want to set.
|
|
111
130
|
* @param metadata Optional metadata to help the injection
|
|
112
131
|
*/
|
|
113
|
-
const setter: (bindingKey: BindingAddress<unknown>, metadata?:
|
|
132
|
+
const setter: (bindingKey: BindingAddress<unknown>, metadata?: InjectBindingMetadata | undefined) => (target: Object, member: string, methodDescriptorOrParameterIndex?: number | TypedPropertyDescriptor<any> | undefined) => void;
|
|
133
|
+
/**
|
|
134
|
+
* Inject the binding object for the given key. This is useful if a binding
|
|
135
|
+
* needs to be set up beyond just a constant value allowed by
|
|
136
|
+
* `@inject.setter`. The injected binding is found or created based on the
|
|
137
|
+
* `metadata.bindingCreation` option. See `BindingCreationPolicy` for more
|
|
138
|
+
* details.
|
|
139
|
+
*
|
|
140
|
+
* For example:
|
|
141
|
+
*
|
|
142
|
+
* ```ts
|
|
143
|
+
* class MyAuthAction {
|
|
144
|
+
* @inject.binding('current-user', {
|
|
145
|
+
* bindingCreation: BindingCreationPolicy.ALWAYS_CREATE,
|
|
146
|
+
* })
|
|
147
|
+
* private userBinding: Binding<UserProfile>;
|
|
148
|
+
*
|
|
149
|
+
* async authenticate() {
|
|
150
|
+
* this.userBinding.toDynamicValue(() => {...});
|
|
151
|
+
* }
|
|
152
|
+
* }
|
|
153
|
+
* ```
|
|
154
|
+
*
|
|
155
|
+
* @param bindingKey Binding key
|
|
156
|
+
* @param metadata Metadata for the injection
|
|
157
|
+
*/
|
|
158
|
+
const binding: (bindingKey: BindingAddress<unknown>, metadata?: InjectBindingMetadata | undefined) => (target: Object, member: string, methodDescriptorOrParameterIndex?: number | TypedPropertyDescriptor<any> | undefined) => void;
|
|
114
159
|
/**
|
|
115
160
|
* Inject an array of values by a tag pattern string or regexp
|
|
116
161
|
*
|
|
117
|
-
*
|
|
162
|
+
* For example,
|
|
118
163
|
* ```ts
|
|
119
164
|
* class AuthenticationManager {
|
|
120
165
|
* constructor(
|
|
@@ -151,6 +196,15 @@ export declare namespace inject {
|
|
|
151
196
|
*/
|
|
152
197
|
const context: () => (target: Object, member: string, methodDescriptorOrParameterIndex?: number | TypedPropertyDescriptor<any> | undefined) => void;
|
|
153
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Assert the target type inspected from TypeScript for injection to be the
|
|
201
|
+
* expected type. If the types don't match, an error is thrown.
|
|
202
|
+
* @param injection Injection information
|
|
203
|
+
* @param expectedType Expected type
|
|
204
|
+
* @param expectedTypeName Name of the expected type to be used in the error
|
|
205
|
+
* @returns The name of the target
|
|
206
|
+
*/
|
|
207
|
+
export declare function assertTargetType(injection: Readonly<Injection>, expectedType: Function, expectedTypeName?: string): string | undefined;
|
|
154
208
|
/**
|
|
155
209
|
* Return an array of injection objects for parameters
|
|
156
210
|
* @param target The target class for constructor or static methods,
|
package/dist/inject.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const metadata_1 = require("@loopback/metadata");
|
|
8
|
+
const binding_1 = require("./binding");
|
|
8
9
|
const binding_filter_1 = require("./binding-filter");
|
|
9
10
|
const context_view_1 = require("./context-view");
|
|
10
11
|
const resolution_session_1 = require("./resolution-session");
|
|
@@ -40,7 +41,7 @@ function inject(bindingSelector, metadata, resolve) {
|
|
|
40
41
|
if (typeof bindingSelector === 'function' && !resolve) {
|
|
41
42
|
resolve = resolveValuesByFilter;
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
+
const injectionMetadata = Object.assign({ decorator: '@inject' }, metadata);
|
|
44
45
|
return function markParameterOrPropertyAsInjected(target, member, methodDescriptorOrParameterIndex) {
|
|
45
46
|
if (typeof methodDescriptorOrParameterIndex === 'number') {
|
|
46
47
|
// The decorator is applied to a method parameter
|
|
@@ -50,7 +51,7 @@ function inject(bindingSelector, metadata, resolve) {
|
|
|
50
51
|
member,
|
|
51
52
|
methodDescriptorOrParameterIndex,
|
|
52
53
|
bindingSelector,
|
|
53
|
-
metadata,
|
|
54
|
+
metadata: injectionMetadata,
|
|
54
55
|
resolve,
|
|
55
56
|
},
|
|
56
57
|
// Do not deep clone the spec as only metadata is mutable and it's
|
|
@@ -74,7 +75,7 @@ function inject(bindingSelector, metadata, resolve) {
|
|
|
74
75
|
member,
|
|
75
76
|
methodDescriptorOrParameterIndex,
|
|
76
77
|
bindingSelector,
|
|
77
|
-
metadata,
|
|
78
|
+
metadata: injectionMetadata,
|
|
78
79
|
resolve,
|
|
79
80
|
},
|
|
80
81
|
// Do not deep clone the spec as only metadata is mutable and it's
|
|
@@ -139,10 +140,39 @@ var Getter;
|
|
|
139
140
|
metadata = Object.assign({ decorator: '@inject.setter' }, metadata);
|
|
140
141
|
return inject(bindingKey, metadata, resolveAsSetter);
|
|
141
142
|
};
|
|
143
|
+
/**
|
|
144
|
+
* Inject the binding object for the given key. This is useful if a binding
|
|
145
|
+
* needs to be set up beyond just a constant value allowed by
|
|
146
|
+
* `@inject.setter`. The injected binding is found or created based on the
|
|
147
|
+
* `metadata.bindingCreation` option. See `BindingCreationPolicy` for more
|
|
148
|
+
* details.
|
|
149
|
+
*
|
|
150
|
+
* For example:
|
|
151
|
+
*
|
|
152
|
+
* ```ts
|
|
153
|
+
* class MyAuthAction {
|
|
154
|
+
* @inject.binding('current-user', {
|
|
155
|
+
* bindingCreation: BindingCreationPolicy.ALWAYS_CREATE,
|
|
156
|
+
* })
|
|
157
|
+
* private userBinding: Binding<UserProfile>;
|
|
158
|
+
*
|
|
159
|
+
* async authenticate() {
|
|
160
|
+
* this.userBinding.toDynamicValue(() => {...});
|
|
161
|
+
* }
|
|
162
|
+
* }
|
|
163
|
+
* ```
|
|
164
|
+
*
|
|
165
|
+
* @param bindingKey Binding key
|
|
166
|
+
* @param metadata Metadata for the injection
|
|
167
|
+
*/
|
|
168
|
+
inject.binding = function injectBinding(bindingKey, metadata) {
|
|
169
|
+
metadata = Object.assign({ decorator: '@inject.binding' }, metadata);
|
|
170
|
+
return inject(bindingKey, metadata, resolveAsBinding);
|
|
171
|
+
};
|
|
142
172
|
/**
|
|
143
173
|
* Inject an array of values by a tag pattern string or regexp
|
|
144
174
|
*
|
|
145
|
-
*
|
|
175
|
+
* For example,
|
|
146
176
|
* ```ts
|
|
147
177
|
* class AuthenticationManager {
|
|
148
178
|
* constructor(
|
|
@@ -187,41 +217,73 @@ var Getter;
|
|
|
187
217
|
return inject('', { decorator: '@inject.context' }, ctx => ctx);
|
|
188
218
|
};
|
|
189
219
|
})(inject = exports.inject || (exports.inject = {}));
|
|
220
|
+
/**
|
|
221
|
+
* Assert the target type inspected from TypeScript for injection to be the
|
|
222
|
+
* expected type. If the types don't match, an error is thrown.
|
|
223
|
+
* @param injection Injection information
|
|
224
|
+
* @param expectedType Expected type
|
|
225
|
+
* @param expectedTypeName Name of the expected type to be used in the error
|
|
226
|
+
* @returns The name of the target
|
|
227
|
+
*/
|
|
228
|
+
function assertTargetType(injection, expectedType, expectedTypeName) {
|
|
229
|
+
const targetName = resolution_session_1.ResolutionSession.describeInjection(injection).targetName;
|
|
230
|
+
const targetType = inspectTargetType(injection);
|
|
231
|
+
if (targetType && targetType !== expectedType) {
|
|
232
|
+
expectedTypeName = expectedTypeName || expectedType.name;
|
|
233
|
+
throw new Error(`The type of ${targetName} (${targetType.name}) is not ${expectedTypeName}`);
|
|
234
|
+
}
|
|
235
|
+
return targetName;
|
|
236
|
+
}
|
|
237
|
+
exports.assertTargetType = assertTargetType;
|
|
238
|
+
/**
|
|
239
|
+
* Resolver for `@inject.getter`
|
|
240
|
+
* @param ctx
|
|
241
|
+
* @param injection
|
|
242
|
+
* @param session
|
|
243
|
+
*/
|
|
190
244
|
function resolveAsGetter(ctx, injection, session) {
|
|
191
|
-
|
|
245
|
+
assertTargetType(injection, Function, 'Getter function');
|
|
192
246
|
const bindingSelector = injection.bindingSelector;
|
|
193
247
|
// We need to clone the session for the getter as it will be resolved later
|
|
194
|
-
|
|
248
|
+
const forkedSession = resolution_session_1.ResolutionSession.fork(session);
|
|
195
249
|
return function getter() {
|
|
196
250
|
return ctx.get(bindingSelector, {
|
|
197
|
-
session,
|
|
198
|
-
optional: injection.metadata
|
|
251
|
+
session: forkedSession,
|
|
252
|
+
optional: injection.metadata.optional,
|
|
199
253
|
});
|
|
200
254
|
};
|
|
201
255
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
throw new Error(`The type of ${targetName} (${targetType.name}) is not a Getter function`);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
256
|
+
/**
|
|
257
|
+
* Resolver for `@inject.setter`
|
|
258
|
+
* @param ctx
|
|
259
|
+
* @param injection
|
|
260
|
+
*/
|
|
210
261
|
function resolveAsSetter(ctx, injection) {
|
|
211
|
-
const
|
|
212
|
-
const targetName = resolution_session_1.ResolutionSession.describeInjection(injection).targetName;
|
|
213
|
-
if (targetType && targetType !== Function) {
|
|
214
|
-
throw new Error(`The type of ${targetName} (${targetType.name}) is not a Setter function`);
|
|
215
|
-
}
|
|
262
|
+
const targetName = assertTargetType(injection, Function, 'Setter function');
|
|
216
263
|
const bindingSelector = injection.bindingSelector;
|
|
217
264
|
if (!binding_filter_1.isBindingAddress(bindingSelector)) {
|
|
218
|
-
throw new Error(`@inject.setter
|
|
265
|
+
throw new Error(`@inject.setter (${targetName}) does not allow BindingFilter.`);
|
|
219
266
|
}
|
|
220
267
|
// No resolution session should be propagated into the setter
|
|
221
268
|
return function setter(value) {
|
|
222
|
-
ctx
|
|
269
|
+
const binding = findOrCreateBindingForInjection(ctx, injection);
|
|
270
|
+
binding.to(value);
|
|
223
271
|
};
|
|
224
272
|
}
|
|
273
|
+
function resolveAsBinding(ctx, injection) {
|
|
274
|
+
const targetName = assertTargetType(injection, binding_1.Binding);
|
|
275
|
+
const bindingSelector = injection.bindingSelector;
|
|
276
|
+
if (!binding_filter_1.isBindingAddress(bindingSelector)) {
|
|
277
|
+
throw new Error(`@inject.binding (${targetName}) does not allow BindingFilter.`);
|
|
278
|
+
}
|
|
279
|
+
return findOrCreateBindingForInjection(ctx, injection);
|
|
280
|
+
}
|
|
281
|
+
function findOrCreateBindingForInjection(ctx, injection) {
|
|
282
|
+
const bindingCreation = injection.metadata &&
|
|
283
|
+
injection.metadata.bindingCreation;
|
|
284
|
+
const binding = ctx.findOrCreateBinding(injection.bindingSelector, bindingCreation);
|
|
285
|
+
return binding;
|
|
286
|
+
}
|
|
225
287
|
/**
|
|
226
288
|
* Return an array of injection objects for parameters
|
|
227
289
|
* @param target The target class for constructor or static methods,
|
|
@@ -248,8 +310,9 @@ function describeInjectedArguments(target, method) {
|
|
|
248
310
|
}
|
|
249
311
|
exports.describeInjectedArguments = describeInjectedArguments;
|
|
250
312
|
/**
|
|
251
|
-
* Inspect the target type
|
|
252
|
-
*
|
|
313
|
+
* Inspect the target type for the injection to find out the corresponding
|
|
314
|
+
* JavaScript type
|
|
315
|
+
* @param injection Injection information
|
|
253
316
|
*/
|
|
254
317
|
function inspectTargetType(injection) {
|
|
255
318
|
let type = metadata_1.MetadataInspector.getDesignTypeForProperty(injection.target, injection.member);
|
|
@@ -268,19 +331,11 @@ function inspectTargetType(injection) {
|
|
|
268
331
|
* @param session Resolution session
|
|
269
332
|
*/
|
|
270
333
|
function resolveValuesByFilter(ctx, injection, session) {
|
|
271
|
-
|
|
334
|
+
assertTargetType(injection, Array);
|
|
272
335
|
const bindingFilter = injection.bindingSelector;
|
|
273
336
|
const view = new context_view_1.ContextView(ctx, bindingFilter);
|
|
274
337
|
return view.resolve(session);
|
|
275
338
|
}
|
|
276
|
-
function assertTargetIsArray(injection) {
|
|
277
|
-
const targetType = inspectTargetType(injection);
|
|
278
|
-
if (targetType !== Array) {
|
|
279
|
-
const targetName = resolution_session_1.ResolutionSession.describeInjection(injection)
|
|
280
|
-
.targetName;
|
|
281
|
-
throw new Error(`The type of ${targetName} (${targetType.name}) is not Array`);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
339
|
/**
|
|
285
340
|
* Resolve to a getter function that returns an array of bound values matching
|
|
286
341
|
* the filter function for `@inject.getter`.
|
|
@@ -290,26 +345,18 @@ function assertTargetIsArray(injection) {
|
|
|
290
345
|
* @param session Resolution session
|
|
291
346
|
*/
|
|
292
347
|
function resolveAsGetterByFilter(ctx, injection, session) {
|
|
293
|
-
|
|
348
|
+
assertTargetType(injection, Function, 'Getter function');
|
|
294
349
|
const bindingFilter = injection.bindingSelector;
|
|
295
|
-
|
|
296
|
-
view.open();
|
|
297
|
-
return view.asGetter(session);
|
|
350
|
+
return context_view_1.createViewGetter(ctx, bindingFilter, session);
|
|
298
351
|
}
|
|
299
352
|
/**
|
|
300
353
|
* Resolve to an instance of `ContextView` by the binding filter function
|
|
301
354
|
* for `@inject.view`
|
|
302
355
|
* @param ctx Context object
|
|
303
356
|
* @param injection Injection information
|
|
304
|
-
* @param session Resolution session
|
|
305
357
|
*/
|
|
306
|
-
function resolveAsContextView(ctx, injection
|
|
307
|
-
|
|
308
|
-
if (targetType && targetType !== context_view_1.ContextView) {
|
|
309
|
-
const targetName = resolution_session_1.ResolutionSession.describeInjection(injection)
|
|
310
|
-
.targetName;
|
|
311
|
-
throw new Error(`The type of ${targetName} (${targetType.name}) is not ContextView`);
|
|
312
|
-
}
|
|
358
|
+
function resolveAsContextView(ctx, injection) {
|
|
359
|
+
assertTargetType(injection, context_view_1.ContextView);
|
|
313
360
|
const bindingFilter = injection.bindingSelector;
|
|
314
361
|
const view = new context_view_1.ContextView(ctx, bindingFilter);
|
|
315
362
|
view.open();
|
package/dist/inject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,iCAAiC;AACjC,+CAA+C;AAC/C,gEAAgE;;AAEhE,iDAQ4B;
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Binding } from './binding';
|
|
2
2
|
import { Injection } from './inject';
|
|
3
|
-
import {
|
|
3
|
+
import { BoundValue, ValueOrPromise } from './value-promise';
|
|
4
4
|
/**
|
|
5
5
|
* A function to be executed with the resolution session
|
|
6
6
|
*/
|
|
7
|
-
export declare type ResolutionAction = (session
|
|
7
|
+
export declare type ResolutionAction = (session: ResolutionSession) => ValueOrPromise<BoundValue>;
|
|
8
8
|
/**
|
|
9
9
|
* Wrapper for bindings tracked by resolution sessions
|
|
10
10
|
*/
|
|
@@ -71,10 +71,14 @@ export declare class ResolutionSession {
|
|
|
71
71
|
* @param injection Injection object
|
|
72
72
|
*/
|
|
73
73
|
static describeInjection(injection?: Readonly<Injection>): {
|
|
74
|
+
targetName?: undefined;
|
|
75
|
+
bindingSelector?: undefined;
|
|
76
|
+
metadata?: undefined;
|
|
77
|
+
} | {
|
|
74
78
|
targetName: string;
|
|
75
|
-
|
|
79
|
+
bindingSelector: import("./binding-filter").BindingSelector<any>;
|
|
76
80
|
metadata: Object;
|
|
77
|
-
}
|
|
81
|
+
};
|
|
78
82
|
/**
|
|
79
83
|
* Push the injection onto the session
|
|
80
84
|
* @param injection Injection The current injection
|
|
@@ -140,3 +144,12 @@ export interface ResolutionOptions {
|
|
|
140
144
|
*/
|
|
141
145
|
optional?: boolean;
|
|
142
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Resolution options or session
|
|
149
|
+
*/
|
|
150
|
+
export declare type ResolutionOptionsOrSession = ResolutionOptions | ResolutionSession;
|
|
151
|
+
/**
|
|
152
|
+
* Normalize ResolutionOptionsOrSession to ResolutionOptions
|
|
153
|
+
* @param optionsOrSession resolution options or session
|
|
154
|
+
*/
|
|
155
|
+
export declare function asResolutionOptions(optionsOrSession?: ResolutionOptionsOrSession): ResolutionOptions;
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
// This file is licensed under the MIT License.
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const value_promise_1 = require("./value-promise");
|
|
8
|
-
const debugModule = require("debug");
|
|
9
7
|
const metadata_1 = require("@loopback/metadata");
|
|
8
|
+
const debugModule = require("debug");
|
|
9
|
+
const value_promise_1 = require("./value-promise");
|
|
10
10
|
const debugSession = debugModule('loopback:context:resolver:session');
|
|
11
11
|
const getTargetName = metadata_1.DecoratorFactory.getTargetName;
|
|
12
12
|
/**
|
|
@@ -95,11 +95,11 @@ class ResolutionSession {
|
|
|
95
95
|
static describeInjection(injection) {
|
|
96
96
|
/* istanbul ignore if */
|
|
97
97
|
if (injection == null)
|
|
98
|
-
return
|
|
98
|
+
return {};
|
|
99
99
|
const name = getTargetName(injection.target, injection.member, injection.methodDescriptorOrParameterIndex);
|
|
100
100
|
return {
|
|
101
101
|
targetName: name,
|
|
102
|
-
|
|
102
|
+
bindingSelector: injection.bindingSelector,
|
|
103
103
|
// Cast to Object so that we don't have to expose InjectionMetadata
|
|
104
104
|
metadata: injection.metadata,
|
|
105
105
|
};
|
|
@@ -238,4 +238,16 @@ class ResolutionSession {
|
|
|
238
238
|
}
|
|
239
239
|
}
|
|
240
240
|
exports.ResolutionSession = ResolutionSession;
|
|
241
|
+
/**
|
|
242
|
+
* Normalize ResolutionOptionsOrSession to ResolutionOptions
|
|
243
|
+
* @param optionsOrSession resolution options or session
|
|
244
|
+
*/
|
|
245
|
+
function asResolutionOptions(optionsOrSession) {
|
|
246
|
+
// backwards compatibility
|
|
247
|
+
if (optionsOrSession instanceof ResolutionSession) {
|
|
248
|
+
return { session: optionsOrSession };
|
|
249
|
+
}
|
|
250
|
+
return optionsOrSession || {};
|
|
251
|
+
}
|
|
252
|
+
exports.asResolutionOptions = asResolutionOptions;
|
|
241
253
|
//# sourceMappingURL=resolution-session.js.map
|