summaryrefslogtreecommitdiff
path: root/lang/gjs/src/binding.ts
diff options
context:
space:
mode:
authorAylur <[email protected]>2024-11-24 00:04:07 +0000
committerAylur <[email protected]>2024-12-02 22:34:01 +0100
commit2f09ed83386b334f0dfb7f376b99739b15e49fc9 (patch)
tree4be7848780c4145310a5fa69c60661a61c69ca47 /lang/gjs/src/binding.ts
parent990f031507b21f8a18c0710016fb76b1f260afe8 (diff)
gjs gtk4 support
export jsx-runtime
Diffstat (limited to 'lang/gjs/src/binding.ts')
-rw-r--r--lang/gjs/src/binding.ts8
1 files changed, 4 insertions, 4 deletions
diff --git a/lang/gjs/src/binding.ts b/lang/gjs/src/binding.ts
index 95d905f..19a55cf 100644
--- a/lang/gjs/src/binding.ts
+++ b/lang/gjs/src/binding.ts
@@ -20,7 +20,7 @@ export interface Connectable {
[key: string]: any
}
-export default class Binding<Value> {
+export class Binding<Value> {
private transformFn = (v: any) => v
#emitter: Subscribable<Value> | Connectable
@@ -46,7 +46,7 @@ export default class Binding<Value> {
return `Binding<${this.#emitter}${this.#prop ? `, "${this.#prop}"` : ""}>`
}
- as<T>(fn: (v: Value) => T): Binding<T> {
+ as<T>(fn: (v: Value) => T | Binding<T>): Binding<T> {
const bind = new Binding(this.#emitter, this.#prop)
bind.transformFn = (v: Value) => fn(this.transformFn(v))
return bind as unknown as Binding<T>
@@ -72,8 +72,7 @@ export default class Binding<Value> {
return this.#emitter.subscribe(() => {
callback(this.get())
})
- }
- else if (typeof this.#emitter.connect === "function") {
+ } else if (typeof this.#emitter.connect === "function") {
const signal = `notify::${this.#prop}`
const id = this.#emitter.connect(signal, () => {
callback(this.get())
@@ -87,3 +86,4 @@ export default class Binding<Value> {
}
export const { bind } = Binding
+export default Binding