@equinor/fusion-framework-module-bookmark 4.0.2 → 4.0.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.
- package/CHANGELOG.md +13 -0
- package/dist/esm/BookmarkClient.js +18 -3
- package/dist/esm/BookmarkClient.js.map +1 -1
- package/dist/esm/{BookmarkProvider.error.js → BookmarkFlowError.js} +9 -7
- package/dist/esm/BookmarkFlowError.js.map +1 -0
- package/dist/esm/{BookmarkConfigurator.js → BookmarkModuleConfigurator.js} +36 -5
- package/dist/esm/BookmarkModuleConfigurator.js.map +1 -0
- package/dist/esm/BookmarkProvider.js +112 -23
- package/dist/esm/BookmarkProvider.js.map +1 -1
- package/dist/esm/BookmarkProvider.selectors.js +8 -0
- package/dist/esm/BookmarkProvider.selectors.js.map +1 -1
- package/dist/esm/BookmarkProviderError.js +20 -0
- package/dist/esm/BookmarkProviderError.js.map +1 -0
- package/dist/esm/{BookmarkProvider.actions.js → bookmark-actions.js} +1 -1
- package/dist/esm/bookmark-actions.js.map +1 -0
- package/dist/esm/bookmark-config.schema.js +2 -0
- package/dist/esm/bookmark-config.schema.js.map +1 -1
- package/dist/esm/bookmark-flows/bookmark-api-flows.js +28 -0
- package/dist/esm/bookmark-flows/bookmark-api-flows.js.map +1 -0
- package/dist/esm/bookmark-flows/handle-add-bookmark-as-favorite.js +27 -0
- package/dist/esm/bookmark-flows/handle-add-bookmark-as-favorite.js.map +1 -0
- package/dist/esm/bookmark-flows/handle-create-bookmark.js +27 -0
- package/dist/esm/bookmark-flows/handle-create-bookmark.js.map +1 -0
- package/dist/esm/bookmark-flows/handle-delete-bookmark.js +26 -0
- package/dist/esm/bookmark-flows/handle-delete-bookmark.js.map +1 -0
- package/dist/esm/bookmark-flows/handle-fetch-all-bookmark.js +29 -0
- package/dist/esm/bookmark-flows/handle-fetch-all-bookmark.js.map +1 -0
- package/dist/esm/bookmark-flows/handle-fetch-bookmark-data.js +26 -0
- package/dist/esm/bookmark-flows/handle-fetch-bookmark-data.js.map +1 -0
- package/dist/esm/bookmark-flows/handle-fetch-bookmark.js +30 -0
- package/dist/esm/bookmark-flows/handle-fetch-bookmark.js.map +1 -0
- package/dist/esm/bookmark-flows/handle-remove-bookmark-from-favorites.js +28 -0
- package/dist/esm/bookmark-flows/handle-remove-bookmark-from-favorites.js.map +1 -0
- package/dist/esm/bookmark-flows/handle-remove-bookmark.js +49 -0
- package/dist/esm/bookmark-flows/handle-remove-bookmark.js.map +1 -0
- package/dist/esm/bookmark-flows/handle-update-bookmark.js +28 -0
- package/dist/esm/bookmark-flows/handle-update-bookmark.js.map +1 -0
- package/dist/esm/bookmark-flows/index.js +11 -0
- package/dist/esm/bookmark-flows/index.js.map +1 -0
- package/dist/esm/bookmark-module.js +2 -2
- package/dist/esm/bookmark-module.js.map +1 -1
- package/dist/esm/bookmark.schemas.js +9 -3
- package/dist/esm/bookmark.schemas.js.map +1 -1
- package/dist/esm/create-bookmark-reducer.js +122 -0
- package/dist/esm/create-bookmark-reducer.js.map +1 -0
- package/dist/esm/{BookmarkProvider.store.js → create-bookmark-store.js} +3 -3
- package/dist/esm/create-bookmark-store.js.map +1 -0
- package/dist/esm/enable-bookmark.js +2 -1
- package/dist/esm/enable-bookmark.js.map +1 -1
- package/dist/esm/index.js +12 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/BookmarkClient.d.ts +1 -0
- package/dist/types/{BookmarkProvider.error.d.ts → BookmarkFlowError.d.ts} +9 -4
- package/dist/types/{BookmarkConfigurator.d.ts → BookmarkModuleConfigurator.d.ts} +9 -4
- package/dist/types/BookmarkProvider.d.ts +81 -18
- package/dist/types/BookmarkProvider.interface.d.ts +1 -1
- package/dist/types/BookmarkProvider.selectors.d.ts +3 -3
- package/dist/types/BookmarkProviderError.d.ts +16 -0
- package/dist/types/{BookmarkProvider.actions.d.ts → bookmark-actions.d.ts} +3 -3
- package/dist/types/bookmark-flows/bookmark-api-flows.d.ts +11 -0
- package/dist/types/bookmark-flows/handle-add-bookmark-as-favorite.d.ts +10 -0
- package/dist/types/bookmark-flows/handle-create-bookmark.d.ts +10 -0
- package/dist/types/bookmark-flows/handle-delete-bookmark.d.ts +10 -0
- package/dist/types/bookmark-flows/handle-fetch-all-bookmark.d.ts +10 -0
- package/dist/types/bookmark-flows/handle-fetch-bookmark-data.d.ts +10 -0
- package/dist/types/bookmark-flows/handle-fetch-bookmark.d.ts +10 -0
- package/dist/types/bookmark-flows/handle-remove-bookmark-from-favorites.d.ts +10 -0
- package/dist/types/bookmark-flows/handle-remove-bookmark.d.ts +14 -0
- package/dist/types/bookmark-flows/handle-update-bookmark.d.ts +10 -0
- package/dist/types/bookmark-flows/index.d.ts +10 -0
- package/dist/types/bookmark-module.d.ts +1 -1
- package/dist/types/{BookmarkProvider.reducer.d.ts → create-bookmark-reducer.d.ts} +39 -39
- package/dist/types/{BookmarkProvider.store.d.ts → create-bookmark-store.d.ts} +2 -2
- package/dist/types/enable-bookmark.d.ts +1 -1
- package/dist/types/index.d.ts +12 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +11 -11
- package/src/BookmarkClient.ts +21 -3
- package/src/{BookmarkProvider.error.ts → BookmarkFlowError.ts} +9 -7
- package/src/{BookmarkConfigurator.ts → BookmarkModuleConfigurator.ts} +40 -11
- package/src/BookmarkProvider.interface.ts +3 -2
- package/src/BookmarkProvider.selectors.ts +10 -2
- package/src/BookmarkProvider.ts +112 -23
- package/src/BookmarkProviderError.ts +19 -0
- package/src/{BookmarkProvider.actions.ts → bookmark-actions.ts} +1 -1
- package/src/bookmark-config.schema.ts +2 -0
- package/src/bookmark-flows/bookmark-api-flows.ts +45 -0
- package/src/bookmark-flows/handle-add-bookmark-as-favorite.ts +49 -0
- package/src/bookmark-flows/handle-create-bookmark.ts +47 -0
- package/src/bookmark-flows/handle-delete-bookmark.ts +47 -0
- package/src/bookmark-flows/handle-fetch-all-bookmark.ts +53 -0
- package/src/bookmark-flows/handle-fetch-bookmark-data.ts +58 -0
- package/src/bookmark-flows/handle-fetch-bookmark.ts +64 -0
- package/src/bookmark-flows/handle-remove-bookmark-from-favorites.ts +49 -0
- package/src/bookmark-flows/handle-remove-bookmark.ts +76 -0
- package/src/bookmark-flows/handle-update-bookmark.ts +48 -0
- package/src/bookmark-flows/index.ts +10 -0
- package/src/bookmark-module.ts +2 -2
- package/src/bookmark.schemas.ts +10 -4
- package/src/create-bookmark-reducer.ts +149 -0
- package/src/{BookmarkProvider.store.ts → create-bookmark-store.ts} +4 -4
- package/src/enable-bookmark.ts +3 -2
- package/src/index.ts +12 -1
- package/src/version.ts +1 -1
- package/dist/esm/BookmarkConfigurator.js.map +0 -1
- package/dist/esm/BookmarkProvider.actions.js.map +0 -1
- package/dist/esm/BookmarkProvider.error.js.map +0 -1
- package/dist/esm/BookmarkProvider.flows.js +0 -217
- package/dist/esm/BookmarkProvider.flows.js.map +0 -1
- package/dist/esm/BookmarkProvider.reducer.js +0 -113
- package/dist/esm/BookmarkProvider.reducer.js.map +0 -1
- package/dist/esm/BookmarkProvider.store.js.map +0 -1
- package/dist/types/BookmarkProvider.flows.d.ts +0 -79
- package/src/BookmarkProvider.flows.ts +0 -421
- package/src/BookmarkProvider.reducer.ts +0 -144
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 4.0.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 80c3e4a: Internal: resolve `noExplicitAny`/`noConfusingVoidType` Biome warnings in `enableBookmark`'s configurator widening, `BookmarkCreateArgs`/`BookmarkPayloadGenerator`'s generic defaults, and safely tighten `BookmarkModuleConfigurator`'s internal resolver method return types from `| void` to `| undefined`. No public API or behavior change.
|
|
8
|
+
- 80c3e4a: Internal: add required fusion-lint intent comments explaining `as unknown as T` casts in `BookmarkConfigurator` and `BookmarkProvider`. `bookmarkWithDataSchema`'s `schema` parameter is now optional instead of defaulted, to allow the default schema's cast to be documented with an intent comment; behavior is unchanged for all callers, which never pass a `schema` argument.
|
|
9
|
+
- 80c3e4a: Internal: Resolve fusion-lint warnings across the module — added missing TSDoc `@throws`/`@template` tags and fixed stale parameter/return docs on `BookmarkProvider`'s public API, added intent comments for control-flow and RxJS `.pipe()` chains, and extracted `BookmarkProviderError` into its own file (re-exported from `BookmarkProvider.error.ts` for backwards compatibility).
|
|
10
|
+
|
|
11
|
+
Split the 421-line `BookmarkProvider.flows.ts` into one-handler-per-file modules under `bookmark-flows/*.ts` for maintainability.
|
|
12
|
+
|
|
13
|
+
- 80c3e4a: Internal: renamed 45 source files across these packages to comply with the `filename-convention` lint rule (e.g. `AIConfigurator.ts` → `AiConfigurator.ts`, `BookmarkProvider.actions.ts` → `bookmark-actions.ts`, `errors/app-build-error.ts` → `errors/AppBuildError.ts`, `plugins/api/plugin.ts` → `plugins/api/ApiPlugin.ts`, `errors.ts` → `UnsupportedApiVersion.ts`, etc.). Also added `enable-signalr.ts` to the `filename-convention` exclude list since the suggested rename would incorrectly split the "SignalR" brand name. No public API changes.
|
|
14
|
+
- 80c3e4a: Internal: added missing intent comments ahead of non-obvious control flow, RxJS `.pipe()` chains, iterator calls, and multi-source object merges to comply with the `require-intent-comment` and `require-tsdoc` lint rules. Also removed dead duplicate files left over from an earlier refactor in `navigation` (`events.ts`, `navigated-event.ts`, `history.flows.ts` — all fully superseded by their split replacements) and renamed `bookmarks/schemas.ts` to `bookmarks/bookmark.schemas.ts` in `services` to match the `*.schemas.ts` filename convention. No public API changes.
|
|
15
|
+
|
|
3
16
|
## 4.0.2
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -57,6 +57,7 @@ export class BookmarkClient {
|
|
|
57
57
|
* Constructs a new `BookmarkClient` instance with the provided `BookmarksApiClient`.
|
|
58
58
|
*
|
|
59
59
|
* @param api - The `BookmarksApiClient` instance to use for making API requests.
|
|
60
|
+
* @param options - Optional client options, such as the cache expiry time.
|
|
60
61
|
*/
|
|
61
62
|
constructor(api, options) {
|
|
62
63
|
this.#api = api;
|
|
@@ -65,6 +66,7 @@ export class BookmarkClient {
|
|
|
65
66
|
this.#queryBookmark = new Query({
|
|
66
67
|
client: {
|
|
67
68
|
fn: (args) => {
|
|
69
|
+
// strip the payload from the fetched bookmark before caching
|
|
68
70
|
return this.#api.get('v2', args).pipe(map(parseBookmarkWithoutPayload));
|
|
69
71
|
},
|
|
70
72
|
},
|
|
@@ -75,9 +77,10 @@ export class BookmarkClient {
|
|
|
75
77
|
this.#queryBookmarks = new Query({
|
|
76
78
|
client: {
|
|
77
79
|
fn: (filter) => {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
// strip the payload from each fetched bookmark before caching
|
|
81
|
+
return this.#api.query('v2', { filter }).pipe(map((res) =>
|
|
82
|
+
// strip the payload field from each bookmark
|
|
83
|
+
res.map(parseBookmarkWithoutPayload)));
|
|
81
84
|
},
|
|
82
85
|
},
|
|
83
86
|
key: (args) => JSON.stringify(args ?? ''),
|
|
@@ -86,6 +89,7 @@ export class BookmarkClient {
|
|
|
86
89
|
this.#queryBookmarkData = new Query({
|
|
87
90
|
client: {
|
|
88
91
|
fn: (args) => {
|
|
92
|
+
// extract only the payload from the API response
|
|
89
93
|
return this.#api.getPayload('v1', args).pipe(map((res) => res.payload));
|
|
90
94
|
},
|
|
91
95
|
},
|
|
@@ -100,19 +104,24 @@ export class BookmarkClient {
|
|
|
100
104
|
}
|
|
101
105
|
/** @inheritdoc */
|
|
102
106
|
getAllBookmarks(filter) {
|
|
107
|
+
// unwrap the query result value
|
|
103
108
|
return this.#queryBookmarks.query(filter).pipe(map((res) => res.value));
|
|
104
109
|
}
|
|
105
110
|
/** @inheritdoc */
|
|
106
111
|
getBookmarkById(bookmarkId) {
|
|
112
|
+
// unwrap the query result value
|
|
107
113
|
return this.#queryBookmark.query({ bookmarkId }).pipe(map((res) => res.value));
|
|
108
114
|
}
|
|
109
115
|
/** @inheritdoc */
|
|
110
116
|
getBookmarkData(bookmarkId) {
|
|
117
|
+
// unwrap the query result value
|
|
111
118
|
return this.#queryBookmarkData.query({ bookmarkId }).pipe(map((res) => res.value));
|
|
112
119
|
}
|
|
113
120
|
/** @inheritdoc */
|
|
114
121
|
setBookmarkData(bookmarkId, data) {
|
|
122
|
+
// update the payload cache once the mutation succeeds
|
|
115
123
|
return this.#api.patch('v1', { bookmarkId, updates: { payload: data } }).pipe(map((res) => res.payload), tap((updatedData) => {
|
|
124
|
+
// only update the cache when data was actually returned
|
|
116
125
|
if (updatedData) {
|
|
117
126
|
this.#queryBookmarkData.mutate({ bookmarkId }, { value: updatedData, updated: Date.now() }, { allowCreation: true });
|
|
118
127
|
}
|
|
@@ -120,12 +129,14 @@ export class BookmarkClient {
|
|
|
120
129
|
}
|
|
121
130
|
/** @inheritdoc */
|
|
122
131
|
createBookmark(newBookmark) {
|
|
132
|
+
// parse the response and update caches once the bookmark is created
|
|
123
133
|
return this.#api.create('v1', newBookmark).pipe(map((response) => parseBookmark(response)),
|
|
124
134
|
/** update the bookmark cache */
|
|
125
135
|
tap((createdBookmark) => {
|
|
126
136
|
console.log('createdBookmark', createdBookmark);
|
|
127
137
|
const { payload, ...bookmark } = createdBookmark;
|
|
128
138
|
this.#queryBookmark.mutate({ bookmarkId: bookmark.id }, { value: bookmark, updated: Date.now() }, { allowCreation: true });
|
|
139
|
+
// only cache the payload if the created bookmark has one
|
|
129
140
|
if (payload) {
|
|
130
141
|
this.#queryBookmarkData.mutate({ bookmarkId: bookmark.id }, { value: payload, updated: Date.now() }, { allowCreation: true });
|
|
131
142
|
}
|
|
@@ -134,6 +145,7 @@ export class BookmarkClient {
|
|
|
134
145
|
}
|
|
135
146
|
/** @inheritdoc */
|
|
136
147
|
updateBookmark(bookmarkId, updates) {
|
|
148
|
+
// parse the response and share it across the cache-update subscriptions below
|
|
137
149
|
const update$ = this.#api.patch('v1', { bookmarkId, updates: updates }).pipe(map((response) => parseBookmark(response)), shareReplay());
|
|
138
150
|
return new Observable((subscriber) => {
|
|
139
151
|
// update the query cache for the specific bookmark
|
|
@@ -146,6 +158,7 @@ export class BookmarkClient {
|
|
|
146
158
|
// update the cache for bookmark data
|
|
147
159
|
subscriber.add(update$.subscribe((updatedBookmark) => {
|
|
148
160
|
const { payload } = updatedBookmark;
|
|
161
|
+
// only cache the payload when present, otherwise clear any stale cache entry
|
|
149
162
|
if (payload) {
|
|
150
163
|
this.#queryBookmarkData.mutate({
|
|
151
164
|
bookmarkId: updatedBookmark.id,
|
|
@@ -172,12 +185,14 @@ export class BookmarkClient {
|
|
|
172
185
|
}
|
|
173
186
|
/** @inheritdoc */
|
|
174
187
|
addBookmarkToFavorites(bookmarkId) {
|
|
188
|
+
// invalidate the bookmarks list cache once favorited
|
|
175
189
|
return this.#api
|
|
176
190
|
.addFavourite('v1', { bookmarkId })
|
|
177
191
|
.pipe(tap(() => this.#queryBookmarks.invalidate()));
|
|
178
192
|
}
|
|
179
193
|
/** @inheritdoc */
|
|
180
194
|
removeBookmarkFromFavorites(bookmarkId) {
|
|
195
|
+
// invalidate the bookmarks list cache once unfavorited
|
|
181
196
|
return this.#api
|
|
182
197
|
.removeFavourite('v1', { bookmarkId })
|
|
183
198
|
.pipe(tap(() => this.#queryBookmarks.invalidate()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookmarkClient.js","sourceRoot":"","sources":["../../src/BookmarkClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C;;;GAGG;AACH,OAAO,EAGL,eAAe,GAEhB,MAAM,qDAAqD,CAAC;AAU7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,wEAAwE;AACxE,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;IAC7D,OAAO;QACL,cAAc;QACd,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,EAAE,EAAE,MAAM,CAAC,aAAa;QACxB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,IAAI;KACH,CAAC;AACpB,CAAC,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,aAAa,GAAG,CAAyB,KAAc,EAAe,EAAE;IAC5E,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAEzC,CAAC;IACF,OAAO,sBAAsB,EAAE,CAAC,KAAK,CAAC;QACpC,GAAG,IAAI;QACP,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC;QACtC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAgB,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAAC,KAAc,EAAuB,EAAE;IAC1E,6DAA6D;IAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,cAAc;IACzB,IAAI,CAA8B;IAElC,cAAc,CAAqD;IACnE,eAAe,CAAgD;IAC/D,kBAAkB,CAA0D;IAE5E
|
|
1
|
+
{"version":3,"file":"BookmarkClient.js","sourceRoot":"","sources":["../../src/BookmarkClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export class BookmarkFlowError extends Error {
|
|
9
9
|
action;
|
|
10
|
+
/**
|
|
11
|
+
* Constructs a new `BookmarkFlowError`.
|
|
12
|
+
*
|
|
13
|
+
* @param message - Human-readable error message.
|
|
14
|
+
* @param action - The request action that triggered the failed flow.
|
|
15
|
+
* @param options - Optional `ErrorOptions` (e.g. `cause`).
|
|
16
|
+
*/
|
|
10
17
|
constructor(message,
|
|
11
18
|
/** The request action that triggered the failed flow. */
|
|
12
19
|
action, options) {
|
|
@@ -22,10 +29,5 @@ export class BookmarkFlowError extends Error {
|
|
|
22
29
|
* Distinct from {@link BookmarkFlowError}, which is scoped to internal
|
|
23
30
|
* store flow pipelines.
|
|
24
31
|
*/
|
|
25
|
-
export
|
|
26
|
-
|
|
27
|
-
super(message, options);
|
|
28
|
-
this.name = 'BookmarkProviderError';
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=BookmarkProvider.error.js.map
|
|
32
|
+
export { BookmarkProviderError } from './BookmarkProviderError';
|
|
33
|
+
//# sourceMappingURL=BookmarkFlowError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BookmarkFlowError.js","sourceRoot":"","sources":["../../src/BookmarkFlowError.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAWxB,MAAM;IAVxB;;;;;;OAMG;IACH,YACE,OAAe;IACf,yDAAyD;IACzC,MAAoD,EACpE,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;sBAHR,MAAM;QAItB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;;;;;GAMG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -26,6 +26,13 @@ const parseInitialBookmarkConfigConfig = (initial) => {
|
|
|
26
26
|
export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
27
27
|
#log;
|
|
28
28
|
defaultExpireTime = 1 * 60 * 1000; // Default expiration time for bookmarks
|
|
29
|
+
/**
|
|
30
|
+
* Constructs a new `BookmarkModuleConfigurator`.
|
|
31
|
+
*
|
|
32
|
+
* @param options - Optional configurator options.
|
|
33
|
+
* @param options.log - Logger instance inherited from the parent module, if any.
|
|
34
|
+
* @param options.ref - Reference to sibling module instances available during configuration.
|
|
35
|
+
*/
|
|
29
36
|
constructor(options) {
|
|
30
37
|
super();
|
|
31
38
|
const { log } = options ?? {};
|
|
@@ -44,6 +51,7 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
44
51
|
*/
|
|
45
52
|
setLogLevel(level) {
|
|
46
53
|
this._set('logLevel', async () => level);
|
|
54
|
+
// propagate the level to the configurator's own logger, if one is set
|
|
47
55
|
if (this.#log) {
|
|
48
56
|
this.#log.level = level;
|
|
49
57
|
}
|
|
@@ -61,6 +69,7 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
61
69
|
* @see {@link BookmarkModuleConfig.client}
|
|
62
70
|
*/
|
|
63
71
|
setClient(client) {
|
|
72
|
+
// a callback receives the module initializer and resolves the client itself
|
|
64
73
|
if (typeof client === 'function') {
|
|
65
74
|
this._set('client', (init) => client(init));
|
|
66
75
|
}
|
|
@@ -77,6 +86,7 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
77
86
|
* - If a configuration object is provided directly, it is wrapped in a Promise and used as-is.
|
|
78
87
|
*/
|
|
79
88
|
setParent(parent) {
|
|
89
|
+
// a callback receives the module initializer and resolves the parent itself
|
|
80
90
|
if (typeof parent === 'function') {
|
|
81
91
|
this._set('parent', (init) => parent(init));
|
|
82
92
|
}
|
|
@@ -99,6 +109,7 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
99
109
|
* ```
|
|
100
110
|
*/
|
|
101
111
|
setSourceSystem(sourceSystem) {
|
|
112
|
+
// a callback receives the module initializer and resolves the source system itself
|
|
102
113
|
if (typeof sourceSystem === 'function') {
|
|
103
114
|
this._set('sourceSystem', sourceSystem);
|
|
104
115
|
}
|
|
@@ -134,6 +145,7 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
134
145
|
}
|
|
135
146
|
/**
|
|
136
147
|
* Sets a filter for the bookmark module.
|
|
148
|
+
* @template TKey - The filter key being set.
|
|
137
149
|
* @param key - The key of the filter to set.
|
|
138
150
|
* @param value - The value to set for the filter.
|
|
139
151
|
*
|
|
@@ -143,7 +155,7 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
143
155
|
*/
|
|
144
156
|
setFilter(key, value) {
|
|
145
157
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
146
|
-
// @ts-
|
|
158
|
+
// @ts-expect-error
|
|
147
159
|
this._set(`filters.${key}`, async () => value);
|
|
148
160
|
}
|
|
149
161
|
/**
|
|
@@ -163,10 +175,14 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
163
175
|
this.#log?.debug('No parent provided, using default parent');
|
|
164
176
|
// Check if parent and parent version compatible
|
|
165
177
|
const parentModules = init.ref;
|
|
178
|
+
// only use the parent module's bookmark provider if it's actually present
|
|
166
179
|
if (parentModules && 'bookmark' in parentModules) {
|
|
167
180
|
const parent = parentModules.bookmark;
|
|
168
|
-
|
|
169
|
-
|
|
181
|
+
// `parent` is narrowed to `{ version: unknown }` by the `'version' in parent` check below,
|
|
182
|
+
// so it must be cast through `unknown` to access `BookmarkProvider`-specific members.
|
|
183
|
+
const parentProvider = parent;
|
|
184
|
+
// only inherit from a parent whose version satisfies the minimum supported range
|
|
185
|
+
if ('version' in parent && parentProvider.version.satisfies('>=2.0.0')) {
|
|
170
186
|
this._set('parent', async () => parent);
|
|
171
187
|
}
|
|
172
188
|
else {
|
|
@@ -231,6 +247,7 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
231
247
|
this.#log?.debug('App provider available, creating application resolver');
|
|
232
248
|
return async () => {
|
|
233
249
|
const app = appProvider.current;
|
|
250
|
+
// only resolve the application if there is a currently loaded app
|
|
234
251
|
if (app) {
|
|
235
252
|
return {
|
|
236
253
|
appKey: app.appKey,
|
|
@@ -242,6 +259,11 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
242
259
|
};
|
|
243
260
|
}
|
|
244
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* @internal Resolves the {@link AppModuleProvider} for the bookmark module.
|
|
264
|
+
* @param init - The configuration initialization object.
|
|
265
|
+
* @returns A promise that resolves to the app module provider, or undefined if unavailable.
|
|
266
|
+
*/
|
|
245
267
|
async _resolveAppProvider(init) {
|
|
246
268
|
// Check if app module is available
|
|
247
269
|
if (init.hasModule('app')) {
|
|
@@ -274,7 +296,7 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
274
296
|
const api = await apiProvider.createBookmarksClient('json$');
|
|
275
297
|
return new BookmarkClient(api);
|
|
276
298
|
}
|
|
277
|
-
catch (
|
|
299
|
+
catch (_err) {
|
|
278
300
|
this.#log?.warn('Failed to create bookmark api client');
|
|
279
301
|
}
|
|
280
302
|
}
|
|
@@ -282,6 +304,7 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
282
304
|
* @internal retrieves the service provider from the configuration initialization object.
|
|
283
305
|
* @param init - The configuration initialization object.
|
|
284
306
|
* @returns A promise that resolves to the service provider.
|
|
307
|
+
* @throws {Error} When no services module or parent service module is available.
|
|
285
308
|
*/
|
|
286
309
|
async _getServiceProvider(init) {
|
|
287
310
|
// check if services module is available
|
|
@@ -292,6 +315,7 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
292
315
|
this.#log?.debug('No services module available, will use ref services module if available');
|
|
293
316
|
// check if parent has services module
|
|
294
317
|
const parentServiceModule = init.ref?.services;
|
|
318
|
+
// reuse the parent's service module if one is available
|
|
295
319
|
if (parentServiceModule) {
|
|
296
320
|
return parentServiceModule;
|
|
297
321
|
}
|
|
@@ -299,6 +323,13 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
299
323
|
this.#log?.error('No service provider available, cannot create bookmarks client');
|
|
300
324
|
throw Error('[BookmarkConfigurator] No service provider configures [ServicesModule] ');
|
|
301
325
|
}
|
|
326
|
+
/**
|
|
327
|
+
* @internal Validates and normalizes the resolved config before it's returned from `build`.
|
|
328
|
+
* @param config - The partially-resolved bookmark module config.
|
|
329
|
+
* @param _init - The configuration initialization object (unused).
|
|
330
|
+
* @returns The validated {@link BookmarkModuleConfig}.
|
|
331
|
+
* @throws {ZodError} When the config fails schema validation.
|
|
332
|
+
*/
|
|
302
333
|
async _processConfig(config, _init) {
|
|
303
334
|
try {
|
|
304
335
|
return parseBookmarkConfig(config);
|
|
@@ -310,4 +341,4 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
310
341
|
}
|
|
311
342
|
}
|
|
312
343
|
export default BookmarkModuleConfigurator;
|
|
313
|
-
//# sourceMappingURL=
|
|
344
|
+
//# sourceMappingURL=BookmarkModuleConfigurator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BookmarkModuleConfigurator.js","sourceRoot":"","sources":["../../src/BookmarkModuleConfigurator.ts"],"names":[],"mappings":"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"}
|