handleRequest function

void handleRequest(
  1. HttpRequest request
)

Implementation

void handleRequest(HttpRequest request) {
  if (request.uri.path.startsWith("/org-dartlang-sdk:///dart-sdk/")) {
    final filePath = request.uri.path.replaceFirst(
      "/org-dartlang-sdk:///dart-sdk/",
      "",
    );
    final file = File(dartSDKRoot + filePath);
    if (file.existsSync()) {
      request.response.headers.contentType = ContentType.text;
      request.response.write(file.readAsStringSync());
      request.response.close();
    } else {
      request.response.statusCode = 404;
      request.response.close();
    }
  } else if (request.uri.path.startsWith("/org-dartlang-sdk:///lib/")) {
    final filePath = request.uri.path.replaceFirst(
      "/org-dartlang-sdk:///lib/",
      "/lib/",
    );
    final file = File(webSDKRoot + filePath);
    if (file.existsSync()) {
      request.response.headers.contentType = ContentType.text;
      request.response.write(file.readAsStringSync());
      request.response.close();
    } else {
      request.response.statusCode = 404;
      request.response.close();
    }
  } else if (request.uri.path.startsWith("/dart-package:///")) {
    final trimedPath = request.uri.path
        .replaceFirst('/dart-package:///', '')
        .replaceAll("__", "..")
        .replaceFirst('../../../', '');
    final file = File(trimedPath);
    if (file.existsSync()) {
      request.response.headers.contentType = ContentType.text;
      request.response.write(file.readAsStringSync());
      request.response.close();
    } else {
      request.response.statusCode = 404;
      request.response.close();
    }
  } else {
    request.response.statusCode = 404;
    request.response.close();
  }
}