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}