summaryrefslogtreecommitdiff
path: root/src/dataflow.ts
blob: ffbab5dda1ade9ab758186c321687dcf791e7d19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { signal, Signal } from '@preact/signals';

export class InputSocket<T> {
	link: Signal<null | Signal<T>>;
	manual: Signal<T>;

	constructor(initialValue: T) {
		this.link = signal(null);
		this.manual = signal(initialValue);
	}

	get value() {
		return this.link.value ? this.link.value.value : this.manual.value;
	}

	set value(x: T) {
		this.manual.value = x;
	}
}