12345678910111213141516171819202122232425262728293031323334353637383940 |
- import {Config} from 'sentry/types';
- const BOOTSTRAP_URL = '/api/client-config/';
- const bootApplication = (data: Config) => {
- window.csrfCookieName = data.csrfCookieName;
- return data;
- };
- /**
- * Load the client configuration data using the BOOTSTRAP_URL. Used when
- * running in standalone SPA mode.
- */
- async function bootWithHydration() {
- const response = await fetch(BOOTSTRAP_URL);
- const data: Config = await response.json();
- window.__initialData = data;
- return bootApplication(data);
- }
- /**
- * Load client configuration bootstrap data. This will detect if the app is
- * running in SPA mode or being booted from the django-rendered layout.html
- * template.
- */
- 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);
- }
|