mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-09-28 02:40:50 +00:00
64 lines
1.9 KiB
Diff
64 lines
1.9 KiB
Diff
diff --git a/src/utils.js b/src/utils.js
|
|
index 3a9863d..6314f39 100644
|
|
--- a/src/utils.js
|
|
+++ b/src/utils.js
|
|
@@ -547,29 +547,40 @@ export function formatDateTime(date) {
|
|
}
|
|
|
|
/**
|
|
- * @returns {Tracker.SparqlConnection}
|
|
+ * @returns {Promise<Tracker.SparqlConnection>}
|
|
*/
|
|
export async function getSparqlStore() {
|
|
- await _sparqlStorePromise;
|
|
+ if (_sparqlStorePromise)
|
|
+ return _sparqlStorePromise;
|
|
|
|
- if (_sparqlStore)
|
|
- return _sparqlStore;
|
|
-
|
|
- const {promise, resolve} = Promise.withResolvers();
|
|
+ const { promise, resolve, reject } = Promise.withResolvers();
|
|
_sparqlStorePromise = promise;
|
|
|
|
- const path = GLib.build_filenamev(
|
|
- [GLib.get_user_data_dir(), 'polari', 'chatlogs.v1']);
|
|
- const dir = Gio.File.new_for_path(path);
|
|
- const ontology = Gio.File.new_for_uri(
|
|
- 'resource:///org/gnome/Polari/ontologies/');
|
|
-
|
|
- _sparqlStore = await Tracker.SparqlConnection.new_async(
|
|
- Tracker.SparqlConnectionFlags.FTS_ENABLE_STEMMER |
|
|
- Tracker.SparqlConnectionFlags.FTS_ENABLE_UNACCENT,
|
|
- dir, ontology, null);
|
|
+ (async () => {
|
|
+ try {
|
|
+ if (_sparqlStore) {
|
|
+ resolve(_sparqlStore);
|
|
+ return;
|
|
+ }
|
|
|
|
- resolve();
|
|
+ const path = GLib.build_filenamev(
|
|
+ [GLib.get_user_data_dir(), 'polari', 'chatlogs.v1']);
|
|
+ const dir = Gio.File.new_for_path(path);
|
|
+ const ontology = Gio.File.new_for_uri(
|
|
+ 'resource:///org/gnome/Polari/ontologies/');
|
|
+
|
|
+ const store = await Tracker.SparqlConnection.new_async(
|
|
+ Tracker.SparqlConnectionFlags.FTS_ENABLE_STEMMER |
|
|
+ Tracker.SparqlConnectionFlags.FTS_ENABLE_UNACCENT,
|
|
+ dir, ontology, null
|
|
+ );
|
|
+
|
|
+ _sparqlStore = store;
|
|
+ resolve(store);
|
|
+ } catch (e) {
|
|
+ reject(e);
|
|
+ }
|
|
+ })();
|
|
|
|
- return _sparqlStore;
|
|
+ return promise;
|
|
}
|