diff --git a/data/generated.go b/data/generated.go index 58efecd..2eea4d2 100644 --- a/data/generated.go +++ b/data/generated.go @@ -188,7 +188,11 @@ func isSourceMap(path, _ string, content []byte) bool { return true } - firstLine := getLines(content, 1)[0] + firstLine := getFirstLine(content) + if len(firstLine) == 0 { + return false + } + for _, r := range sourceMapRegexps { if r.Match(firstLine) { return true @@ -203,7 +207,7 @@ func isCompiledCoffeeScript(path, ext string, content []byte) bool { return false } - firstLine := getLines(content, 1)[0] + firstLine := getFirstLine(content) lastLines := getLines(content, -2) if string(firstLine) == "(function() {" && @@ -753,6 +757,14 @@ func isGeneratedJooq(_, ext string, content []byte) bool { return false } +func getFirstLine(content []byte) []byte { + lines := getLines(content, 1) + if len(lines) > 0 { + return lines[0] + } + return nil +} + // getLines returns up to the first n lines. A negative index will return up to // the last n lines in reverse order. func getLines(content []byte, n int) [][]byte { diff --git a/data/generated_test.go b/data/generated_test.go index 9527d46..8dbce04 100644 --- a/data/generated_test.go +++ b/data/generated_test.go @@ -8,6 +8,10 @@ import ( "github.com/stretchr/testify/require" ) +func TestGetFirstLineEmptyContent(t *testing.T) { + require.Nil(t, getFirstLine(nil)) +} + func TestForEachLine(t *testing.T) { const sample = "foo\nbar\nboomboom\nbleepbloop\n" var lines = strings.Split(sample, "\n")