boot function

Future boot(
  1. {required Application application,
  2. int port = 8080}
)

Function used to run a Spark server

Implementation

Future boot({
  required Application application,
  int port = 8080,
}) =>
    HttpServer.bind(InternetAddress.anyIPv4, port).then((server) async {
      var context = Context();
      var uriRouter = UriRouter();
      context.register(uriRouter);
      await application.onInit(context);
      server.listen((httpRequest) async {
        var request = Request(
            method: Method.fromValue(httpRequest.method),
            uri: httpRequest.uri,
            headers: httpRequest.headers,
            body: await utf8.decodeStream(httpRequest),
            container: {});
        var response = await application.onHandle(request);
        httpRequest.response.statusCode = response.statusCode;
        httpRequest.response.headers.clear();
        httpRequest.response.headers.contentType = response.contentType;
        httpRequest.response.headers.contentLength = response.body.length;
        response.headers.forEach(
            (key, value) => httpRequest.response.headers.add(key, value));
        httpRequest.response.write(response.body);
        return httpRequest.response.close();
      });
    });