...
1 package graphql
2
3 import (
4 "encoding/json"
5 )
6
7
8 func CoerceList(v interface{}) []interface{} {
9 var vSlice []interface{}
10 if v != nil {
11 switch v := v.(type) {
12 case []interface{}:
13
14 vSlice = v
15 case []string:
16 if len(v) > 0 {
17 vSlice = []interface{}{v[0]}
18 }
19 case []json.Number:
20 if len(v) > 0 {
21 vSlice = []interface{}{v[0]}
22 }
23 case []bool:
24 if len(v) > 0 {
25 vSlice = []interface{}{v[0]}
26 }
27 case []map[string]interface{}:
28 if len(v) > 0 {
29 vSlice = []interface{}{v[0]}
30 }
31 case []float64:
32 if len(v) > 0 {
33 vSlice = []interface{}{v[0]}
34 }
35 case []float32:
36 if len(v) > 0 {
37 vSlice = []interface{}{v[0]}
38 }
39 case []int:
40 if len(v) > 0 {
41 vSlice = []interface{}{v[0]}
42 }
43 case []int32:
44 if len(v) > 0 {
45 vSlice = []interface{}{v[0]}
46 }
47 case []int64:
48 if len(v) > 0 {
49 vSlice = []interface{}{v[0]}
50 }
51 default:
52 vSlice = []interface{}{v}
53 }
54 }
55 return vSlice
56 }
57
View as plain text