summaryrefslogtreecommitdiff
path: root/src/dataflow.ts
diff options
context:
space:
mode:
authorSam Nystrom <sam@samnystrom.dev>2024-03-06 20:52:45 +0000
committerSam Nystrom <15555332-SamNystrom1@users.noreply.replit.com>2024-03-06 20:52:45 +0000
commitac83dd4a08bdbab6df270d6dae8d9e2d6d619342 (patch)
treed928f552d7fb89a96b757b00899d4dbc0639cacd /src/dataflow.ts
init
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