{"version":3,"file":"useServerFn.cjs","sources":["../../src/useServerFn.ts"],"sourcesContent":["import { isRedirect, useRouter } from '@tanstack/react-router'\n\nexport function useServerFn<T extends (...deps: Array<any>) => Promise<any>>(\n  serverFn: T,\n): (...args: Parameters<T>) => ReturnType<T> {\n  const router = useRouter()\n\n  return (async (...args: Array<any>) => {\n    try {\n      const res = await serverFn(...args)\n\n      if (isRedirect(res)) {\n        throw res\n      }\n\n      return res\n    } catch (err) {\n      if (isRedirect(err)) {\n        const resolvedRedirect = router.resolveRedirect({\n          ...err,\n          _fromLocation: router.state.location,\n        })\n\n        return router.navigate(resolvedRedirect)\n      }\n\n      throw err\n    }\n  }) as any\n}\n"],"names":["useRouter","isRedirect"],"mappings":";;;AAEO,SAAS,YACd,UAC2C;AAC3C,QAAM,SAASA,YAAAA,UAAU;AAEzB,SAAQ,UAAU,SAAqB;AACjC,QAAA;AACF,YAAM,MAAM,MAAM,SAAS,GAAG,IAAI;AAE9B,UAAAC,YAAAA,WAAW,GAAG,GAAG;AACb,cAAA;AAAA,MAAA;AAGD,aAAA;AAAA,aACA,KAAK;AACR,UAAAA,YAAAA,WAAW,GAAG,GAAG;AACb,cAAA,mBAAmB,OAAO,gBAAgB;AAAA,UAC9C,GAAG;AAAA,UACH,eAAe,OAAO,MAAM;AAAA,QAAA,CAC7B;AAEM,eAAA,OAAO,SAAS,gBAAgB;AAAA,MAAA;AAGnC,YAAA;AAAA,IAAA;AAAA,EAEV;AACF;;"}