@loopback/context 3.8.2 → 3.9.3

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.
Files changed (42) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/binding-inspector.js +1 -1
  3. package/dist/binding-inspector.js.map +1 -1
  4. package/dist/binding-key.d.ts +5 -1
  5. package/dist/binding-key.js +104 -103
  6. package/dist/binding-key.js.map +1 -1
  7. package/dist/binding.d.ts +20 -2
  8. package/dist/binding.js +26 -16
  9. package/dist/binding.js.map +1 -1
  10. package/dist/context-view.d.ts +82 -0
  11. package/dist/context-view.js +8 -0
  12. package/dist/context-view.js.map +1 -1
  13. package/dist/context.d.ts +21 -3
  14. package/dist/context.js +32 -16
  15. package/dist/context.js.map +1 -1
  16. package/dist/inject-config.js +2 -1
  17. package/dist/inject-config.js.map +1 -1
  18. package/dist/inject.js +3 -0
  19. package/dist/inject.js.map +1 -1
  20. package/dist/resolution-session.d.ts +15 -0
  21. package/dist/resolution-session.js +40 -1
  22. package/dist/resolution-session.js.map +1 -1
  23. package/dist/resolver.js +6 -13
  24. package/dist/resolver.js.map +1 -1
  25. package/dist/unique-id.d.ts +14 -0
  26. package/dist/unique-id.js +26 -0
  27. package/dist/unique-id.js.map +1 -0
  28. package/dist/value-promise.d.ts +21 -0
  29. package/dist/value-promise.js +45 -16
  30. package/dist/value-promise.js.map +1 -1
  31. package/package.json +15 -11
  32. package/src/binding-inspector.ts +1 -1
  33. package/src/binding-key.ts +7 -3
  34. package/src/binding.ts +61 -19
  35. package/src/context-view.ts +120 -0
  36. package/src/context.ts +66 -19
  37. package/src/inject-config.ts +1 -1
  38. package/src/inject.ts +5 -0
  39. package/src/resolution-session.ts +48 -0
  40. package/src/resolver.ts +14 -17
  41. package/src/unique-id.ts +24 -0
  42. package/src/value-promise.ts +50 -18
package/CHANGELOG.md CHANGED
@@ -3,6 +3,51 @@
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.9.3](https://github.com/strongloop/loopback-next/compare/@loopback/context@3.9.2...@loopback/context@3.9.3) (2020-07-20)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **context:** destroy debug instances to avoid memory leak ([a28d53c](https://github.com/strongloop/loopback-next/commit/a28d53c8951bf71af62f5238d694662905d1a8f6))
12
+
13
+
14
+
15
+
16
+
17
+ ## [3.9.2](https://github.com/strongloop/loopback-next/compare/@loopback/context@3.9.1...@loopback/context@3.9.2) (2020-06-30)
18
+
19
+ **Note:** Version bump only for package @loopback/context
20
+
21
+
22
+
23
+
24
+
25
+ ## [3.9.1](https://github.com/strongloop/loopback-next/compare/@loopback/context@3.9.0...@loopback/context@3.9.1) (2020-06-23)
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * set node version to >=10.16 to support events.once ([e39da1c](https://github.com/strongloop/loopback-next/commit/e39da1ca47728eafaf83c10ce35b09b03b6a4edc))
31
+ * **context:** cache binding value or promise as-is to avoid racing condition ([38b9b96](https://github.com/strongloop/loopback-next/commit/38b9b968e5b0c033d9a1f4a304c4cebbb345fac7))
32
+
33
+
34
+
35
+
36
+
37
+ # [3.9.0](https://github.com/strongloop/loopback-next/compare/@loopback/context@3.8.2...@loopback/context@3.9.0) (2020-06-11)
38
+
39
+
40
+ ### Features
41
+
42
+ * **context:** add `tryCatchFinally` helper function for value or promise ([c764ac6](https://github.com/strongloop/loopback-next/commit/c764ac61c3305fba5f8c59357243507e8a940ba6))
43
+ * **context:** add strongly typed `on` and `once` methods ([3f14bfa](https://github.com/strongloop/loopback-next/commit/3f14bfa05679fd2642221a9bba0a0e80864b706d))
44
+ * **context:** improve error reporting with more contextual information ([2a30484](https://github.com/strongloop/loopback-next/commit/2a30484f90b08803f14669524f8eb64c35031da9))
45
+ * **context:** use a faster UID generator ([e5e3d19](https://github.com/strongloop/loopback-next/commit/e5e3d193a182b364a0877dd223be7a0d936a91cd))
46
+
47
+
48
+
49
+
50
+
6
51
  ## [3.8.2](https://github.com/strongloop/loopback-next/compare/@loopback/context@3.8.1...@loopback/context@3.8.2) (2020-05-28)
7
52
 
8
53
  **Note:** Version bump only for package @loopback/context
@@ -124,7 +124,7 @@ function bindingTemplateFor(cls) {
124
124
  for (const t of templateFunctions) {
125
125
  binding.apply(t);
126
126
  }
127
- if (spec && spec.target !== cls) {
127
+ if ((spec === null || spec === void 0 ? void 0 : spec.target) !== cls) {
128
128
  // Remove name/key tags inherited from base classes
129
129
  binding.apply(removeNameAndKeyTags);
130
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"binding-inspector.js","sourceRoot":"","sources":["../src/binding-inspector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binding-inspector.js","sourceRoot":"","sources":["../src/binding-inspector.ts"],"names":[],"mappings":"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"}
@@ -55,7 +55,11 @@ export declare class BindingKey<ValueType> {
55
55
  */
56
56
  static buildKeyForConfig<T>(key?: BindingAddress): BindingAddress<T>;
57
57
  /**
58
- * Generate a unique binding key with `uuid`
58
+ * Generate a universally unique binding key.
59
+ *
60
+ * Please note the format of they generated key is not specified, you must
61
+ * not rely on any specific formatting (e.g. UUID style).
62
+ *
59
63
  * @param namespace - Namespace for the binding
60
64
  */
61
65
  static generate<T>(namespace?: string): BindingKey<T>;
@@ -5,115 +5,116 @@
5
5
  // License text available at https://opensource.org/licenses/MIT
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.BindingKey = void 0;
8
- const value_promise_1 = require("./value-promise");
9
- let BindingKey = /** @class */ (() => {
10
- class BindingKey {
11
- constructor(key, propertyPath) {
12
- this.key = key;
13
- this.propertyPath = propertyPath;
14
- }
15
- /**
16
- * Create a new key for a binding bound to a value of type `ValueType`.
17
- *
18
- * @example
19
- *
20
- * ```ts
21
- * BindingKey.create<string>('application.name');
22
- * BindingKey.create<number>('config', 'rest.port);
23
- * BindingKey.create<number>('config#rest.port');
24
- * ```
25
- *
26
- * @param key - The binding key. When propertyPath is not provided, the key
27
- * is allowed to contain propertyPath as encoded via `BindingKey#toString()`
28
- * @param propertyPath - Optional path to a deep property of the bound value.
29
- */
30
- static create(key, propertyPath) {
31
- // TODO(bajtos) allow chaining of propertyPaths, e.g.
32
- // BindingKey.create('config#rest', 'port')
33
- // should create {key: 'config', path: 'rest.port'}
34
- if (propertyPath) {
35
- BindingKey.validate(key);
36
- return new BindingKey(key, propertyPath);
37
- }
38
- return BindingKey.parseKeyWithPath(key);
39
- }
40
- toString() {
41
- return this.propertyPath
42
- ? `${this.key}${BindingKey.PROPERTY_SEPARATOR}${this.propertyPath}`
43
- : this.key;
44
- }
45
- /**
46
- * Get a binding address for retrieving a deep property of the object
47
- * bound to the current binding key.
48
- *
49
- * @param propertyPath - A dot-separated path to a (deep) property, e.g. "server.port".
50
- */
51
- deepProperty(propertyPath) {
52
- // TODO(bajtos) allow chaining of propertyPaths, e.g.
53
- // BindingKey.create('config', 'rest').deepProperty('port')
54
- // should create {key: 'config', path: 'rest.port'}
55
- return BindingKey.create(this.key, propertyPath);
56
- }
57
- /**
58
- * Validate the binding key format. Please note that `#` is reserved.
59
- * Returns a string representation of the binding key.
60
- *
61
- * @param key - Binding key, such as `a`, `a.b`, `a:b`, or `a/b`
62
- */
63
- static validate(key) {
64
- if (!key)
65
- throw new Error('Binding key must be provided.');
66
- key = key.toString();
67
- if (key.includes(BindingKey.PROPERTY_SEPARATOR)) {
68
- throw new Error(`Binding key ${key} cannot contain` +
69
- ` '${BindingKey.PROPERTY_SEPARATOR}'.`);
70
- }
71
- return key;
8
+ const unique_id_1 = require("./unique-id");
9
+ class BindingKey {
10
+ constructor(key, propertyPath) {
11
+ this.key = key;
12
+ this.propertyPath = propertyPath;
13
+ }
14
+ /**
15
+ * Create a new key for a binding bound to a value of type `ValueType`.
16
+ *
17
+ * @example
18
+ *
19
+ * ```ts
20
+ * BindingKey.create<string>('application.name');
21
+ * BindingKey.create<number>('config', 'rest.port);
22
+ * BindingKey.create<number>('config#rest.port');
23
+ * ```
24
+ *
25
+ * @param key - The binding key. When propertyPath is not provided, the key
26
+ * is allowed to contain propertyPath as encoded via `BindingKey#toString()`
27
+ * @param propertyPath - Optional path to a deep property of the bound value.
28
+ */
29
+ static create(key, propertyPath) {
30
+ // TODO(bajtos) allow chaining of propertyPaths, e.g.
31
+ // BindingKey.create('config#rest', 'port')
32
+ // should create {key: 'config', path: 'rest.port'}
33
+ if (propertyPath) {
34
+ BindingKey.validate(key);
35
+ return new BindingKey(key, propertyPath);
72
36
  }
73
- /**
74
- * Parse a string containing both the binding key and the path to the deeply
75
- * nested property to retrieve.
76
- *
77
- * @param keyWithPath - The key with an optional path,
78
- * e.g. "application.instance" or "config#rest.port".
79
- */
80
- static parseKeyWithPath(keyWithPath) {
81
- if (typeof keyWithPath !== 'string') {
82
- return BindingKey.create(keyWithPath.key, keyWithPath.propertyPath);
83
- }
84
- const index = keyWithPath.indexOf(BindingKey.PROPERTY_SEPARATOR);
85
- if (index === -1) {
86
- return new BindingKey(keyWithPath);
87
- }
88
- return BindingKey.create(keyWithPath.substr(0, index).trim(), keyWithPath.substr(index + 1));
37
+ return BindingKey.parseKeyWithPath(key);
38
+ }
39
+ toString() {
40
+ return this.propertyPath
41
+ ? `${this.key}${BindingKey.PROPERTY_SEPARATOR}${this.propertyPath}`
42
+ : this.key;
43
+ }
44
+ /**
45
+ * Get a binding address for retrieving a deep property of the object
46
+ * bound to the current binding key.
47
+ *
48
+ * @param propertyPath - A dot-separated path to a (deep) property, e.g. "server.port".
49
+ */
50
+ deepProperty(propertyPath) {
51
+ // TODO(bajtos) allow chaining of propertyPaths, e.g.
52
+ // BindingKey.create('config', 'rest').deepProperty('port')
53
+ // should create {key: 'config', path: 'rest.port'}
54
+ return BindingKey.create(this.key, propertyPath);
55
+ }
56
+ /**
57
+ * Validate the binding key format. Please note that `#` is reserved.
58
+ * Returns a string representation of the binding key.
59
+ *
60
+ * @param key - Binding key, such as `a`, `a.b`, `a:b`, or `a/b`
61
+ */
62
+ static validate(key) {
63
+ if (!key)
64
+ throw new Error('Binding key must be provided.');
65
+ key = key.toString();
66
+ if (key.includes(BindingKey.PROPERTY_SEPARATOR)) {
67
+ throw new Error(`Binding key ${key} cannot contain` +
68
+ ` '${BindingKey.PROPERTY_SEPARATOR}'.`);
89
69
  }
90
- /**
91
- * Build a binding key for the configuration of the given binding.
92
- * The format is `<key>:$config`
93
- *
94
- * @param key - Key of the target binding to be configured
95
- */
96
- static buildKeyForConfig(key = '') {
97
- const suffix = BindingKey.CONFIG_NAMESPACE;
98
- const bindingKey = key ? `${key}:${suffix}` : suffix;
99
- return bindingKey;
70
+ return key;
71
+ }
72
+ /**
73
+ * Parse a string containing both the binding key and the path to the deeply
74
+ * nested property to retrieve.
75
+ *
76
+ * @param keyWithPath - The key with an optional path,
77
+ * e.g. "application.instance" or "config#rest.port".
78
+ */
79
+ static parseKeyWithPath(keyWithPath) {
80
+ if (typeof keyWithPath !== 'string') {
81
+ return BindingKey.create(keyWithPath.key, keyWithPath.propertyPath);
100
82
  }
101
- /**
102
- * Generate a unique binding key with `uuid`
103
- * @param namespace - Namespace for the binding
104
- */
105
- static generate(namespace = '') {
106
- const prefix = namespace ? `${namespace}.` : '';
107
- const name = value_promise_1.uuid();
108
- return BindingKey.create(`${prefix}${name}`);
83
+ const index = keyWithPath.indexOf(BindingKey.PROPERTY_SEPARATOR);
84
+ if (index === -1) {
85
+ return new BindingKey(keyWithPath);
109
86
  }
87
+ return BindingKey.create(keyWithPath.substr(0, index).trim(), keyWithPath.substr(index + 1));
110
88
  }
111
- BindingKey.PROPERTY_SEPARATOR = '#';
112
89
  /**
113
- * Name space for configuration binding keys
90
+ * Build a binding key for the configuration of the given binding.
91
+ * The format is `<key>:$config`
92
+ *
93
+ * @param key - Key of the target binding to be configured
114
94
  */
115
- BindingKey.CONFIG_NAMESPACE = '$config';
116
- return BindingKey;
117
- })();
95
+ static buildKeyForConfig(key = '') {
96
+ const suffix = BindingKey.CONFIG_NAMESPACE;
97
+ const bindingKey = key ? `${key}:${suffix}` : suffix;
98
+ return bindingKey;
99
+ }
100
+ /**
101
+ * Generate a universally unique binding key.
102
+ *
103
+ * Please note the format of they generated key is not specified, you must
104
+ * not rely on any specific formatting (e.g. UUID style).
105
+ *
106
+ * @param namespace - Namespace for the binding
107
+ */
108
+ static generate(namespace = '') {
109
+ const prefix = namespace ? `${namespace}.` : '';
110
+ const name = unique_id_1.generateUniqueId();
111
+ return BindingKey.create(`${prefix}${name}`);
112
+ }
113
+ }
118
114
  exports.BindingKey = BindingKey;
115
+ BindingKey.PROPERTY_SEPARATOR = '#';
116
+ /**
117
+ * Name space for configuration binding keys
118
+ */
119
+ BindingKey.CONFIG_NAMESPACE = '$config';
119
120
  //# sourceMappingURL=binding-key.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"binding-key.js","sourceRoot":"","sources":["../src/binding-key.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binding-key.js","sourceRoot":"","sources":["../src/binding-key.ts"],"names":[],"mappings":"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"}
package/dist/binding.d.ts CHANGED
@@ -156,7 +156,7 @@ export declare type BindingEvent = {
156
156
  /**
157
157
  * Event type
158
158
  */
159
- type: string;
159
+ type: 'changed' | string;
160
160
  /**
161
161
  * Source binding that emits the event
162
162
  */
@@ -164,7 +164,7 @@ export declare type BindingEvent = {
164
164
  /**
165
165
  * Operation that triggers the event
166
166
  */
167
- operation: string;
167
+ operation: 'tag' | 'scope' | 'value' | string;
168
168
  };
169
169
  /**
170
170
  * Event listeners for binding events
@@ -464,6 +464,24 @@ export declare class Binding<T = BoundValue> extends EventEmitter {
464
464
  * @param key - Key for the binding to be configured
465
465
  */
466
466
  static configure<T = unknown>(key: BindingAddress): Binding<T>;
467
+ /**
468
+ * The "changed" event is emitted by methods such as `tag`, `inScope`, `to`,
469
+ * and `toClass`.
470
+ *
471
+ * @param eventName The name of the event - always `changed`.
472
+ * @param listener The listener function to call when the event is emitted.
473
+ */
474
+ on(eventName: 'changed', listener: BindingEventListener): this;
475
+ on(event: string | symbol, listener: (...args: any[]) => void): this;
476
+ /**
477
+ * The "changed" event is emitted by methods such as `tag`, `inScope`, `to`,
478
+ * and `toClass`.
479
+ *
480
+ * @param eventName The name of the event - always `changed`.
481
+ * @param listener The listener function to call when the event is emitted.
482
+ */
483
+ once(eventName: 'changed', listener: BindingEventListener): this;
484
+ once(event: string | symbol, listener: (...args: any[]) => void): this;
467
485
  }
468
486
  /**
469
487
  * Options for binding.inspect()
package/dist/binding.js CHANGED
@@ -196,18 +196,16 @@ class Binding extends events_1.EventEmitter {
196
196
  // Initialize the cache as a weakmap keyed by context
197
197
  if (!this._cache)
198
198
  this._cache = new WeakMap();
199
- return value_promise_1.transformValueOrPromise(result, val => {
200
- if (this.scope === BindingScope.SINGLETON) {
201
- // Cache the value
202
- this._cache.set(ctx.getOwnerContext(this.key), val);
203
- }
204
- else if (this.scope === BindingScope.CONTEXT) {
205
- // Cache the value at the current context
206
- this._cache.set(ctx, val);
207
- }
208
- // Do not cache for `TRANSIENT`
209
- return val;
210
- });
199
+ if (this.scope === BindingScope.SINGLETON) {
200
+ // Cache the value
201
+ this._cache.set(ctx.getOwnerContext(this.key), result);
202
+ }
203
+ else if (this.scope === BindingScope.CONTEXT) {
204
+ // Cache the value at the current context
205
+ this._cache.set(ctx, result);
206
+ }
207
+ // Do not cache for `TRANSIENT`
208
+ return result;
211
209
  }
212
210
  /**
213
211
  * Clear the cache
@@ -262,14 +260,18 @@ class Binding extends events_1.EventEmitter {
262
260
  }
263
261
  }
264
262
  const options = resolution_session_1.asResolutionOptions(optionsOrSession);
263
+ const resolutionCtx = {
264
+ context: ctx,
265
+ binding: this,
266
+ options,
267
+ };
265
268
  if (typeof this._getValue === 'function') {
266
269
  const result = resolution_session_1.ResolutionSession.runWithBinding(s => {
267
- const optionsWithSession = Object.assign({}, options, { session: s });
270
+ const optionsWithSession = { ...options, session: s };
268
271
  // We already test `this._getValue` is a function. It's safe to assert
269
272
  // that `this._getValue` is not undefined.
270
273
  return this._getValue({
271
- context: ctx,
272
- binding: this,
274
+ ...resolutionCtx,
273
275
  options: optionsWithSession,
274
276
  });
275
277
  }, this, options.session);
@@ -278,7 +280,7 @@ class Binding extends events_1.EventEmitter {
278
280
  // `@inject.binding` adds a binding without _getValue
279
281
  if (options.optional)
280
282
  return undefined;
281
- return Promise.reject(new Error(`No value was configured for binding ${this.key}.`));
283
+ return Promise.reject(new resolution_session_1.ResolutionError(`No value was configured for binding ${this.key}.`, resolutionCtx));
282
284
  }
283
285
  /**
284
286
  * Lock the binding so that it cannot be rebound
@@ -634,6 +636,14 @@ class Binding extends events_1.EventEmitter {
634
636
  [keys_1.ContextTags.CONFIGURATION_FOR]: key.toString(),
635
637
  });
636
638
  }
639
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
640
+ on(event, listener) {
641
+ return super.on(event, listener);
642
+ }
643
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
644
+ once(event, listener) {
645
+ return super.once(event, listener);
646
+ }
637
647
  }
638
648
  exports.Binding = Binding;
639
649
  function createInterceptionProxyFromInstance(instOrPromise, context, session) {
@@ -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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"}
@@ -107,6 +107,88 @@ export declare class ContextView<T = unknown> extends EventEmitter implements Co
107
107
  * Get the single value
108
108
  */
109
109
  singleValue(session?: ResolutionSession): Promise<T | undefined>;
110
+ /**
111
+ * The "bind" event is emitted when a new binding is added to the view.
112
+ *
113
+ * @param eventName The name of the event - always `bind`.
114
+ * @param listener The listener function to call when the event is emitted.
115
+ */
116
+ on(eventName: 'bind', listener: <T>(event: ContextViewEvent<T>) => void): this;
117
+ /**
118
+ * The "unbind" event is emitted a new binding is removed from the view.
119
+ *
120
+ * @param eventName The name of the event - always `unbind`.
121
+ * @param listener The listener function to call when the event is emitted.
122
+ */
123
+ on(eventName: 'unbind', listener: <T>(event: ContextViewEvent<T> & {
124
+ cachedValue?: T;
125
+ }) => void): this;
126
+ /**
127
+ * The "refresh" event is emitted when the view is refreshed as bindings are
128
+ * added/removed.
129
+ *
130
+ * @param eventName The name of the event - always `refresh`.
131
+ * @param listener The listener function to call when the event is emitted.
132
+ */
133
+ on(eventName: 'refresh', listener: () => void): this;
134
+ /**
135
+ * The "resolve" event is emitted when the cached values are resolved and
136
+ * updated.
137
+ *
138
+ * @param eventName The name of the event - always `refresh`.
139
+ * @param listener The listener function to call when the event is emitted.
140
+ */
141
+ on(eventName: 'refresh', listener: <T>(result: T[]) => void): this;
142
+ /**
143
+ * The "close" event is emitted when the view is closed (stopped observing
144
+ * context events)
145
+ *
146
+ * @param eventName The name of the event - always `close`.
147
+ * @param listener The listener function to call when the event is emitted.
148
+ */
149
+ on(eventName: 'close', listener: () => void): this;
150
+ on(event: string | symbol, listener: (...args: any[]) => void): this;
151
+ /**
152
+ * The "bind" event is emitted when a new binding is added to the view.
153
+ *
154
+ * @param eventName The name of the event - always `bind`.
155
+ * @param listener The listener function to call when the event is emitted.
156
+ */
157
+ once(eventName: 'bind', listener: <T>(event: ContextViewEvent<T>) => void): this;
158
+ /**
159
+ * The "unbind" event is emitted a new binding is removed from the view.
160
+ *
161
+ * @param eventName The name of the event - always `unbind`.
162
+ * @param listener The listener function to call when the event is emitted.
163
+ */
164
+ once(eventName: 'unbind', listener: <T>(event: ContextViewEvent<T> & {
165
+ cachedValue?: T;
166
+ }) => void): this;
167
+ /**
168
+ * The "refresh" event is emitted when the view is refreshed as bindings are
169
+ * added/removed.
170
+ *
171
+ * @param eventName The name of the event - always `refresh`.
172
+ * @param listener The listener function to call when the event is emitted.
173
+ */
174
+ once(eventName: 'refresh', listener: () => void): this;
175
+ /**
176
+ * The "resolve" event is emitted when the cached values are resolved and
177
+ * updated.
178
+ *
179
+ * @param eventName The name of the event - always `refresh`.
180
+ * @param listener The listener function to call when the event is emitted.
181
+ */
182
+ once(eventName: 'refresh', listener: <T>(result: T[]) => void): this;
183
+ /**
184
+ * The "close" event is emitted when the view is closed (stopped observing
185
+ * context events)
186
+ *
187
+ * @param eventName The name of the event - always `close`.
188
+ * @param listener The listener function to call when the event is emitted.
189
+ */
190
+ once(eventName: 'close', listener: () => void): this;
191
+ once(event: string | symbol, listener: (...args: any[]) => void): this;
110
192
  }
111
193
  /**
112
194
  * Create a context view as a getter with the given filter
@@ -197,6 +197,14 @@ class ContextView extends events_1.EventEmitter {
197
197
  return values[0];
198
198
  throw new Error('The ContextView has more than one value. Use values() to access them.');
199
199
  }
200
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
201
+ on(event, listener) {
202
+ return super.on(event, listener);
203
+ }
204
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
205
+ once(event, listener) {
206
+ return super.once(event, listener);
207
+ }
200
208
  }
201
209
  exports.ContextView = ContextView;
202
210
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"context-view.js","sourceRoot":"","sources":["../src/context-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-view.js","sourceRoot":"","sources":["../src/context-view.ts"],"names":[],"mappings":"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"}