Skip to content

Commit 311323f

Browse files
committed
Improved cross-OS compatibility for sourcemap URL resolution.
1 parent 5ef83b8 commit 311323f

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

file/file.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66
"net/url"
77
"path"
8+
"path/filepath"
89
"sort"
910
"strings"
1011
"sync"
@@ -182,9 +183,10 @@ func (fl *File) Position(offset int) Position {
182183

183184
func ResolveSourcemapURL(basename, source string) *url.URL {
184185
// if the url is absolute(has scheme) there is nothing to do
185-
smURL, err := url.Parse(strings.TrimSpace(source))
186+
smURL, err := url.Parse(filepath.ToSlash(strings.TrimSpace(source)))
186187
if err == nil && !smURL.IsAbs() {
187-
baseURL, err1 := url.Parse(strings.TrimSpace(basename))
188+
basename = filepath.ToSlash(strings.TrimSpace(basename))
189+
baseURL, err1 := url.Parse(basename)
188190
if err1 == nil && path.IsAbs(baseURL.Path) {
189191
smURL = baseURL.ResolveReference(smURL)
190192
} else {

file/file_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ func TestGetSourceFilename(t *testing.T) {
6363
{"../test.js", "https://example.com/somewhere/else/base.js", "https://example.com/somewhere/test.js"},
6464
{"\ntest.js", "base123.js", "test.js"},
6565
{"\rtest2.js\t\n ", "base123.js", "test2.js"},
66+
{"z:/file.map", "a.js", "z:/file.map"},
6667
// TODO find something that won't parse
6768
}
6869
for _, test := range tests {

0 commit comments

Comments
 (0)