diff --git a/.eslintrc.yml b/.eslintrc.yml index f1edc4dcf..4fdede665 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -5,5 +5,6 @@ overrides: - files: - js/ui/init.js - js/dbusServices/** + - subprojects/extensions-app/** parserOptions: sourceType: module diff --git a/subprojects/extensions-app/js/gnome-extensions-app.in b/subprojects/extensions-app/js/gnome-extensions-app.in index dc6d62760..99d23204d 100644 --- a/subprojects/extensions-app/js/gnome-extensions-app.in +++ b/subprojects/extensions-app/js/gnome-extensions-app.in @@ -1,2 +1,2 @@ #!/bin/sh -@gjs@ @pkgdatadir@/@app_id@ "$@" +@gjs@ -m @pkgdatadir@/@app_id@ "$@" diff --git a/subprojects/extensions-app/js/main.js b/subprojects/extensions-app/js/main.js index dababa71a..912471ae8 100644 --- a/subprojects/extensions-app/js/main.js +++ b/subprojects/extensions-app/js/main.js @@ -1,10 +1,12 @@ -/* exported main */ -imports.gi.versions.Adw = '1'; -imports.gi.versions.Gtk = '4.0'; +import Adw from 'gi://Adw?version=1'; +import GLib from 'gi://GLib'; +import Gio from 'gi://Gio'; +import GObject from 'gi://GObject'; +import Gtk from 'gi://Gtk?version=4.0'; +import Shew from 'gi://Shew'; -const Gettext = imports.gettext; +import * as Gettext from 'gettext'; const Package = imports.package; -const { Adw, GLib, Gio, GObject, Gtk, Shew } = imports.gi; Package.initFormat(); @@ -540,9 +542,13 @@ function initEnvironment() { }; } -function main(argv) { +/** + * @param {string[]} argv - command line arguments + * @returns {void} + */ +export async function main(argv) { initEnvironment(); Package.initGettext(); - new Application().run(argv); + await new Application().runAsync(argv); } diff --git a/subprojects/extensions-app/js/org.gnome.Extensions.in b/subprojects/extensions-app/js/org.gnome.Extensions.in index da7ab2512..182393596 100644 --- a/subprojects/extensions-app/js/org.gnome.Extensions.in +++ b/subprojects/extensions-app/js/org.gnome.Extensions.in @@ -1,6 +1,10 @@ -imports.package.start({ +import {programInvocationName, programArgs} from 'system'; + +imports.package.init({ name: '@PACKAGE_NAME@', version: '@PACKAGE_VERSION@', prefix: '@prefix@', libdir: '@libdir@', }); +const {main} = await import(`${imports.package.moduledir}/main.js`); +await main([programInvocationName, ...programArgs]);