openreplay/backend/services/assets/jsexception.go
2021-05-03 17:53:25 +02:00

32 lines
No EOL
628 B
Go

package main
import (
"encoding/json"
"strings"
)
type frame struct {
FileName string `json:"fileName"`
}
func extractJSExceptionSources(payload *string) ([]string, error) {
var frameList []frame
err := json.Unmarshal([]byte(*payload), &frameList)
if err != nil {
return nil, err
}
presentedFileName := make(map[string]bool)
var fileNamesList []string
for _, f := range frameList {
fn := strings.Split(f.FileName, "?")[0]
if strings.HasPrefix(fn, "http") && !presentedFileName[fn] {
fileNamesList = append(fileNamesList, f.FileName)
presentedFileName[fn] = true
}
}
return fileNamesList, nil
}