boot method

Future<void> boot()

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');
  }
}