Skip to content

@gluonjs/core / packages/reactivity/src/signals / WritableSignalBridge

Interface: WritableSignalBridge<T> ​

Extends ​

Type Parameters ​

T ​

T

Properties ​

connected ​

readonly connected: boolean

Inherited from ​

SignalBridge.connected


value ​

value: T

Overrides ​

SignalBridge.value

Methods ​

[dispose]() ​

[dispose](): void

Returns ​

void

Inherited from ​

SignalBridge.[dispose]


connect() ​

connect(): void

Returns ​

void

Inherited from ​

SignalBridge.connect


disconnect() ​

disconnect(): void

Returns ​

void

Inherited from ​

SignalBridge.disconnect

Example ​

Write through to an external state signal while retaining the bridge lifecycle:

ts
import {
  Signal,
  fromStandardSignal,
  type BridgeOptions,
  type SignalBridge,
  type StandardSignal,
  type StandardSignalBridgeOptions,
  type StandardSignalImplementation,
  type StandardSignalWatcher,
  type WritableSignalBridge,
  type WritableStandardSignal,
} from '@gluonjs/reactivity/signals';

const implementation: StandardSignalImplementation = Signal;
const quantity: WritableStandardSignal<number> = new Signal.State(1);
const totalSource: StandardSignal<number> = new Signal.Computed(() => quantity.get() * 48);
const options: StandardSignalBridgeOptions = { implementation, connect: true };
const scheduling: BridgeOptions = { schedule: (job) => queueMicrotask(job) };
const quantityBridge: WritableSignalBridge<number> = fromStandardSignal(quantity, scheduling);
const total: SignalBridge<number> = fromStandardSignal(totalSource, options);
const watcher: StandardSignalWatcher = new implementation.subtle.Watcher(() => undefined);
watcher.watch(totalSource);
quantityBridge.value = 2;
console.log(total.value);
watcher.unwatch(totalSource);
quantityBridge.disconnect();
total.disconnect();

Version-matched documentation. Examples are checked against the public package contracts.