From e398c9f997935d04835df387b6bc40bdf7a87910 Mon Sep 17 00:00:00 2001 From: Aylur Date: Wed, 31 Jul 2024 13:55:17 +0200 Subject: feat: optional Variable.derive transform --- gjs/src/variable.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gjs/src') diff --git a/gjs/src/variable.ts b/gjs/src/variable.ts index 05e142f..d583ab1 100644 --- a/gjs/src/variable.ts +++ b/gjs/src/variable.ts @@ -195,13 +195,14 @@ class VariableWrapper extends Function { return this as unknown as Variable } - static derive | Binding>, Args extends { [K in keyof Deps]: Deps[K] extends Variable ? T : Deps[K] extends Binding ? T : never }, - >(deps: Deps, fn: (...args: Args) => V) { + V = Args, + >(deps: Deps, fn: (...args: Args) => V = (...args) => args as unknown as V) { const update = () => fn(...deps.map(d => d.get()) as Args) const derived = new Variable(update()) const unsubs = deps.map(dep => dep.subscribe(() => derived.set(update()))) -- cgit v1.2.3