UNPKG

better-auth

Version:

The most comprehensive authentication framework for TypeScript.

1 lines 1.58 kB
{"version":3,"file":"session-atom.mjs","names":["session: SessionAtom"],"sources":["../../src/client/session-atom.ts"],"sourcesContent":["import type { BetterAuthClientOptions } from \"@better-auth/core\";\nimport type { BetterFetch } from \"@better-fetch/fetch\";\nimport { atom, onMount } from \"nanostores\";\nimport type { Session, User } from \"../types\";\nimport type { AuthQueryAtom } from \"./query\";\nimport { useAuthQuery } from \"./query\";\nimport { createSessionRefreshManager } from \"./session-refresh\";\n\nexport type SessionAtom = AuthQueryAtom<{\n\tuser: User;\n\tsession: Session;\n}>;\n\nexport function getSessionAtom(\n\t$fetch: BetterFetch,\n\toptions?: BetterAuthClientOptions | undefined,\n) {\n\tconst $signal = atom<boolean>(false);\n\tconst session: SessionAtom = useAuthQuery<{\n\t\tuser: User;\n\t\tsession: Session;\n\t}>($signal, \"/get-session\", $fetch, {\n\t\tmethod: \"GET\",\n\t});\n\n\tonMount(session, () => {\n\t\tconst refreshManager = createSessionRefreshManager({\n\t\t\tsessionAtom: session,\n\t\t\tsessionSignal: $signal,\n\t\t\t$fetch,\n\t\t\toptions,\n\t\t});\n\n\t\trefreshManager.init();\n\n\t\treturn () => {\n\t\t\trefreshManager.cleanup();\n\t\t};\n\t});\n\n\treturn {\n\t\tsession,\n\t\t$sessionSignal: $signal,\n\t};\n}\n"],"mappings":";;;;;AAaA,SAAgB,eACf,QACA,SACC;CACD,MAAM,UAAU,KAAc,MAAM;CACpC,MAAMA,UAAuB,aAG1B,SAAS,gBAAgB,QAAQ,EACnC,QAAQ,OACR,CAAC;AAEF,SAAQ,eAAe;EACtB,MAAM,iBAAiB,4BAA4B;GAClD,aAAa;GACb,eAAe;GACf;GACA;GACA,CAAC;AAEF,iBAAe,MAAM;AAErB,eAAa;AACZ,kBAAe,SAAS;;GAExB;AAEF,QAAO;EACN;EACA,gBAAgB;EAChB"}