internalPath method
Convert an external path to an internal path.
This is the inverse of Request.rewriteUrl, converting a string like
"/foo/bar/baz" into "/foo/bar/baz" (if the server's base path is "/").
Or converting "/abc/def/foo/bar/baz" to "/foo/bar/baz" (if the server's
base path is "/abc/def").
If the external path contains query parameters, they are removed.
Implementation
String internalPath(String externalPath) {
if (externalPath.startsWith(_basePath)) {
// Strip off any query parameters
final q = externalPath.indexOf('?');
final noQueryParams =
(0 < q) ? externalPath.substring(0, q) : externalPath;
return '~/${noQueryParams.substring(_basePath.length)}';
} else {
throw ArgumentError.value(
externalPath, 'externalPath', 'does not start with "$_basePath"');
}
}