handleRequest function
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();
}
}