Skip to main content
Version: 11.14.0

Application Bootstrap

bootstrapApp()​

The bootstrapApp function is responsible for bootstrapping the application by ensuring the user is authenticated and initializing the application. It provides a robust initialization process with comprehensive error handling.

Parameters​

ParameterTypeDescription
applicationServiceApplicationServiceThe service responsible for initializing the application and creating routes
optionsobjectConfiguration options for the bootstrap process
options.createRoutesbooleanWhether to create routes during initialization (default: true)

Return Value​

TypeDescription
Promise<void>A promise that resolves when the application is ready to be initialized, regardless of success or failure

Complete Flow Diagram​

Bootstrap Flow​

Error Handling Flow​

Usage​

app.config.ts
export const appConfig: ApplicationConfig = {
providers: [
provideAppInitializer(() => {
const applicationService = inject(ApplicationService);
return bootstrapApp(applicationService, { createRoutes: true });
}),
...
]
}

Alternative Usage Without Routes​

app.config.ts
export const appConfig: ApplicationConfig = {
providers: [
provideAppInitializer(() => {
const applicationService = inject(ApplicationService);
return bootstrapApp(applicationService, { createRoutes: false });
}),
...
]
}

Implementation Details​

The function performs the following steps:

  1. Authentication Check: Calls the signIn() function to ensure the user is authenticated
  2. Conditional Initialization: Based on the createRoutes parameter:
    • If true: Calls applicationService.initAndCreateRoutes()
    • If false: Calls applicationService.init()
  3. Comprehensive Logging: Provides detailed console logs for each step and outcome
  4. Error Resilience: All errors are caught and logged, but the promise always resolves

Key Features​

  • Fail-Safe Design: The function never rejects, ensuring the application can start even if some initialization steps fail
  • Flexible Route Creation: Optional route creation based on configuration
  • Comprehensive Logging: Detailed console output for debugging and monitoring
  • Sequential Execution: Ensures authentication happens before application initialization

Error Scenarios​

  • Authentication Failure: Logs error but continues with application startup
  • Application Initialization Failure: Logs error but allows the application to continue
  • Route Creation Failure: Logs error but allows the application to continue

Dependencies​

The function depends on:

  • signIn() utility function for authentication
  • ApplicationService for application initialization
  • Console logging for error tracking and debugging

Best Practices​

  1. Use in App Initializer: This function is designed to be used with Angular's APP_INITIALIZER token
  2. Monitor Console Logs: Pay attention to console output for initialization status
  3. Handle Route Creation: Choose the appropriate createRoutes setting based on your application needs
  4. Error Monitoring: Consider implementing additional error tracking for production environments