{"version":3,"file":"index.cjs","sources":["../src/useSignal.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react';\n\n/**\n * Returns the underlying signal value updating it each time the signal value changes.\n * @param signal - a signal.\n * @param getServerSnapshot - an optional function returning the signal value snapshot. It is used only during SSR\n * to provide an initial value of the signal. When not set, defaults to the signal itself.\n */\nexport function useSignal<T>(\n  signal: {\n    (): T;\n    sub(fn: VoidFunction): VoidFunction;\n  },\n  getServerSnapshot?: () => T\n): T {\n  return useSyncExternalStore(\n    (onStoreChange) => signal.sub(onStoreChange),\n    signal,\n    getServerSnapshot || signal\n  );\n}\n"],"names":["useSignal","signal","getServerSnapshot","useSyncExternalStore","onStoreChange"],"mappings":"yIAQgB,SAAAA,EACdC,EAIAC,EACG,CACI,OAAAC,EAAA,qBACJC,GAAkBH,EAAO,IAAIG,CAAa,EAC3CH,EACAC,GAAqBD,CAAA,CAEzB"}