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
| Parameter | Type | Description |
|---|---|---|
applicationService | ApplicationService | The service responsible for initializing the application and creating routes |
options | object | Configuration options for the bootstrap process |
options.createRoutes | boolean | Whether to create routes during initialization (default: true) |
Return Value
| Type | Description |
|---|---|
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:
- Authentication Check: Calls the
signIn()function to ensure the user is authenticated - Conditional Initialization: Based on the
createRoutesparameter:- If
true: CallsapplicationService.initAndCreateRoutes() - If
false: CallsapplicationService.init()
- If
- Comprehensive Logging: Provides detailed console logs for each step and outcome
- 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 authenticationApplicationServicefor application initialization- Console logging for error tracking and debugging
Best Practices
- Use in App Initializer: This function is designed to be used with Angular's
APP_INITIALIZERtoken - Monitor Console Logs: Pay attention to console output for initialization status
- Handle Route Creation: Choose the appropriate
createRoutessetting based on your application needs - Error Monitoring: Consider implementing additional error tracking for production environments