summaryrefslogtreecommitdiff
path: root/packages/internal-helpers/src
diff options
context:
space:
mode:
authorGravatar Nate Moore <natemoo-re@users.noreply.github.com> 2023-08-03 13:13:39 -0500
committerGravatar GitHub <noreply@github.com> 2023-08-03 13:13:39 -0500
commit6035bb35f222fc6a80b418f13998b21c59da85b6 (patch)
treec2074cfce02b13f7a0c21bd3e7e005ca9590af3d /packages/internal-helpers/src
parent705432f8d2c57274559430ea35aabe41090851da (diff)
downloadastro-6035bb35f222fc6a80b418f13998b21c59da85b6.tar.gz
astro-6035bb35f222fc6a80b418f13998b21c59da85b6.tar.zst
astro-6035bb35f222fc6a80b418f13998b21c59da85b6.zip
Fix duplicate slash handling (#7935)
* fix(#7806): collapse duplicate slashes * refactor: handle request.url with duplicate slashes * chore: improve duplicate slash test * fix: only collapse duplicate slashes once * chore: appease TS
Diffstat (limited to 'packages/internal-helpers/src')
-rw-r--r--packages/internal-helpers/src/path.ts4
1 files changed, 4 insertions, 0 deletions
diff --git a/packages/internal-helpers/src/path.ts b/packages/internal-helpers/src/path.ts
index 501665542..cc9954ef2 100644
--- a/packages/internal-helpers/src/path.ts
+++ b/packages/internal-helpers/src/path.ts
@@ -15,6 +15,10 @@ export function prependForwardSlash(path: string) {
return path[0] === '/' ? path : '/' + path;
}
+export function collapseDuplicateSlashes(path: string) {
+ return path.replace(/(?<!:)\/\/+/g, '/');
+}
+
export function removeTrailingForwardSlash(path: string) {
return path.endsWith('/') ? path.slice(0, path.length - 1) : path;
}