From 5f35244b12150b074474f4808115a63ee38366ec Mon Sep 17 00:00:00 2001 From: Aylur Date: Sun, 17 Nov 2024 16:08:33 +0000 Subject: fix: #106 gtk3 Fragment --- lang/gjs/src/gtk3/jsx-runtime.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lang/gjs') diff --git a/lang/gjs/src/gtk3/jsx-runtime.ts b/lang/gjs/src/gtk3/jsx-runtime.ts index 22dc424..9da4bb6 100644 --- a/lang/gjs/src/gtk3/jsx-runtime.ts +++ b/lang/gjs/src/gtk3/jsx-runtime.ts @@ -10,7 +10,8 @@ export function Fragment({ children = [], child }: { child?: BindableChild children?: Array }) { - return mergeBindings([...children, child]) + if (child) children.push(child) + return mergeBindings(children) } export function jsx( -- cgit v1.2.3 From f5ed9aad2c8ab133b5c188aec70b0f704748015d Mon Sep 17 00:00:00 2001 From: Aylur Date: Mon, 18 Nov 2024 14:53:06 +0000 Subject: fix(gjs): add workaround for array props --- lang/gjs/src/_app.ts | 1 + lang/gjs/src/index.ts | 1 + lang/gjs/src/overrides.ts | 69 +++++++++++++++++++++++++++++++++++++++++++++++ lang/gjs/tsconfig.json | 1 + 4 files changed, 72 insertions(+) create mode 100644 lang/gjs/src/overrides.ts (limited to 'lang/gjs') diff --git a/lang/gjs/src/_app.ts b/lang/gjs/src/_app.ts index 82e8bb5..60fb407 100644 --- a/lang/gjs/src/_app.ts +++ b/lang/gjs/src/_app.ts @@ -1,3 +1,4 @@ +import "./overrides" import { setConsoleLogDomain } from "console" import { exit, programArgs } from "system" import IO from "gi://AstalIO" diff --git a/lang/gjs/src/index.ts b/lang/gjs/src/index.ts index cabc961..f4c5773 100644 --- a/lang/gjs/src/index.ts +++ b/lang/gjs/src/index.ts @@ -1,3 +1,4 @@ +import "./overrides" export { default as AstalIO } from "gi://AstalIO?version=0.1" export * from "./process.js" export * from "./time.js" diff --git a/lang/gjs/src/overrides.ts b/lang/gjs/src/overrides.ts new file mode 100644 index 0000000..6643ba5 --- /dev/null +++ b/lang/gjs/src/overrides.ts @@ -0,0 +1,69 @@ +/** + * Workaround for "Can't convert non-null pointer to JS value " + */ + +export { } + +const snakeify = (str: string) => str + .replace(/([a-z])([A-Z])/g, "$1_$2") + .replaceAll("-", "_") + .toLowerCase() + +async function suppress(mod: Promise<{ default: T }>, patch: (m: T) => void) { + return mod.then(m => patch(m.default)).catch(() => void 0) +} + +function patch

(proto: P, prop: Extract) { + Object.defineProperty(proto, prop, { + get() { return this[`get_${snakeify(prop)}`]() }, + }) +} + +await suppress(import("gi://AstalApps"), ({ Apps, Application }) => { + patch(Apps.prototype, "list") + patch(Application.prototype, "keywords") + patch(Application.prototype, "categories") +}) + +await suppress(import("gi://AstalBattery"), ({ UPower }) => { + patch(UPower.prototype, "devices") +}) + +await suppress(import("gi://AstalBluetooth"), ({ Adapter, Bluetooth, Device }) => { + patch(Adapter.prototype, "uuids") + patch(Bluetooth.prototype, "adapters") + patch(Bluetooth.prototype, "devices") + patch(Device.prototype, "uuids") +}) + +await suppress(import("gi://AstalHyprland"), ({ Hyprland, Monitor, Workspace }) => { + patch(Hyprland.prototype, "monitors") + patch(Hyprland.prototype, "workspaces") + patch(Hyprland.prototype, "clients") + patch(Monitor.prototype, "availableModes") + patch(Monitor.prototype, "available_modes") + patch(Workspace.prototype, "clients") +}) + +await suppress(import("gi://AstalMpris"), ({ Mpris, Player }) => { + patch(Mpris.prototype, "players") + patch(Player.prototype, "supported_uri_schemas") + patch(Player.prototype, "supportedUriSchemas") + patch(Player.prototype, "supported_mime_types") + patch(Player.prototype, "supportedMimeTypes") + patch(Player.prototype, "comments") +}) + +await suppress(import("gi://AstalNetwork"), ({ Wifi }) => { + patch(Wifi.prototype, "access_points") + patch(Wifi.prototype, "accessPoints") +}) + +await suppress(import("gi://AstalNotifd"), ({ Notifd, Notification }) => { + patch(Notifd.prototype, "notifications") + patch(Notification.prototype, "actions") +}) + +await suppress(import("gi://AstalPowerProfiles"), ({ PowerProfiles }) => { + patch(PowerProfiles.prototype, "actions") +}) diff --git a/lang/gjs/tsconfig.json b/lang/gjs/tsconfig.json index 4e57e37..7a3a8c8 100644 --- a/lang/gjs/tsconfig.json +++ b/lang/gjs/tsconfig.json @@ -1,6 +1,7 @@ { "compilerOptions": { "experimentalDecorators": true, + "module": "ES2022", "target": "ES2023", "outDir": "dist", "strict": true, -- cgit v1.2.3 From 664c7a4ddfcf48c6e8accd3c33bb94424b0e8609 Mon Sep 17 00:00:00 2001 From: Aylur Date: Mon, 18 Nov 2024 17:56:25 +0000 Subject: fix: f5ed9aad meson --- lang/gjs/meson.build | 1 + lang/gjs/src/_app.ts | 2 +- lang/gjs/src/index.ts | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) (limited to 'lang/gjs') diff --git a/lang/gjs/meson.build b/lang/gjs/meson.build index f4272ee..51496dc 100644 --- a/lang/gjs/meson.build +++ b/lang/gjs/meson.build @@ -14,6 +14,7 @@ install_data( 'src/process.ts', 'src/time.ts', 'src/variable.ts', + 'src/overrides.ts', 'src/_app.ts', ], install_dir: dest, diff --git a/lang/gjs/src/_app.ts b/lang/gjs/src/_app.ts index 60fb407..3dadd04 100644 --- a/lang/gjs/src/_app.ts +++ b/lang/gjs/src/_app.ts @@ -1,4 +1,4 @@ -import "./overrides" +import "./overrides.js" import { setConsoleLogDomain } from "console" import { exit, programArgs } from "system" import IO from "gi://AstalIO" diff --git a/lang/gjs/src/index.ts b/lang/gjs/src/index.ts index f4c5773..8fe8d01 100644 --- a/lang/gjs/src/index.ts +++ b/lang/gjs/src/index.ts @@ -1,4 +1,4 @@ -import "./overrides" +import "./overrides.js" export { default as AstalIO } from "gi://AstalIO?version=0.1" export * from "./process.js" export * from "./time.js" -- cgit v1.2.3 From 12fa0fbf1c05319a6b7a9a772a7b1f03e7ca4cae Mon Sep 17 00:00:00 2001 From: kotontrion Date: Tue, 26 Nov 2024 09:22:35 +0100 Subject: gjs: add workarounds for AstalWp --- lang/gjs/src/overrides.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lang/gjs') diff --git a/lang/gjs/src/overrides.ts b/lang/gjs/src/overrides.ts index 6643ba5..5b1ebad 100644 --- a/lang/gjs/src/overrides.ts +++ b/lang/gjs/src/overrides.ts @@ -67,3 +67,18 @@ await suppress(import("gi://AstalNotifd"), ({ Notifd, Notification }) => { await suppress(import("gi://AstalPowerProfiles"), ({ PowerProfiles }) => { patch(PowerProfiles.prototype, "actions") }) + +await suppress(import("gi://AstalWp"), ({ Wp, Audio, Video }) => { + patch(Wp.prototype, "endpoints") + patch(Wp.prototype, "devices") + patch(Audio.prototype, "streams") + patch(Audio.prototype, "recorders") + patch(Audio.prototype, "microphones") + patch(Audio.prototype, "speakers") + patch(Audio.prototype, "devices") + patch(Video.prototype, "streams") + patch(Video.prototype, "recorders") + patch(Video.prototype, "sinks") + patch(Video.prototype, "sources") + patch(Video.prototype, "devices") +}) -- cgit v1.2.3 From 6fbeb920eae7f5201d828230ac2ac00d78369251 Mon Sep 17 00:00:00 2001 From: kotontrion Date: Wed, 11 Dec 2024 13:18:47 +0100 Subject: gjs: fix typo in overrides --- lang/gjs/src/overrides.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lang/gjs') diff --git a/lang/gjs/src/overrides.ts b/lang/gjs/src/overrides.ts index 5b1ebad..0d09e7b 100644 --- a/lang/gjs/src/overrides.ts +++ b/lang/gjs/src/overrides.ts @@ -47,8 +47,8 @@ await suppress(import("gi://AstalHyprland"), ({ Hyprland, Monitor, Workspace }) await suppress(import("gi://AstalMpris"), ({ Mpris, Player }) => { patch(Mpris.prototype, "players") - patch(Player.prototype, "supported_uri_schemas") - patch(Player.prototype, "supportedUriSchemas") + patch(Player.prototype, "supported_uri_schemes") + patch(Player.prototype, "supportedUriSchemes") patch(Player.prototype, "supported_mime_types") patch(Player.prototype, "supportedMimeTypes") patch(Player.prototype, "comments") -- cgit v1.2.3 From d8d62d748f526eb47622009264d87727a074f7fc Mon Sep 17 00:00:00 2001 From: Aylur Date: Fri, 13 Dec 2024 13:08:52 +0100 Subject: fix(gjs): string property default value --- lang/gjs/src/gobject.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lang/gjs') diff --git a/lang/gjs/src/gobject.ts b/lang/gjs/src/gobject.ts index b744cfb..6bd9969 100644 --- a/lang/gjs/src/gobject.ts +++ b/lang/gjs/src/gobject.ts @@ -178,7 +178,7 @@ function defaultValue(declaration: PropertyDeclaration) { switch (declaration) { case String: - return "default-string" + return "" case Number: return 0 case Boolean: -- cgit v1.2.3