@@ -20,20 +20,26 @@ func ReadTupleFile(fileName string) ([]client.ClientTupleKey, error) {
2020
2121 var tuples []client.ClientTupleKey
2222
23- switch path .Ext (fileName ) {
24- case ".json" :
25- err = yaml .Unmarshal (data , & tuples )
26- if err != nil {
27- err = parseTuplesFromJSONL (data , & tuples )
28- }
29- if err == nil && len (tuples ) == 0 {
30- err = clierrors .EmptyTuplesFileError ("json" )
31- }
32- case ".yaml" , ".yml" :
33- err = yaml .Unmarshal (data , & tuples )
34- if err == nil && len (tuples ) == 0 {
35- err = clierrors .EmptyTuplesFileError (strings .TrimPrefix (path .Ext (fileName ), "." ))
36- }
23+ ext := path .Ext (fileName )
24+ switch ext {
25+ case ".json" :
26+ err = yaml .Unmarshal (data , & tuples )
27+ if err != nil {
28+ err = parseTuplesFromJSONL (data , & tuples , "json" )
29+ }
30+ if err == nil && len (tuples ) == 0 {
31+ err = clierrors .EmptyTuplesFileError ("json" )
32+ }
33+ case ".jsonl" :
34+ err = parseTuplesFromJSONL (data , & tuples , "jsonl" )
35+ if err == nil && len (tuples ) == 0 {
36+ err = clierrors .EmptyTuplesFileError ("jsonl" )
37+ }
38+ case ".yaml" , ".yml" :
39+ err = yaml .Unmarshal (data , & tuples )
40+ if err == nil && len (tuples ) == 0 {
41+ err = clierrors .EmptyTuplesFileError (strings .TrimPrefix (ext , "." ))
42+ }
3743 case ".csv" :
3844 err = parseTuplesFromCSV (data , & tuples )
3945 default :
@@ -47,7 +53,7 @@ func ReadTupleFile(fileName string) ([]client.ClientTupleKey, error) {
4753 return tuples , nil
4854}
4955
50- func parseTuplesFromJSONL (data []byte , tuples * []client.ClientTupleKey ) error {
56+ func parseTuplesFromJSONL (data []byte , tuples * []client.ClientTupleKey , format string ) error {
5157 lines := strings .Split (strings .TrimSpace (string (data )), "\n " )
5258 for index , line := range lines {
5359 trimmed := strings .TrimSpace (line )
@@ -63,9 +69,9 @@ func parseTuplesFromJSONL(data []byte, tuples *[]client.ClientTupleKey) error {
6369 * tuples = append (* tuples , tuple )
6470 }
6571
66- if len (* tuples ) == 0 {
67- return clierrors .EmptyTuplesFileError ("json" )
68- }
72+ if len (* tuples ) == 0 {
73+ return clierrors .EmptyTuplesFileError (format )
74+ }
6975
7076 return nil
7177}
0 commit comments