dependencies: Migrate to ES module and organize dependencies

gi modules are always loaded (there is no API for "set version without
loading"), so
we need to break dependencies.js into three sections:

- Required
- Compile-time optional
- Runtime optional

Required dependencies are always imported, compile-time optional
dependencies
are loaded if gnome-shell is compiled with support for them, and for
runtime optional dependencies we catch any errors when attempting to
load them.
If runtime optional dependencies fail to load we log a debug-level
message.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2822>
This commit is contained in:
Evan Welsh
2023-07-09 23:34:52 -07:00
parent 7a5f1e5c9e
commit c2c4d84fc1
3 changed files with 74 additions and 34 deletions

View File

@ -16,8 +16,8 @@ try {
Gio._promisify(Tp.TextChannel.prototype, 'send_message_async');
Gio._promisify(Tp.ChannelDispatchOperation.prototype, 'claim_with_async');
Gio._promisify(Tpl.LogManager.prototype, 'get_filtered_events_async');
} catch (e) {
log('Telepathy is not available, chat integration will be disabled.');
} catch {
console.debug('Skipping chat support, telepathy not found');
}
const History = imports.misc.history;