import { ReadonlySignal } from "@preact-signals/unified-signals"; import { Accessor } from "./type"; function accessor(this: ReadonlySignal) { return this.value; } export const accessorOfSignal = (s: ReadonlySignal): Accessor => accessor.bind(s) as Accessor; const accessorsCache = new WeakMap, Accessor>(); export const stableAccessorOfSignal = (s: ReadonlySignal): Accessor => accessorsCache.get(s) || accessorsCache.set(s, accessorOfSignal(s)).get(s)!;