import {Config} from 'app/types'; const BOOTSTRAP_URL = '/api/client-config/'; const bootApplication = (data: Config) => { window.csrfCookieName = data.csrfCookieName; return data; }; async function bootWithHydration() { const response = await fetch(BOOTSTRAP_URL); const data: Config = await response.json(); window.__initialData = data; return bootApplication(data); } export async function bootstrap() { const bootstrapData = window.__initialData; // If __initialData is not already set on the window, we are likely running in // pure SPA mode, meaning django is not serving our frontend application and we // need to make an API request to hydrate the bootstrap data to boot the app. if (bootstrapData === undefined) { return await bootWithHydration(); } return bootApplication(bootstrapData); }