import { Signal } from "@preact-signals/unified-signals"; import { accessorOfSignal } from "./getter"; import { setterOfSignal } from "./setter"; import { Accessor, Setter } from "./type"; const referenceCache = new WeakMap, SolidSignalApi>(); export type SolidSignalApi = readonly [Accessor, Setter]; export const toSolidLikeSignal = (s: Signal): SolidSignalApi => { { const fromCache = referenceCache.get(s); if (fromCache) { return fromCache; } } const result = [accessorOfSignal(s), setterOfSignal(s)] as const; referenceCache.set(s, result); return result; };