@equinor/fusion-framework-module-bookmark 2.1.4 → 2.1.5
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 +8 -0
- package/dist/esm/BookmarkClient.js +46 -66
- package/dist/esm/BookmarkClient.js.map +1 -1
- package/dist/esm/BookmarkConfigurator.js +96 -142
- package/dist/esm/BookmarkConfigurator.js.map +1 -1
- package/dist/esm/BookmarkProvider.actions.js +7 -7
- package/dist/esm/BookmarkProvider.actions.js.map +1 -1
- package/dist/esm/BookmarkProvider.error.js +1 -0
- package/dist/esm/BookmarkProvider.error.js.map +1 -1
- package/dist/esm/BookmarkProvider.js +160 -230
- package/dist/esm/BookmarkProvider.js.map +1 -1
- package/dist/esm/BookmarkProvider.reducer.js +6 -20
- package/dist/esm/BookmarkProvider.reducer.js.map +1 -1
- package/dist/esm/bookmark-module.js +8 -19
- package/dist/esm/bookmark-module.js.map +1 -1
- package/dist/esm/enable-bookmark.js +2 -11
- package/dist/esm/enable-bookmark.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/BookmarkProvider.d.ts +5 -5
- package/dist/types/bookmark.schemas.d.ts +11 -11
- package/dist/types/version.d.ts +1 -1
- package/package.json +7 -7
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 2.1.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`08a4ebb`](https://github.com/equinor/fusion-framework/commit/08a4ebb74b9ce9da8c7a4b4dabe3cd476c67a86e)]:
|
|
8
|
+
- @equinor/fusion-log@1.1.3
|
|
9
|
+
- @equinor/fusion-query@5.2.4
|
|
10
|
+
|
|
3
11
|
## 2.1.4
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
|
@@ -1,26 +1,3 @@
|
|
|
1
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
-
};
|
|
12
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
-
var t = {};
|
|
14
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
-
t[p] = s[p];
|
|
16
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
-
t[p[i]] = s[p[i]];
|
|
20
|
-
}
|
|
21
|
-
return t;
|
|
22
|
-
};
|
|
23
|
-
var _BookmarkClient_api, _BookmarkClient_queryBookmark, _BookmarkClient_queryBookmarks, _BookmarkClient_queryBookmarkData;
|
|
24
1
|
import { Observable } from 'rxjs';
|
|
25
2
|
import { map, shareReplay, tap } from 'rxjs/operators';
|
|
26
3
|
/**
|
|
@@ -46,12 +23,16 @@ const UserSchema = ApiPersonSchema['1.0'].transform((person) => {
|
|
|
46
23
|
});
|
|
47
24
|
// Parse the bookmark entity from the API response
|
|
48
25
|
const parseBookmark = (value) => {
|
|
49
|
-
const
|
|
50
|
-
return bookmarkWithDataSchema().parse(
|
|
26
|
+
const { createdBy, updatedBy, ...rest } = value;
|
|
27
|
+
return bookmarkWithDataSchema().parse({
|
|
28
|
+
...rest,
|
|
29
|
+
createdBy: UserSchema.parse(createdBy),
|
|
30
|
+
updatedBy: updatedBy ? UserSchema.parse(updatedBy) : undefined,
|
|
31
|
+
});
|
|
51
32
|
};
|
|
52
33
|
const parseBookmarkWithoutPayload = (value) => {
|
|
53
34
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
54
|
-
const
|
|
35
|
+
const { payload, ...bookmark } = parseBookmark(value);
|
|
55
36
|
return bookmark;
|
|
56
37
|
};
|
|
57
38
|
/**
|
|
@@ -68,44 +49,44 @@ const parseBookmarkWithoutPayload = (value) => {
|
|
|
68
49
|
* @note if you wish to implement your own bookmarks API client, you can do so by implementing the {@link IBookmarkClient} interface.
|
|
69
50
|
*/
|
|
70
51
|
export class BookmarkClient {
|
|
52
|
+
#api;
|
|
53
|
+
#queryBookmark;
|
|
54
|
+
#queryBookmarks;
|
|
55
|
+
#queryBookmarkData;
|
|
71
56
|
/**
|
|
72
57
|
* Constructs a new `BookmarkClient` instance with the provided `BookmarksApiClient`.
|
|
73
58
|
*
|
|
74
59
|
* @param api - The `BookmarksApiClient` instance to use for making API requests.
|
|
75
60
|
*/
|
|
76
61
|
constructor(api, options) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
_BookmarkClient_queryBookmarks.set(this, void 0);
|
|
80
|
-
_BookmarkClient_queryBookmarkData.set(this, void 0);
|
|
81
|
-
__classPrivateFieldSet(this, _BookmarkClient_api, api, "f");
|
|
82
|
-
const { expire = 5 * 60 * 1000 } = options !== null && options !== void 0 ? options : {};
|
|
62
|
+
this.#api = api;
|
|
63
|
+
const { expire = 5 * 60 * 1000 } = options ?? {};
|
|
83
64
|
// set up the query for fetching a single bookmark
|
|
84
|
-
|
|
65
|
+
this.#queryBookmark = new Query({
|
|
85
66
|
client: {
|
|
86
67
|
fn: (args) => {
|
|
87
|
-
return
|
|
68
|
+
return this.#api.get('v2', args).pipe(map(parseBookmarkWithoutPayload));
|
|
88
69
|
},
|
|
89
70
|
},
|
|
90
71
|
key: (args) => args.bookmarkId,
|
|
91
72
|
expire,
|
|
92
|
-
})
|
|
73
|
+
});
|
|
93
74
|
// set up the query for fetching all bookmarks
|
|
94
|
-
|
|
75
|
+
this.#queryBookmarks = new Query({
|
|
95
76
|
client: {
|
|
96
77
|
fn: (filter) => {
|
|
97
|
-
return
|
|
78
|
+
return this.#api
|
|
98
79
|
.query('v2', { filter })
|
|
99
80
|
.pipe(map((res) => res.map(parseBookmarkWithoutPayload)));
|
|
100
81
|
},
|
|
101
82
|
},
|
|
102
|
-
key: (args) => JSON.stringify(args
|
|
83
|
+
key: (args) => JSON.stringify(args ?? ''),
|
|
103
84
|
expire,
|
|
104
|
-
})
|
|
105
|
-
|
|
85
|
+
});
|
|
86
|
+
this.#queryBookmarkData = new Query({
|
|
106
87
|
client: {
|
|
107
88
|
fn: (args) => {
|
|
108
|
-
return
|
|
89
|
+
return this.#api.getPayload('v1', args).pipe(map((res) => res.payload));
|
|
109
90
|
},
|
|
110
91
|
},
|
|
111
92
|
key: (args) => args.bookmarkId,
|
|
@@ -115,86 +96,85 @@ export class BookmarkClient {
|
|
|
115
96
|
size: 3,
|
|
116
97
|
},
|
|
117
98
|
},
|
|
118
|
-
})
|
|
99
|
+
});
|
|
119
100
|
}
|
|
120
101
|
getAllBookmarks(filter) {
|
|
121
|
-
return
|
|
102
|
+
return this.#queryBookmarks.query(filter).pipe(map((res) => res.value));
|
|
122
103
|
}
|
|
123
104
|
getBookmarkById(bookmarkId) {
|
|
124
|
-
return
|
|
105
|
+
return this.#queryBookmark.query({ bookmarkId }).pipe(map((res) => res.value));
|
|
125
106
|
}
|
|
126
107
|
getBookmarkData(bookmarkId) {
|
|
127
|
-
return
|
|
108
|
+
return this.#queryBookmarkData.query({ bookmarkId }).pipe(map((res) => res.value));
|
|
128
109
|
}
|
|
129
110
|
setBookmarkData(bookmarkId, data) {
|
|
130
|
-
return
|
|
111
|
+
return this.#api.patch('v1', { bookmarkId, updates: { payload: data } }).pipe(map((res) => res.payload), tap((updatedData) => {
|
|
131
112
|
if (updatedData) {
|
|
132
|
-
|
|
113
|
+
this.#queryBookmarkData.mutate({ bookmarkId }, { value: updatedData, updated: Date.now() }, { allowCreation: true });
|
|
133
114
|
}
|
|
134
115
|
}));
|
|
135
116
|
}
|
|
136
117
|
createBookmark(newBookmark) {
|
|
137
|
-
return
|
|
118
|
+
return this.#api.create('v1', newBookmark).pipe(map((response) => parseBookmark(response)),
|
|
138
119
|
/** update the bookmark cache */
|
|
139
120
|
tap((createdBookmark) => {
|
|
140
121
|
console.log('createdBookmark', createdBookmark);
|
|
141
|
-
const { payload
|
|
142
|
-
|
|
122
|
+
const { payload, ...bookmark } = createdBookmark;
|
|
123
|
+
this.#queryBookmark.mutate({ bookmarkId: bookmark.id }, { value: bookmark, updated: Date.now() }, { allowCreation: true });
|
|
143
124
|
if (payload) {
|
|
144
|
-
|
|
125
|
+
this.#queryBookmarkData.mutate({ bookmarkId: bookmark.id }, { value: payload, updated: Date.now() }, { allowCreation: true });
|
|
145
126
|
}
|
|
146
|
-
|
|
127
|
+
this.#queryBookmarks.invalidate();
|
|
147
128
|
}));
|
|
148
129
|
}
|
|
149
130
|
updateBookmark(bookmarkId, updates) {
|
|
150
|
-
const update$ =
|
|
131
|
+
const update$ = this.#api.patch('v1', { bookmarkId, updates: updates }).pipe(map((response) => parseBookmark(response)), shareReplay());
|
|
151
132
|
return new Observable((subscriber) => {
|
|
152
133
|
// update the query cache for the specific bookmark
|
|
153
134
|
subscriber.add(update$.subscribe((updatedBookmark) => {
|
|
154
|
-
const { payload
|
|
135
|
+
const { payload, ...bookmark } = updatedBookmark;
|
|
155
136
|
// payload should not be included in the bookmark object
|
|
156
137
|
payload;
|
|
157
|
-
|
|
138
|
+
this.#queryBookmark.mutate({ bookmarkId }, { value: bookmark, updated: Date.now() }, { allowCreation: false });
|
|
158
139
|
}));
|
|
159
140
|
// update the cache for bookmark data
|
|
160
141
|
subscriber.add(update$.subscribe((updatedBookmark) => {
|
|
161
142
|
const { payload } = updatedBookmark;
|
|
162
143
|
if (payload) {
|
|
163
|
-
|
|
144
|
+
this.#queryBookmarkData.mutate({
|
|
164
145
|
bookmarkId: updatedBookmark.id,
|
|
165
146
|
}, { value: payload, updated: Date.now() }, { allowCreation: true });
|
|
166
147
|
}
|
|
167
148
|
else {
|
|
168
|
-
const cacheKey =
|
|
149
|
+
const cacheKey = this.#queryBookmarkData.generateCacheKey({
|
|
169
150
|
bookmarkId: updatedBookmark.id,
|
|
170
151
|
});
|
|
171
|
-
|
|
152
|
+
this.#queryBookmarkData.cache.removeItem(cacheKey);
|
|
172
153
|
}
|
|
173
154
|
}));
|
|
174
155
|
// invalidate the bookmarks query cache
|
|
175
156
|
subscriber.add(update$.subscribe(() => {
|
|
176
|
-
|
|
157
|
+
this.#queryBookmarks.invalidate();
|
|
177
158
|
}));
|
|
178
159
|
// emit the update to the subscriber
|
|
179
160
|
update$.subscribe(subscriber);
|
|
180
161
|
});
|
|
181
162
|
}
|
|
182
163
|
deleteBookmark(bookmarkId) {
|
|
183
|
-
return
|
|
164
|
+
return this.#api.delete('v1', { bookmarkId });
|
|
184
165
|
}
|
|
185
166
|
addBookmarkToFavorites(bookmarkId) {
|
|
186
|
-
return
|
|
167
|
+
return this.#api
|
|
187
168
|
.addFavourite('v1', { bookmarkId })
|
|
188
|
-
.pipe(tap(() =>
|
|
169
|
+
.pipe(tap(() => this.#queryBookmarks.invalidate()));
|
|
189
170
|
}
|
|
190
171
|
removeBookmarkFromFavorites(bookmarkId) {
|
|
191
|
-
return
|
|
172
|
+
return this.#api
|
|
192
173
|
.removeFavourite('v1', { bookmarkId })
|
|
193
|
-
.pipe(tap(() =>
|
|
174
|
+
.pipe(tap(() => this.#queryBookmarks.invalidate()));
|
|
194
175
|
}
|
|
195
176
|
isBookmarkFavorite(bookmarkId) {
|
|
196
|
-
return
|
|
177
|
+
return this.#api.isFavorite('v1', { bookmarkId });
|
|
197
178
|
}
|
|
198
179
|
}
|
|
199
|
-
_BookmarkClient_api = new WeakMap(), _BookmarkClient_queryBookmark = new WeakMap(), _BookmarkClient_queryBookmarks = new WeakMap(), _BookmarkClient_queryBookmarkData = new WeakMap();
|
|
200
180
|
//# sourceMappingURL=BookmarkClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookmarkClient.js","sourceRoot":"","sources":["../../src/BookmarkClient.ts"],"names":[],"mappings":"
|
|
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;;;;OAIG;IACH,YAAY,GAAgC,EAAE,OAA6B;QACzE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAEhB,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAEjD,kDAAkD;QAClD,IAAI,CAAC,cAAc,GAAG,IAAI,KAAK,CAAC;YAC9B,MAAM,EAAE;gBACN,EAAE,EAAE,CAAC,IAA4B,EAAE,EAAE;oBACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;gBAC1E,CAAC;aACF;YACD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU;YAC9B,MAAM;SACP,CAAC,CAAC;QAEH,8CAA8C;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,KAAK,CAAC;YAC/B,MAAM,EAAE;gBACN,EAAE,EAAE,CAAC,MAAwB,EAAE,EAAE;oBAC/B,OAAO,IAAI,CAAC,IAAI;yBACb,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;yBACvB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;gBAC9D,CAAC;aACF;YACD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;YACzC,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,IAAI,KAAK,CAAC;YAClC,MAAM,EAAE;gBACN,EAAE,EAAE,CAAC,IAA4B,EAAE,EAAE;oBACnC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC1E,CAAC;aACF;YACD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU;YAC9B,MAAM;YACN,KAAK,EAAE;gBACL,QAAQ,EAAE;oBACR,IAAI,EAAE,CAAC;iBACR;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAEM,eAAe,CAAC,MAAwB;QAC7C,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAmB,CAAC,CAAC,CAAC;IACxF,CAAC;IAEM,eAAe,CAAC,UAAkB;QACvC,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACjF,CAAC;IAEM,eAAe,CAAyB,UAAkB;QAC/D,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAK,EAAE,CAAC,GAAG,CAAC,KAAU,CAAC,CAAC,CAAC;IAC7F,CAAC;IAEM,eAAe,CACpB,UAAkB,EAClB,IAAO;QAEP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAC3E,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAY,CAAC,EAC9B,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;YAClB,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAC5B,EAAE,UAAU,EAAE,EACd,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAC3C,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEM,cAAc,CACnB,WAA2B;QAE3B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,CAC7C,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAI,QAAQ,CAAC,CAAC;QAC7C,gCAAgC;QAChC,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;YAChD,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,eAAe,CAAC;YACjD,IAAI,CAAC,cAAc,CAAC,MAAM,CACxB,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,EAC3B,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EACxC,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAC5B,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,EAC3B,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EACvC,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;QACpC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEM,cAAc,CACnB,UAAkB,EAClB,OAA0B;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAC1E,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAI,QAAQ,CAAC,CAAC,EAC7C,WAAW,EAAE,CACd,CAAC;QACF,OAAO,IAAI,UAAU,CAAC,CAAC,UAAU,EAAE,EAAE;YACnC,mDAAmD;YACnD,UAAU,CAAC,GAAG,CACZ,OAAO,CAAC,SAAS,CAAC,CAAC,eAAe,EAAE,EAAE;gBACpC,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,eAAe,CAAC;gBACjD,wDAAwD;gBACxD,OAAO,CAAC;gBACR,IAAI,CAAC,cAAc,CAAC,MAAM,CACxB,EAAE,UAAU,EAAE,EACd,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EACxC,EAAE,aAAa,EAAE,KAAK,EAAE,CACzB,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;YAEF,qCAAqC;YACrC,UAAU,CAAC,GAAG,CACZ,OAAO,CAAC,SAAS,CAAC,CAAC,eAAe,EAAE,EAAE;gBACpC,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;gBACpC,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAC5B;wBACE,UAAU,EAAE,eAAe,CAAC,EAAE;qBAC/B,EACD,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EACvC,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;wBACxD,UAAU,EAAE,eAAe,CAAC,EAAE;qBAC/B,CAAC,CAAC;oBACH,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC,CAAC,CACH,CAAC;YAEF,uCAAuC;YACvC,UAAU,CAAC,GAAG,CACZ,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;gBACrB,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YACpC,CAAC,CAAC,CACH,CAAC;YAEF,oCAAoC;YACpC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,cAAc,CAAC,UAAkB;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAChD,CAAC;IAEM,sBAAsB,CAAC,UAAkB;QAC9C,OAAO,IAAI,CAAC,IAAI;aACb,YAAY,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC;aAClC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,2BAA2B,CAAC,UAAkB;QACnD,OAAO,IAAI,CAAC,IAAI;aACb,eAAe,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC;aACrC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,kBAAkB,CAAC,UAAkB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACpD,CAAC;CACF"}
|
|
@@ -1,24 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
11
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
12
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
13
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
14
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
15
|
-
};
|
|
16
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
17
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
18
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
19
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
20
|
-
};
|
|
21
|
-
var _BookmarkModuleConfigurator_log;
|
|
22
1
|
import { BaseConfigBuilder, } from '@equinor/fusion-framework-module';
|
|
23
2
|
import { BookmarkClient } from './BookmarkClient';
|
|
24
3
|
import { bookmarkConfigSchema } from './bookmark-config.schema';
|
|
@@ -35,13 +14,13 @@ const initialBookmarkConfig = bookmarkConfigSchema
|
|
|
35
14
|
* This class provides a set of methods for configuring the bookmark module.
|
|
36
15
|
*/
|
|
37
16
|
export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
17
|
+
#log;
|
|
18
|
+
defaultExpireTime = 1 * 60 * 1000; // Default expiration time for bookmarks
|
|
38
19
|
constructor(options) {
|
|
39
20
|
super();
|
|
40
|
-
|
|
41
|
-
this
|
|
42
|
-
|
|
43
|
-
__classPrivateFieldSet(this, _BookmarkModuleConfigurator_log, log, "f");
|
|
44
|
-
this._set('log', () => __awaiter(this, void 0, void 0, function* () { return log; }));
|
|
21
|
+
const { log } = options ?? {};
|
|
22
|
+
this.#log = log;
|
|
23
|
+
this._set('log', async () => log);
|
|
45
24
|
}
|
|
46
25
|
/**
|
|
47
26
|
* Sets the log level for the bookmark configurator.
|
|
@@ -54,9 +33,9 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
54
33
|
* - 4: Error, warning, info, and debug messages
|
|
55
34
|
*/
|
|
56
35
|
setLogLevel(level) {
|
|
57
|
-
this._set('logLevel', () =>
|
|
58
|
-
if (
|
|
59
|
-
|
|
36
|
+
this._set('logLevel', async () => level);
|
|
37
|
+
if (this.#log) {
|
|
38
|
+
this.#log.level = level;
|
|
60
39
|
}
|
|
61
40
|
}
|
|
62
41
|
/**
|
|
@@ -76,7 +55,7 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
76
55
|
this._set('client', (init) => client(init));
|
|
77
56
|
}
|
|
78
57
|
else {
|
|
79
|
-
this._set('client', () =>
|
|
58
|
+
this._set('client', async () => client);
|
|
80
59
|
}
|
|
81
60
|
}
|
|
82
61
|
/**
|
|
@@ -92,7 +71,7 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
92
71
|
this._set('parent', (init) => parent(init));
|
|
93
72
|
}
|
|
94
73
|
else {
|
|
95
|
-
this._set('parent', () =>
|
|
74
|
+
this._set('parent', async () => parent);
|
|
96
75
|
}
|
|
97
76
|
}
|
|
98
77
|
/**
|
|
@@ -114,7 +93,7 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
114
93
|
this._set('sourceSystem', sourceSystem);
|
|
115
94
|
}
|
|
116
95
|
else {
|
|
117
|
-
this._set('sourceSystem', () =>
|
|
96
|
+
this._set('sourceSystem', async () => sourceSystem);
|
|
118
97
|
}
|
|
119
98
|
}
|
|
120
99
|
/**
|
|
@@ -155,7 +134,7 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
155
134
|
setFilter(key, value) {
|
|
156
135
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
157
136
|
// @ts-ignore
|
|
158
|
-
this._set(`filters.${key}`, () =>
|
|
137
|
+
this._set(`filters.${key}`, async () => value);
|
|
159
138
|
}
|
|
160
139
|
/**
|
|
161
140
|
* Will set default configuration:
|
|
@@ -169,44 +148,43 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
169
148
|
* @returns The config object.
|
|
170
149
|
*/
|
|
171
150
|
_createConfig(init, initial) {
|
|
172
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
173
151
|
// check if parent is provided
|
|
174
152
|
if (!this._has('parent')) {
|
|
175
|
-
|
|
153
|
+
this.#log?.debug('No parent provided, using default parent');
|
|
176
154
|
// Check if parent and parent version compatible
|
|
177
155
|
const parentModules = init.ref;
|
|
178
156
|
if (parentModules && 'bookmark' in parentModules) {
|
|
179
157
|
const parent = parentModules.bookmark;
|
|
180
158
|
if ('version' in parent &&
|
|
181
159
|
parent.version.satisfies('>=2.0.0')) {
|
|
182
|
-
this._set('parent', () =>
|
|
160
|
+
this._set('parent', async () => parent);
|
|
183
161
|
}
|
|
184
162
|
else {
|
|
185
|
-
|
|
163
|
+
this.#log?.warn('invalid version of parent BookmarkProvider provided');
|
|
186
164
|
}
|
|
187
165
|
}
|
|
188
166
|
else {
|
|
189
|
-
|
|
167
|
+
this.#log?.info('No parent BookmarkProvider found');
|
|
190
168
|
}
|
|
191
169
|
}
|
|
192
170
|
// Ensure a default client is set if none is provided
|
|
193
171
|
if (!this._has('client')) {
|
|
194
|
-
|
|
172
|
+
this.#log?.debug('No client provided, using default client');
|
|
195
173
|
this._set('client', this._createDefaultClient.bind(this));
|
|
196
174
|
}
|
|
197
175
|
// Ensure a default context resolver is set if none is provided
|
|
198
176
|
if (!this._has('resolve.context')) {
|
|
199
|
-
|
|
177
|
+
this.#log?.debug('No context resolver provided, using default context resolver');
|
|
200
178
|
this._set('resolve.context', this._createDefaultContextResolver.bind(this));
|
|
201
179
|
}
|
|
202
180
|
// Ensure a default application resolver is set if none is provided
|
|
203
181
|
if (!this._has('resolve.application')) {
|
|
204
|
-
|
|
182
|
+
this.#log?.debug('No application resolver provided, using default application resolver');
|
|
205
183
|
this._set('resolve.application', this._createDefaultApplicationResolver.bind(this));
|
|
206
184
|
}
|
|
207
185
|
// Ensure a default event provider is set if none is provided
|
|
208
186
|
if (!this._has('eventProvider')) {
|
|
209
|
-
|
|
187
|
+
this.#log?.debug('No event provider provided, using default event provider');
|
|
210
188
|
this._set('eventProvider', this._resolveEventProvider.bind(this));
|
|
211
189
|
}
|
|
212
190
|
// call super to create config
|
|
@@ -217,133 +195,109 @@ export class BookmarkModuleConfigurator extends BaseConfigBuilder {
|
|
|
217
195
|
* @param init - The configuration initialization object.
|
|
218
196
|
* @returns A function that resolves the current context ID, or undefined if no context module is available.
|
|
219
197
|
*/
|
|
220
|
-
_createDefaultContextResolver(init) {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
return id ? { id } : undefined;
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
});
|
|
198
|
+
async _createDefaultContextResolver(init) {
|
|
199
|
+
// Check if context module is available and use context provider if available
|
|
200
|
+
if (init.hasModule('context')) {
|
|
201
|
+
this.#log?.debug('Context module available, awaiting instance');
|
|
202
|
+
const contextProvider = await init.requireInstance('context');
|
|
203
|
+
this.#log?.debug('Context provider available, creating context resolver');
|
|
204
|
+
return async () => {
|
|
205
|
+
this.#log?.debug('Resolving context for bookmarks');
|
|
206
|
+
const id = contextProvider.currentContext?.id;
|
|
207
|
+
return id ? { id } : undefined;
|
|
208
|
+
};
|
|
209
|
+
}
|
|
236
210
|
}
|
|
237
211
|
/**
|
|
238
212
|
* @internal Create a default application resolver for the bookmark module.
|
|
239
213
|
* @param init - The configuration initialization object.
|
|
240
214
|
* @returns A function that resolves the current application key, or undefined if no app module is available.
|
|
241
215
|
*/
|
|
242
|
-
_createDefaultApplicationResolver(init) {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
return undefined;
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
});
|
|
216
|
+
async _createDefaultApplicationResolver(init) {
|
|
217
|
+
// Check if app module is available and use app provider if available
|
|
218
|
+
if (init.hasModule('app')) {
|
|
219
|
+
this.#log?.debug('App module available, awaiting instance');
|
|
220
|
+
const appProvider = await init.requireInstance('app');
|
|
221
|
+
this.#log?.debug('App provider available, creating application resolver');
|
|
222
|
+
return async () => {
|
|
223
|
+
const app = appProvider.current;
|
|
224
|
+
if (app) {
|
|
225
|
+
return {
|
|
226
|
+
appKey: app.appKey,
|
|
227
|
+
name: app.manifest?.name,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
this.#log?.warn('No current application found');
|
|
231
|
+
return undefined;
|
|
232
|
+
};
|
|
233
|
+
}
|
|
264
234
|
}
|
|
265
|
-
_resolveAppProvider(init) {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
(_b = __classPrivateFieldGet(this, _BookmarkModuleConfigurator_log, "f")) === null || _b === void 0 ? void 0 : _b.debug('No app module available, will use ref to app module if available');
|
|
274
|
-
return undefined;
|
|
275
|
-
});
|
|
235
|
+
async _resolveAppProvider(init) {
|
|
236
|
+
// Check if app module is available
|
|
237
|
+
if (init.hasModule('app')) {
|
|
238
|
+
this.#log?.debug('App module available, awaiting instance');
|
|
239
|
+
return init.requireInstance('app');
|
|
240
|
+
}
|
|
241
|
+
this.#log?.debug('No app module available, will use ref to app module if available');
|
|
242
|
+
return undefined;
|
|
276
243
|
}
|
|
277
244
|
/**
|
|
278
245
|
* @internal Create a default event provider for the bookmark module.
|
|
279
246
|
* @param init - The configuration initialization object.
|
|
280
247
|
* @returns A promise that resolves to the default event provider.
|
|
281
248
|
*/
|
|
282
|
-
_resolveEventProvider(init) {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
return init.requireInstance('event');
|
|
289
|
-
}
|
|
290
|
-
});
|
|
249
|
+
async _resolveEventProvider(init) {
|
|
250
|
+
// Check if event module is available
|
|
251
|
+
if (init.hasModule('event')) {
|
|
252
|
+
this.#log?.debug('Event module available, awaiting instance');
|
|
253
|
+
return init.requireInstance('event');
|
|
254
|
+
}
|
|
291
255
|
}
|
|
292
256
|
/**
|
|
293
257
|
* @internal Create a default client for the bookmark module.
|
|
294
258
|
* @param init - The configuration initialization object.
|
|
295
259
|
* @returns A promise that resolves to the default client.
|
|
296
260
|
*/
|
|
297
|
-
_createDefaultClient(init) {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
(_a = __classPrivateFieldGet(this, _BookmarkModuleConfigurator_log, "f")) === null || _a === void 0 ? void 0 : _a.warn('Failed to create bookmark api client');
|
|
307
|
-
}
|
|
308
|
-
});
|
|
261
|
+
async _createDefaultClient(init) {
|
|
262
|
+
try {
|
|
263
|
+
const apiProvider = await this._getServiceProvider(init);
|
|
264
|
+
const api = await apiProvider.createBookmarksClient('json$');
|
|
265
|
+
return new BookmarkClient(api);
|
|
266
|
+
}
|
|
267
|
+
catch (err) {
|
|
268
|
+
this.#log?.warn('Failed to create bookmark api client');
|
|
269
|
+
}
|
|
309
270
|
}
|
|
310
271
|
/**
|
|
311
272
|
* @internal retrieves the service provider from the configuration initialization object.
|
|
312
273
|
* @param init - The configuration initialization object.
|
|
313
274
|
* @returns A promise that resolves to the service provider.
|
|
314
275
|
*/
|
|
315
|
-
_getServiceProvider(init) {
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
(_d = __classPrivateFieldGet(this, _BookmarkModuleConfigurator_log, "f")) === null || _d === void 0 ? void 0 : _d.error('No service provider available, cannot create bookmarks client');
|
|
331
|
-
throw Error('[BookmarkConfigurator] No service provider configures [ServicesModule] ');
|
|
332
|
-
});
|
|
276
|
+
async _getServiceProvider(init) {
|
|
277
|
+
// check if services module is available
|
|
278
|
+
if (init.hasModule('services')) {
|
|
279
|
+
this.#log?.debug('Services module available, awaiting instance');
|
|
280
|
+
return init.requireInstance('services');
|
|
281
|
+
}
|
|
282
|
+
this.#log?.debug('No services module available, will use ref services module if available');
|
|
283
|
+
// check if parent has services module
|
|
284
|
+
const parentServiceModule = init.ref?.services;
|
|
285
|
+
if (parentServiceModule) {
|
|
286
|
+
return parentServiceModule;
|
|
287
|
+
}
|
|
288
|
+
// No service provider available
|
|
289
|
+
this.#log?.error('No service provider available, cannot create bookmarks client');
|
|
290
|
+
throw Error('[BookmarkConfigurator] No service provider configures [ServicesModule] ');
|
|
333
291
|
}
|
|
334
|
-
_processConfig(config, _init) {
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
throw err;
|
|
343
|
-
}
|
|
344
|
-
});
|
|
292
|
+
async _processConfig(config, _init) {
|
|
293
|
+
try {
|
|
294
|
+
return bookmarkConfigSchema.parse(config);
|
|
295
|
+
}
|
|
296
|
+
catch (err) {
|
|
297
|
+
this.#log?.error('Failed to parse config', config, err.issues ?? err);
|
|
298
|
+
throw err;
|
|
299
|
+
}
|
|
345
300
|
}
|
|
346
301
|
}
|
|
347
|
-
_BookmarkModuleConfigurator_log = new WeakMap();
|
|
348
302
|
export default BookmarkModuleConfigurator;
|
|
349
303
|
//# sourceMappingURL=BookmarkConfigurator.js.map
|