28 lines
760 B
Go
28 lines
760 B
Go
package sourcemap
|
|
|
|
import (
|
|
"strings"
|
|
"unicode"
|
|
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/stringutil"
|
|
)
|
|
|
|
// Tries to find the sourceMappingURL comment at the end of a file.
|
|
func TryGetSourceMappingURL(lineInfo *ECMALineInfo) string {
|
|
for index := lineInfo.LineCount() - 1; index >= 0; index-- {
|
|
line := lineInfo.LineText(index)
|
|
line = strings.TrimLeftFunc(line, unicode.IsSpace)
|
|
line = strings.TrimRightFunc(line, stringutil.IsLineBreak)
|
|
if len(line) == 0 {
|
|
continue
|
|
}
|
|
if len(line) < 4 || !strings.HasPrefix(line, "//") || line[2] != '#' && line[2] != '@' || line[3] != ' ' {
|
|
break
|
|
}
|
|
if url, ok := strings.CutPrefix(line[4:], "sourceMappingURL="); ok {
|
|
return strings.TrimRightFunc(url, unicode.IsSpace)
|
|
}
|
|
}
|
|
return ""
|
|
}
|