diff options
| author | Sam Nystrom <sam@samnystrom.dev> | 2024-03-06 20:52:45 +0000 |
|---|---|---|
| committer | Sam Nystrom <15555332-SamNystrom1@users.noreply.replit.com> | 2024-03-06 20:52:45 +0000 |
| commit | ac83dd4a08bdbab6df270d6dae8d9e2d6d619342 (patch) | |
| tree | d928f552d7fb89a96b757b00899d4dbc0639cacd /src/dataflow.ts | |
init
Diffstat (limited to 'src/dataflow.ts')
| -rw-r--r-- | src/dataflow.ts | 19 |
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 |
