Future main()

in server/lib/server.dart [24:68]


Future<void> main() async {
  final port = int.parse(Platform.environment['PORT'] ?? '8080');

  ServerController serverController = ServerController();
  TokenValidationHandler tokenValidationHandler = TokenValidationHandler();
  CORSHeadersHandler corsHeadersHandler = CORSHeadersHandler();

  final handlerPipeline = const Pipeline()
      .addMiddleware(corsHeadersHandler.corsHeadersHandler())
      .addMiddleware(tokenValidationHandler.tokenValidationHandler())
      .addHandler(serverController.handler);

  var handler;

  if (Platform.isMacOS || Platform.isWindows) {
    handler = const Pipeline()
        .addMiddleware(corsHeadersHandler.corsHeadersHandler())
        .addMiddleware(tokenValidationHandler.tokenValidationHandler())
        .addHandler(serverController.handler);
  } else {
    var flutterWebAppPath =
        Platform.environment['WEBAPP_PATH'] ?? "/app/bin/public";

    final staticHandler =
        createStaticHandler(flutterWebAppPath, defaultDocument: 'index.html');
    final staticAssetsHandler =
        createStaticHandler(flutterWebAppPath + '/assets');

    handler = Cascade()
        .add(staticHandler)
        .add(staticAssetsHandler)
        .add(handlerPipeline)
        .handler;
  }

  final server = await shelf_io.serve(
    handler,
    InternetAddress.anyIPv4,
    port,
  );

  server.autoCompress = true;

  print('Serving at ${server.address.host}:${server.port}');
}