A minimal starter for ATProto logins in Astro
1import { NodeOAuthClient } from '@atproto/oauth-client-node'
2import { createOAuthClient } from './oauth'
3
4export type AppContext = {
5 oauthClient: NodeOAuthClient
6}
7
8let _ctx: AppContext | null = null
9
10export async function getAppContext(): Promise<AppContext> {
11 if (_ctx) return _ctx
12
13 const oauthClient = await createOAuthClient()
14
15 _ctx = { oauthClient }
16 return _ctx
17}