// AUTO-GENERATED by mizan - do not edit manually // Regenerate with: npm run schemas // // Server-side functions for SSR hydration. // These run in Next.js server components/layouts. import type { currentUserOutput, greetOutput } from './generated.mizan' // ============================================================================ // Hydration Types // ============================================================================ /** Typed hydration data for SSR */ export interface DjangoHydration { currentUser?: currentUserOutput greet?: greetOutput } // ============================================================================ // SSR Hydration Helper // ============================================================================ /** * Fetch hydration data for SSR. * * Call this in your server component: * const hydration = await getDjangoHydration(client) * return ... */ export async function getDjangoHydration( client: { request: (method: string, url: string, body?: unknown) => Promise } ): Promise { const hydration: DjangoHydration = {} const results = await Promise.allSettled([ client.request('POST', '/api/mizan/call/', { fn: 'current_user', args: {} }), client.request('POST', '/api/mizan/call/', { fn: 'greet', args: {} }), ]) if (results[0].status === 'fulfilled') { const data = await (results[0] as PromiseFulfilledResult).value.json() if (data.error) { console.error('[getDjangoHydration] current_user failed:', data.code, data.message) } else { hydration.currentUser = data.data } } else { console.error('[getDjangoHydration] current_user request failed:', (results[0] as PromiseRejectedResult).reason) } if (results[1].status === 'fulfilled') { const data = await (results[1] as PromiseFulfilledResult).value.json() if (data.error) { console.error('[getDjangoHydration] greet failed:', data.code, data.message) } else { hydration.greet = data.data } } else { console.error('[getDjangoHydration] greet request failed:', (results[1] as PromiseRejectedResult).reason) } return hydration }