{"version":3,"sources":["../../src/use-stable-fn/index.ts"],"sourcesContent":["import { useRef } from 'react'\nimport { useLatest } from '../use-latest'\n\nimport type { AnyFunc, WithThis } from '../utils/basic'\n\n/**\n * A React Hook that returns a function whose memory address will never change.\n */\nexport function useStableFn<T extends AnyFunc>(fn: T): T {\n  const latest = useLatest({ fn })\n\n  const stableFnRef = useRef<WithThis<T>>(function (this, ...args) {\n    return latest.current.fn.apply(this, args)\n  })\n\n  return stableFnRef.current as T\n}\n"],"names":["useStableFn","fn","latest","useLatest","stableFnRef","useRef","args","current","apply"],"mappings":";;;;+BAQgBA;;;eAAAA;;;qBARO;yBACG;AAOnB,SAASA,YAA+BC,EAAK;IAClD,IAAMC,SAASC,IAAAA,oBAAS,EAAC;QAAEF,IAAAA;IAAG;IAE9B,IAAMG,cAAcC,IAAAA,aAAM,EAAc;QAAgB,IAAA,IAAA,OAAA,UAAA,QAAA,AAAGC,OAAH,UAAA,OAAA,OAAA,GAAA,OAAA,MAAA;YAAGA,KAAH,QAAA,SAAA,CAAA,KAAO;;QAC7D,OAAOJ,OAAOK,OAAO,CAACN,EAAE,CAACO,KAAK,CAAC,IAAI,EAAEF;IACvC;IAEA,OAAOF,YAAYG,OAAO;AAC5B"}