summaryrefslogtreecommitdiff
path: root/src/dataflow.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/dataflow.ts')
-rw-r--r--src/dataflow.ts19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/dataflow.ts b/src/dataflow.ts
new file mode 100644
index 0000000..ffbab5d
--- /dev/null
+++ b/src/dataflow.ts
@@ -0,0 +1,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;
+ }
+} \ No newline at end of file