diff options
author | 2023-08-03 13:13:39 -0500 | |
---|---|---|
committer | 2023-08-03 13:13:39 -0500 | |
commit | 6035bb35f222fc6a80b418f13998b21c59da85b6 (patch) | |
tree | c2074cfce02b13f7a0c21bd3e7e005ca9590af3d /packages/internal-helpers/src | |
parent | 705432f8d2c57274559430ea35aabe41090851da (diff) | |
download | astro-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.ts | 4 |
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; } |