boot method
Implementation
Future<void> boot() async {
status = AppStatus.booting;
// Default Router
final router = Router();
container.bindInstance<Router>(router);
// Default View Engine
final settings = { "viewsPath": 'lib/src/http/views', "publicPath": 'lib/src/http/public'};
final engine = TemplateEngine(viewsDirectory: settings['viewsPath']!, publicDirectory: settings['publicPath']!);
container.bindInstance<TemplateEngine>(engine);
// Default Static Files Server
final staticFilesServer = StaticFilesServer();
container.bindInstance<StaticFilesServer>(staticFilesServer);
try {
for (final provider in _providers) {
try {
await provider.boot(container); // async boot support
} catch(e, stack) {
throw ProviderException.unbooted(type: provider.runtimeType, trace: stack);
}
}
for (final callback in _bootedCallbacks) {
callback();
}
status = AppStatus.ready;
} catch (e, stack) {
status = AppStatus.error;
print('[App Boot Error] $e\n$stack');
}
}