@equinor/fusion-framework-module-context 6.0.7-next.0 → 7.0.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 +3 -6
- package/README.md +33 -0
- package/dist/esm/ContextConfigBuilder.js +70 -2
- package/dist/esm/ContextConfigBuilder.js.map +1 -1
- package/dist/esm/ContextProvider.js +201 -0
- package/dist/esm/ContextProvider.js.map +1 -1
- package/dist/esm/client/ContextClient.js +65 -1
- package/dist/esm/client/ContextClient.js.map +1 -1
- package/dist/esm/configurator.js +3 -5
- package/dist/esm/configurator.js.map +1 -1
- package/dist/esm/errors.js +12 -1
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/module.js +21 -0
- package/dist/esm/module.js.map +1 -1
- package/dist/esm/utils/enable-context.js +19 -3
- package/dist/esm/utils/enable-context.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/ContextConfigBuilder.d.ts +70 -0
- package/dist/types/ContextProvider.d.ts +347 -6
- package/dist/types/client/ContextClient.d.ts +65 -1
- package/dist/types/errors.d.ts +12 -1
- package/dist/types/module.d.ts +31 -0
- package/dist/types/types.d.ts +33 -0
- package/dist/types/utils/enable-context.d.ts +18 -2
- package/dist/types/version.d.ts +1 -1
- package/package.json +7 -7
- package/src/ContextConfigBuilder.ts +70 -4
- package/src/ContextProvider.ts +347 -8
- package/src/client/ContextClient.ts +66 -2
- package/src/configurator.ts +4 -5
- package/src/errors.ts +12 -1
- package/src/module.ts +31 -0
- package/src/types.ts +33 -0
- package/src/utils/enable-context.ts +19 -3
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 7.0.0
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
-
- [
|
|
8
|
-
|
|
9
|
-
- Updated dependencies [[`7c58c78`](https://github.com/equinor/fusion-framework/commit/7c58c7868c66b1fc0f720b4ed13d39e0fe505461), [`db34d90`](https://github.com/equinor/fusion-framework/commit/db34d9003d64e4c7cb46cf0c95f0c7a0e7587128)]:
|
|
10
|
-
- @equinor/fusion-framework-module@4.4.3-next.2
|
|
11
|
-
- @equinor/fusion-query@5.2.12-next.0
|
|
7
|
+
- Updated dependencies [[`8fffbfb`](https://github.com/equinor/fusion-framework/commit/8fffbfb12daa9748bf5290e5084cd4d409aed253), [`8fffbfb`](https://github.com/equinor/fusion-framework/commit/8fffbfb12daa9748bf5290e5084cd4d409aed253)]:
|
|
8
|
+
- @equinor/fusion-framework-module@5.0.0
|
|
12
9
|
|
|
13
10
|
## 6.0.6
|
|
14
11
|
|
package/README.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
## Overview
|
|
2
|
+
|
|
3
|
+
The `@equinor/fusion-framework-module-context` package is a core module of the Fusion Framework, designed to manage contextual data within Fusion-based applications and portals.
|
|
4
|
+
It provides a structured way to handle context information to enrich user experiences and facilitate data sharing across different components of the application.
|
|
5
|
+
|
|
6
|
+
## Configuration
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import { enableContext } from '@equinor/fusion-framework-module-context';
|
|
10
|
+
|
|
11
|
+
const configure = (configurator: IModulesConfigurator<any, any>) => {
|
|
12
|
+
enableContext(configurator, (builder) => {
|
|
13
|
+
// configure the context module here
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Features
|
|
19
|
+
|
|
20
|
+
- set and retrieve context items
|
|
21
|
+
- query context items based on search strings
|
|
22
|
+
- filter context items based on type
|
|
23
|
+
- validate context items against allowed types
|
|
24
|
+
- resolving related context items
|
|
25
|
+
|
|
26
|
+
## Usage
|
|
27
|
+
|
|
28
|
+
This module is the core of the context management system in Fusion Framework applications, but there are several packages which has additional functionality or provide a more convenient API for specific use cases.
|
|
29
|
+
|
|
30
|
+
When developing applications, the `@equinor/fusion-framework-react-app/context` package is typically used to provide a React context provider that integrates with this module.
|
|
31
|
+
|
|
32
|
+
When building portals, the `@equinor/fusion-framework-react/context` package is used to provide a context provider that integrates with this module.
|
|
33
|
+
|
|
@@ -1,4 +1,31 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* A builder class for configuring and customizing context module behavior within the Fusion Framework.
|
|
3
|
+
*
|
|
4
|
+
* `ContextConfigBuilder` provides a fluent API for setting up various aspects of context management,
|
|
5
|
+
* including context type, filtering, parent context connection, parameter resolution, validation,
|
|
6
|
+
* path extraction/generation, and client configuration for fetching context items.
|
|
7
|
+
*
|
|
8
|
+
* @typeParam TModules - An array of modules that extend `AnyModule`. Defaults to an empty array.
|
|
9
|
+
* @typeParam TInit - The initializer arguments for the module, extending `ModuleInitializerArgs`.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const builder = new ContextConfigBuilder(init);
|
|
14
|
+
* builder.setContextType(['ProjectMaster']);
|
|
15
|
+
* builder.setContextFilter(items => items.filter(ctx => ctx.isActive));
|
|
16
|
+
* builder.setContextClient({ get: fetchContextItem, query: fetchContextItems });
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
* - Use the provided setter methods to customize context behavior as needed.
|
|
21
|
+
* - The builder pattern allows chaining configuration methods for clarity and convenience.
|
|
22
|
+
* - The `requireInstance` method enables asynchronous retrieval of module instances by name.
|
|
23
|
+
*
|
|
24
|
+
* @todo - this should extend the BaseConfigBuilder
|
|
25
|
+
*
|
|
26
|
+
* @see ContextModuleConfig
|
|
27
|
+
* @see ModuleInitializerArgs
|
|
28
|
+
*/
|
|
2
29
|
export class ContextConfigBuilder {
|
|
3
30
|
config;
|
|
4
31
|
#init;
|
|
@@ -6,25 +33,54 @@ export class ContextConfigBuilder {
|
|
|
6
33
|
this.config = config;
|
|
7
34
|
this.#init = init;
|
|
8
35
|
}
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
36
|
requireInstance(module) {
|
|
11
37
|
return this.#init.requireInstance(module);
|
|
12
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Sets the context type for the current configuration.
|
|
41
|
+
*
|
|
42
|
+
* @param type - The context type to assign, as defined by `ContextModuleConfig['contextType']`.
|
|
43
|
+
*/
|
|
13
44
|
setContextType(type) {
|
|
14
45
|
this.config.contextType = type;
|
|
15
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Sets the context filter function for the configuration.
|
|
49
|
+
*
|
|
50
|
+
* @param filter - A function that determines whether a context should be included, as defined by `ContextModuleConfig['contextFilter']`.
|
|
51
|
+
*/
|
|
16
52
|
setContextFilter(filter) {
|
|
17
53
|
this.config.contextFilter = filter;
|
|
18
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Sets the function or configuration used to connect to a parent context.
|
|
57
|
+
*
|
|
58
|
+
* @param connect - The function or configuration that defines how to connect to the parent context.
|
|
59
|
+
*/
|
|
19
60
|
connectParentContext(connect) {
|
|
20
61
|
this.config.connectParentContext = connect;
|
|
21
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Sets the function used to provide context parameters for the module configuration.
|
|
65
|
+
*
|
|
66
|
+
* @param fn - A function conforming to the `contextParameterFn` type defined in `ContextModuleConfig`.
|
|
67
|
+
*/
|
|
22
68
|
setContextParameterFn(fn) {
|
|
23
69
|
this.config.contextParameterFn = fn;
|
|
24
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Sets the function used to validate the context within the configuration.
|
|
73
|
+
*
|
|
74
|
+
* @param fn - A function that implements the `validateContext` signature from `ContextModuleConfig`.
|
|
75
|
+
*/
|
|
25
76
|
setValidateContext(fn) {
|
|
26
77
|
this.config.validateContext = fn;
|
|
27
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Sets the function used to resolve the context for the module configuration.
|
|
81
|
+
*
|
|
82
|
+
* @param fn - A function that defines how the context should be resolved, conforming to the `resolveContext` type from `ContextModuleConfig`.
|
|
83
|
+
*/
|
|
28
84
|
setResolveContext(fn) {
|
|
29
85
|
this.config.resolveContext = fn;
|
|
30
86
|
}
|
|
@@ -48,6 +104,18 @@ export class ContextConfigBuilder {
|
|
|
48
104
|
setResolveInitialContext(fn) {
|
|
49
105
|
this.config.resolveInitialContext = fn;
|
|
50
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Sets the context client configuration for fetching context items.
|
|
109
|
+
*
|
|
110
|
+
* This method allows you to provide custom query functions or query constructor options
|
|
111
|
+
* for retrieving single context items (`get`), querying multiple context items (`query`),
|
|
112
|
+
* and optionally fetching related context items (`related`). Each query can be provided
|
|
113
|
+
* as either a function or a configuration object. The expiration time for cached results
|
|
114
|
+
* can also be specified.
|
|
115
|
+
*
|
|
116
|
+
* @param client - An object containing the query functions or options for `get`, `query`, and optionally `related` context items.
|
|
117
|
+
* @param expire - Optional. The expiration time (in milliseconds) for cached query results. Defaults to 1 minute.
|
|
118
|
+
*/
|
|
51
119
|
setContextClient(client, expire = 1 * 60 * 1000) {
|
|
52
120
|
this.config.client = {
|
|
53
121
|
get: typeof client.get === 'function'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextConfigBuilder.js","sourceRoot":"","sources":["../../src/ContextConfigBuilder.ts"],"names":[],"mappings":"AAuBA
|
|
1
|
+
{"version":3,"file":"ContextConfigBuilder.js","sourceRoot":"","sources":["../../src/ContextConfigBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,36 @@ import { EMPTY, lastValueFrom, Observable, of, Subject, Subscription, throwError
|
|
|
2
2
|
import { catchError, filter, finalize, map, pairwise, switchMap, takeUntil, tap, } from 'rxjs/operators';
|
|
3
3
|
import { ContextClient } from './client/ContextClient';
|
|
4
4
|
import Query from '@equinor/fusion-query';
|
|
5
|
+
/**
|
|
6
|
+
* Provides context management functionality, including querying, setting, validating, and resolving context items.
|
|
7
|
+
*
|
|
8
|
+
* The `ContextProvider` class acts as a central service for handling context state, supporting asynchronous operations,
|
|
9
|
+
* event-driven updates, and integration with parent/child context providers. It manages a queue for context changes,
|
|
10
|
+
* supports validation and resolution logic, and can interact with related context items.
|
|
11
|
+
*
|
|
12
|
+
* Key Features:
|
|
13
|
+
* - Maintains the current context and exposes it as both an observable and a property.
|
|
14
|
+
* - Allows querying for context items based on search criteria and filters.
|
|
15
|
+
* - Supports setting the current context by ID or by context item, with optional validation and resolution.
|
|
16
|
+
* - Handles context changes asynchronously, queuing tasks and supporting cancellation.
|
|
17
|
+
* - Integrates with an event module to dispatch and listen for context-related events.
|
|
18
|
+
* - Supports connecting to a parent context provider to synchronize context state.
|
|
19
|
+
* - Provides methods for resolving related contexts and validating context items.
|
|
20
|
+
* - Manages subscriptions and ensures proper resource cleanup via `dispose`.
|
|
21
|
+
*
|
|
22
|
+
* @template T The type of context item managed by the provider.
|
|
23
|
+
*
|
|
24
|
+
* @remarks
|
|
25
|
+
* - Some methods and properties are marked as deprecated and may be removed in future versions.
|
|
26
|
+
* - Event integration is optional and depends on the presence of an event module.
|
|
27
|
+
* - The provider is designed to be extensible and can be configured via the `ContextModuleConfig`.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const provider = new ContextProvider({ config: myConfig, event: myEventModule });
|
|
32
|
+
* provider.setCurrentContextById('context-id').subscribe(...);
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
5
35
|
export class ContextProvider {
|
|
6
36
|
#contextClient;
|
|
7
37
|
#contextQuery;
|
|
@@ -99,6 +129,22 @@ export class ContextProvider {
|
|
|
99
129
|
this.#contextClient.setCurrentContext(context ?? null);
|
|
100
130
|
}));
|
|
101
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Connects this context provider to a parent context provider, subscribing to changes in the parent's context.
|
|
134
|
+
*
|
|
135
|
+
* When the parent context changes, this method will:
|
|
136
|
+
* - Optionally skip the first emitted value from the parent (if `opt.skipFirst` is true).
|
|
137
|
+
* - Only update the current context if the context ID has changed.
|
|
138
|
+
* - Dispatch an `onParentContextChanged` event before updating, allowing for cancellation.
|
|
139
|
+
* - Set the current context with validation and resolution, handling errors gracefully.
|
|
140
|
+
*
|
|
141
|
+
* The subscription is automatically managed and will be cleaned up with the provider.
|
|
142
|
+
*
|
|
143
|
+
* @param provider - The parent context provider to connect to.
|
|
144
|
+
* @param opt - Optional settings.
|
|
145
|
+
* @param opt.skipFirst - If true, skips the first emitted value from the parent context.
|
|
146
|
+
* @returns A `Subscription` object representing the connection to the parent context.
|
|
147
|
+
*/
|
|
102
148
|
connectParentContext(provider, opt) {
|
|
103
149
|
const parentContext$ = provider.currentContext$.pipe(
|
|
104
150
|
// do not set context if parent has not initialized
|
|
@@ -146,6 +192,18 @@ export class ContextProvider {
|
|
|
146
192
|
this.#subscriptions.add(subscription);
|
|
147
193
|
return subscription;
|
|
148
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Sets the current context by resolving a context item using the provided ID.
|
|
197
|
+
*
|
|
198
|
+
* This method attempts to resolve a context item by its unique identifier,
|
|
199
|
+
* filters out any invalid or undefined items, and then sets the current context
|
|
200
|
+
* using the resolved item. The operation is performed as an Observable stream,
|
|
201
|
+
* allowing subscribers to react to the context change or handle errors.
|
|
202
|
+
*
|
|
203
|
+
* @param id - The unique identifier of the context item to resolve and set as current.
|
|
204
|
+
* @returns An Observable that emits the resolved and set {@link ContextItem}.
|
|
205
|
+
* Emits an error if the context cannot be resolved or set.
|
|
206
|
+
*/
|
|
149
207
|
setCurrentContextById(id) {
|
|
150
208
|
return new Observable((subscriber) => {
|
|
151
209
|
try {
|
|
@@ -165,6 +223,18 @@ export class ContextProvider {
|
|
|
165
223
|
}
|
|
166
224
|
});
|
|
167
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* Asynchronously sets the current context by its unique identifier and returns a promise
|
|
228
|
+
* that resolves to the corresponding `ContextItem`.
|
|
229
|
+
*
|
|
230
|
+
* This method wraps the observable returned by `setCurrentContextById` into a promise,
|
|
231
|
+
* allowing for async/await usage.
|
|
232
|
+
*
|
|
233
|
+
* @see {@link setCurrentContextById} for more details.
|
|
234
|
+
*
|
|
235
|
+
* @param id - The unique identifier of the context to set as current.
|
|
236
|
+
* @returns A promise that resolves to the `ContextItem` associated with the given ID.
|
|
237
|
+
*/
|
|
168
238
|
setCurrentContextByIdAsync(id) {
|
|
169
239
|
// return last value from observable
|
|
170
240
|
return lastValueFrom(this.setCurrentContextById(id));
|
|
@@ -205,6 +275,47 @@ export class ContextProvider {
|
|
|
205
275
|
// if caller subscribes, unsubscribe should abort queue entry
|
|
206
276
|
finalize(() => abort$.next(true)));
|
|
207
277
|
}
|
|
278
|
+
/**
|
|
279
|
+
* Sets the current context, optionally validating and resolving it.
|
|
280
|
+
*
|
|
281
|
+
* This method emits the provided context as an observable. If the context is the same as the current one,
|
|
282
|
+
* it emits and completes immediately. If validation is requested and fails, it either emits an error or,
|
|
283
|
+
* if resolution is enabled, attempts to resolve the context before setting it. The method dispatches various
|
|
284
|
+
* events to notify listeners about validation failures, resolution steps, and context changes, allowing
|
|
285
|
+
* cancellation at several stages.
|
|
286
|
+
*
|
|
287
|
+
* ### Step-by-step process:
|
|
288
|
+
* 1. **Check if the context is the same as the current one:**
|
|
289
|
+
* - If so, emit the context and complete the observable immediately.
|
|
290
|
+
* 2. **Validate the context (if requested):**
|
|
291
|
+
* - If validation fails and resolution is not enabled:
|
|
292
|
+
* - Dispatch the `onSetContextValidationFailed` event.
|
|
293
|
+
* - Emit an error and complete.
|
|
294
|
+
* - If validation fails but resolution is enabled:
|
|
295
|
+
* - Dispatch the `onSetContextResolve` event (cancelable).
|
|
296
|
+
* - If canceled, throw an error and abort.
|
|
297
|
+
* - Attempt to resolve the context using `resolveContext`.
|
|
298
|
+
* - Dispatch the `onSetContextResolved` event (cancelable) after resolution.
|
|
299
|
+
* - If canceled, throw an error and abort.
|
|
300
|
+
* - Recursively call `_setCurrentContext` with the resolved context (without validation/resolution).
|
|
301
|
+
* 3. **If validation passes or not requested:**
|
|
302
|
+
* - Dispatch the `onCurrentContextChange` event (cancelable).
|
|
303
|
+
* - If canceled, throw an error and abort.
|
|
304
|
+
* - Emit the context and complete the observable.
|
|
305
|
+
*
|
|
306
|
+
* @protected
|
|
307
|
+
* @typeParam T - The type of the context item, which extends `ContextItem<Record<string, unknown>>` or can be `null`.
|
|
308
|
+
* @param context - The new context to set.
|
|
309
|
+
* @param opt - Optional settings:
|
|
310
|
+
* - `validate`: Whether to validate the context before setting.
|
|
311
|
+
* - `resolve`: Whether to attempt to resolve the context if validation fails.
|
|
312
|
+
* @returns An `Observable<T>` that emits the context when set, or errors if validation or resolution fails.
|
|
313
|
+
* @fires onSetContextValidationFailed - When context validation fails and resolution is not enabled.
|
|
314
|
+
* @fires onSetContextResolve - Before attempting to resolve the context.
|
|
315
|
+
* @fires onSetContextResolved - After the context has been resolved.
|
|
316
|
+
* @fires onCurrentContextChange - Before changing the current context.
|
|
317
|
+
* @throws Error if validation fails and resolution is not enabled, or if any event handler cancels the operation.
|
|
318
|
+
*/
|
|
208
319
|
_setCurrentContext(context, opt) {
|
|
209
320
|
return new Observable((subscriber) => {
|
|
210
321
|
// if context is the same as current, just emit and complete
|
|
@@ -290,9 +401,32 @@ export class ContextProvider {
|
|
|
290
401
|
});
|
|
291
402
|
});
|
|
292
403
|
}
|
|
404
|
+
/**
|
|
405
|
+
* Asynchronously sets the current context and returns a promise that resolves with the provided context.
|
|
406
|
+
*
|
|
407
|
+
* @see {@link setCurrentContext} for more details.
|
|
408
|
+
*
|
|
409
|
+
* @typeParam T - The type of the context item, which extends `ContextItem<Record<string, unknown>>` or can be `null`.
|
|
410
|
+
* @param context - The context item to set as the current context, or `null` to clear it.
|
|
411
|
+
* @param opt - Optional settings for context handling.
|
|
412
|
+
* @param opt.validate - If `true`, validates the context before setting it.
|
|
413
|
+
* @param opt.resolve - If `true`, resolves any dependencies or references in the context before setting it.
|
|
414
|
+
* @returns A promise that resolves with the context item that was set.
|
|
415
|
+
*/
|
|
293
416
|
async setCurrentContextAsync(context, opt) {
|
|
294
417
|
return lastValueFrom(this.setCurrentContext(context, opt));
|
|
295
418
|
}
|
|
419
|
+
/**
|
|
420
|
+
* Queries the context for items matching the provided search string.
|
|
421
|
+
*
|
|
422
|
+
* This method constructs query parameters using the given search term and the current context type,
|
|
423
|
+
* then executes the query using the internal query client. If a context filter is defined, it is applied
|
|
424
|
+
* to the results before emitting them. Errors thrown by the query client of type `QueryClientError` will
|
|
425
|
+
* have their underlying cause re-thrown.
|
|
426
|
+
*
|
|
427
|
+
* @param search - The search string to filter context items.
|
|
428
|
+
* @returns An Observable that emits an array of `ContextItem` objects matching the search criteria.
|
|
429
|
+
*/
|
|
296
430
|
queryContext(search) {
|
|
297
431
|
const query$ = this.queryClient
|
|
298
432
|
.query(
|
|
@@ -311,14 +445,42 @@ export class ContextProvider {
|
|
|
311
445
|
// apply context filter if available
|
|
312
446
|
return this.#contextFilter ? query$.pipe(map(this.#contextFilter)) : query$;
|
|
313
447
|
}
|
|
448
|
+
/**
|
|
449
|
+
* Asynchronously queries the context for items matching the provided search string.
|
|
450
|
+
*
|
|
451
|
+
* @see {@link queryContext} for more details.
|
|
452
|
+
*
|
|
453
|
+
* @param search - The search string used to filter context items.
|
|
454
|
+
* @returns A promise that resolves to an array of `ContextItem` objects matching the search criteria.
|
|
455
|
+
*/
|
|
314
456
|
queryContextAsync(search) {
|
|
315
457
|
return lastValueFrom(this.queryContext(search));
|
|
316
458
|
}
|
|
459
|
+
/**
|
|
460
|
+
* Validates whether the provided context item matches one of the allowed context types.
|
|
461
|
+
*
|
|
462
|
+
* @param item - The context item to validate, containing a type with an `id` property.
|
|
463
|
+
* @returns `true` if the context type is not set or if the item's type ID matches one of the allowed types (case-insensitive); otherwise, `false`.
|
|
464
|
+
*/
|
|
317
465
|
validateContext(item) {
|
|
318
466
|
if (!this.#contextType)
|
|
319
467
|
return true;
|
|
320
468
|
return this.#contextType.map((x) => x.toLowerCase()).includes(item.type.id.toLowerCase());
|
|
321
469
|
}
|
|
470
|
+
/**
|
|
471
|
+
* Resolves a context item by fetching related context items of the same type as configured in the provider.
|
|
472
|
+
*
|
|
473
|
+
* This method:
|
|
474
|
+
* - Requests related context items matching the provider's context type.
|
|
475
|
+
* - Filters out invalid context items using `validateContext`.
|
|
476
|
+
* - Selects the first valid context item, throwing an error if none are found.
|
|
477
|
+
* - Logs a warning if multiple valid context items are found.
|
|
478
|
+
* - Returns the resolved context item as an observable.
|
|
479
|
+
*
|
|
480
|
+
* @param item - The context item for which to resolve related context.
|
|
481
|
+
* @returns An observable emitting the resolved context item.
|
|
482
|
+
* @throws Error if no valid related context item is found.
|
|
483
|
+
*/
|
|
322
484
|
resolveContext(item) {
|
|
323
485
|
// request related context items for the given context item with the same context type which the provider is configured with
|
|
324
486
|
return this.relatedContexts({ item, filter: { type: this.#contextType } }).pipe(
|
|
@@ -338,9 +500,28 @@ export class ContextProvider {
|
|
|
338
500
|
return value;
|
|
339
501
|
}));
|
|
340
502
|
}
|
|
503
|
+
/**
|
|
504
|
+
* Asynchronously resolves the provided context item.
|
|
505
|
+
*
|
|
506
|
+
* @see {@link resolveContext} for more details.
|
|
507
|
+
*
|
|
508
|
+
* @param item - The context item to resolve.
|
|
509
|
+
* @returns A promise that resolves to the resolved context item.
|
|
510
|
+
*/
|
|
341
511
|
resolveContextAsync(item) {
|
|
342
512
|
return lastValueFrom(this.resolveContext(item));
|
|
343
513
|
}
|
|
514
|
+
/**
|
|
515
|
+
* Retrieves related context items based on the provided parameters.
|
|
516
|
+
*
|
|
517
|
+
* This method queries the related context client to fetch an array of context items
|
|
518
|
+
* that are related to the specified parameters. If the related context client is not
|
|
519
|
+
* available, it returns an observable that emits an error.
|
|
520
|
+
*
|
|
521
|
+
* @param args - The parameters used to query for related context items.
|
|
522
|
+
* @returns An Observable that emits an array of related context items.
|
|
523
|
+
* @throws Error if no related context client is defined or if the query fails.
|
|
524
|
+
*/
|
|
344
525
|
relatedContexts(args) {
|
|
345
526
|
// check if related context client is available
|
|
346
527
|
if (!this.#contextRelated) {
|
|
@@ -354,12 +535,32 @@ export class ContextProvider {
|
|
|
354
535
|
throw err;
|
|
355
536
|
}));
|
|
356
537
|
}
|
|
538
|
+
/**
|
|
539
|
+
* Asynchronously retrieves an array of related context items based on the provided parameters.
|
|
540
|
+
*
|
|
541
|
+
* @see {@link relatedContexts} for more details.
|
|
542
|
+
*
|
|
543
|
+
* @param args - The parameters used to determine which related contexts to retrieve.
|
|
544
|
+
* @returns A promise that resolves to an array of `ContextItem` objects containing generic records.
|
|
545
|
+
*/
|
|
357
546
|
relatedContextsAsync(args) {
|
|
358
547
|
return lastValueFrom(this.relatedContexts(args));
|
|
359
548
|
}
|
|
549
|
+
/**
|
|
550
|
+
* Clears the current context by setting it to null.
|
|
551
|
+
*
|
|
552
|
+
* This method is typically used to reset or remove the active context,
|
|
553
|
+
* ensuring that subsequent operations do not reference any previous context state.
|
|
554
|
+
*/
|
|
360
555
|
clearCurrentContext() {
|
|
361
556
|
this.setCurrentContext(null);
|
|
362
557
|
}
|
|
558
|
+
/**
|
|
559
|
+
* Disposes of resources held by the context provider.
|
|
560
|
+
*
|
|
561
|
+
* Unsubscribes from all active subscriptions and disposes of the context client,
|
|
562
|
+
* ensuring that any allocated resources are properly released.
|
|
563
|
+
*/
|
|
363
564
|
dispose() {
|
|
364
565
|
this.#subscriptions.unsubscribe();
|
|
365
566
|
this.#contextClient.dispose();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextProvider.js","sourceRoot":"","sources":["../../src/ContextProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ContextProvider.js","sourceRoot":"","sources":["../../src/ContextProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,19 +3,59 @@ import { catchError, map } from 'rxjs/operators';
|
|
|
3
3
|
import equal from 'fast-deep-equal';
|
|
4
4
|
import { Query } from '@equinor/fusion-query';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* `ContextClient` is an observable client for managing and retrieving context items.
|
|
7
|
+
*
|
|
8
|
+
* This class extends `Observable<ContextItem | null | undefined>`, allowing consumers to subscribe to context changes.
|
|
9
|
+
* It encapsulates a `Query` instance for fetching context items by ID and maintains the current context state using a `BehaviorSubject`.
|
|
10
|
+
*
|
|
11
|
+
* ### Features
|
|
12
|
+
* - Exposes the current context synchronously and as an observable stream.
|
|
13
|
+
* - Provides methods to set the current context by ID or item, resolving and updating as needed.
|
|
14
|
+
* - Supports asynchronous context resolution with optional await behavior.
|
|
15
|
+
* - Handles errors during context resolution, unwrapping nested causes.
|
|
16
|
+
* - Implements a `dispose` method to clean up internal subscriptions.
|
|
17
|
+
*
|
|
18
|
+
* @template ContextItem The type of the context item managed by the client.
|
|
19
|
+
* @extends Observable<ContextItem | null | undefined>
|
|
20
|
+
*
|
|
7
21
|
* @todo - should this have `undefined` as a valid value?
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const client = new ContextClient(options);
|
|
26
|
+
* client.setCurrentContext('context-id');
|
|
27
|
+
* client.currentContext$.subscribe(ctx => { ... });
|
|
28
|
+
* ```
|
|
8
29
|
*/
|
|
9
30
|
export class ContextClient extends Observable {
|
|
10
31
|
#client;
|
|
11
32
|
/** might change to reactive state, for comparing state with reducer */
|
|
12
33
|
#currentContext$;
|
|
34
|
+
/**
|
|
35
|
+
* Gets the current context item.
|
|
36
|
+
*
|
|
37
|
+
* @returns The current {@link ContextItem}, or `null` if no context is set, or `undefined` if the context has not been initialized.
|
|
38
|
+
*/
|
|
13
39
|
get currentContext() {
|
|
14
40
|
return this.#currentContext$.value;
|
|
15
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* An observable stream that emits the current context item.
|
|
44
|
+
*
|
|
45
|
+
* @remarks
|
|
46
|
+
* This observable emits the current `ContextItem` whenever it changes.
|
|
47
|
+
* It can emit `null` or `undefined` if there is no current context.
|
|
48
|
+
*
|
|
49
|
+
* @returns Observable that emits the current `ContextItem`, `null`, or `undefined`.
|
|
50
|
+
*/
|
|
16
51
|
get currentContext$() {
|
|
17
52
|
return this.#currentContext$.asObservable();
|
|
18
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Gets the query client for retrieving a specific `ContextItem` by its ID.
|
|
56
|
+
*
|
|
57
|
+
* @returns A `Query` instance configured to fetch a `ContextItem` using an object containing an `id` property.
|
|
58
|
+
*/
|
|
19
59
|
get client() {
|
|
20
60
|
return this.#client;
|
|
21
61
|
}
|
|
@@ -24,6 +64,14 @@ export class ContextClient extends Observable {
|
|
|
24
64
|
this.#client = new Query(options);
|
|
25
65
|
this.#currentContext$ = new BehaviorSubject(undefined);
|
|
26
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Sets the current context based on the provided identifier or context item.
|
|
69
|
+
*
|
|
70
|
+
* If a string identifier is provided, attempts to resolve the corresponding context asynchronously.
|
|
71
|
+
* If a `ContextItem` or `null` is provided, updates the current context only if it differs from the existing one.
|
|
72
|
+
*
|
|
73
|
+
* @param idOrItem - The context identifier (string), a `ContextItem`, or `null`. If omitted, the current context may be cleared.
|
|
74
|
+
*/
|
|
27
75
|
setCurrentContext(idOrItem) {
|
|
28
76
|
if (typeof idOrItem === 'string') {
|
|
29
77
|
// TODO - compare context
|
|
@@ -37,6 +85,13 @@ export class ContextClient extends Observable {
|
|
|
37
85
|
this.#currentContext$.next(idOrItem);
|
|
38
86
|
}
|
|
39
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Resolves a context item by its unique identifier.
|
|
90
|
+
*
|
|
91
|
+
* @param id - The unique identifier of the context item to resolve.
|
|
92
|
+
* @returns An Observable that emits the resolved {@link ContextItem}.
|
|
93
|
+
* @throws Rethrows the underlying error cause if present, otherwise throws the original error.
|
|
94
|
+
*/
|
|
40
95
|
resolveContext(id) {
|
|
41
96
|
return this.#client.query({ id }).pipe(map((x) => x.value),
|
|
42
97
|
// unwrap error
|
|
@@ -47,6 +102,15 @@ export class ContextClient extends Observable {
|
|
|
47
102
|
throw err;
|
|
48
103
|
}));
|
|
49
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Resolves a context item asynchronously by its ID.
|
|
107
|
+
*
|
|
108
|
+
* @param id - The unique identifier of the context item to resolve.
|
|
109
|
+
* @param opt - Optional settings for resolution.
|
|
110
|
+
* @param opt.awaitResolve - If true, waits for the observable to complete and returns the last emitted value;
|
|
111
|
+
* otherwise, returns the first emitted value.
|
|
112
|
+
* @returns A promise that resolves to the requested {@link ContextItem}.
|
|
113
|
+
*/
|
|
50
114
|
resolveContextAsync(id, opt) {
|
|
51
115
|
const fn = opt?.awaitResolve ? lastValueFrom : firstValueFrom;
|
|
52
116
|
return fn(this.resolveContext(id));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextClient.js","sourceRoot":"","sources":["../../../src/client/ContextClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,MAAM,iBAAiB,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAyB,MAAM,uBAAuB,CAAC;AAMrE
|
|
1
|
+
{"version":3,"file":"ContextClient.js","sourceRoot":"","sources":["../../../src/client/ContextClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,MAAM,iBAAiB,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAyB,MAAM,uBAAuB,CAAC;AAMrE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,aAAc,SAAQ,UAA0C;IAC3E,OAAO,CAAqC;IAC5C,uEAAuE;IACvE,gBAAgB,CAAkD;IAElE;;;;OAIG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;IACrC,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,YAAY,OAA4D;QACtE,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAiC,SAAS,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;OAOG;IACI,iBAAiB,CAAC,QAAsC;QAC7D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,yBAAyB;YACzB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;gBAC3B,gCAAgC;iBAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;iBAC7B,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YACvD,oCAAoC;QACtC,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,EAAU;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACnB,eAAe;QACf,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,GAAG,CAAC,KAAK,CAAC;YAClB,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACI,mBAAmB,CAAC,EAAU,EAAE,GAA+B;QACpE,MAAM,EAAE,GAAG,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC;QAC9D,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;CACF;AAED,eAAe,aAAa,CAAC"}
|
package/dist/esm/configurator.js
CHANGED
|
@@ -11,13 +11,11 @@ export class ContextModuleConfigurator {
|
|
|
11
11
|
if (init.hasModule('services')) {
|
|
12
12
|
return init.requireInstance('services');
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (parentServiceModule) {
|
|
17
|
-
return parentServiceModule;
|
|
18
|
-
}
|
|
14
|
+
const parentServiceModule = init.ref?.services;
|
|
15
|
+
if (!parentServiceModule) {
|
|
19
16
|
throw Error('no service services provider configures [ServicesModule]');
|
|
20
17
|
}
|
|
18
|
+
return parentServiceModule;
|
|
21
19
|
}
|
|
22
20
|
async createConfig(init) {
|
|
23
21
|
const config = await this.#configBuilders.reduce(async (cur, cb) => {
|