Skip to content

Commit ec2b408

Browse files
committed
...
1 parent 32dc5d1 commit ec2b408

File tree

3 files changed

+34
-10
lines changed

3 files changed

+34
-10
lines changed

.golangci.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ run:
55
linters:
66
default: all
77
disable:
8+
- gocyclo
9+
- errcheck
10+
- err113
811
- nilnil
912
- noinlineerr
1013
- wsl_v5
@@ -31,6 +34,11 @@ linters:
3134
- varnamelen
3235
- wrapcheck
3336
settings:
37+
gocognit:
38+
min-complexity: 50
39+
funlen:
40+
statements: 65
41+
lines: 120
3442
dupl:
3543
threshold: 100
3644
errcheck:
@@ -42,6 +50,8 @@ linters:
4250
locale: US
4351
unparam:
4452
check-exported: true
53+
cyclop:
54+
max-complexity: 25
4555
exclusions:
4656
generated: lax
4757
rules:

cmd/jsoncompact/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
)
1717

1818
// The function is a bit lengthy, but I'm not sure if it would be more approachable divided in several functions.
19-
func main() { //nolint
19+
func main() {
2020
var (
2121
input, output string
2222
length int

diff/ascii.go

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,23 @@ func (f *ASCIIFormatter) Format(diff Diff) (result string, err error) {
6363
func (f *ASCIIFormatter) formatObject(left map[string]interface{}, df Diff) {
6464
f.addLineWith("{")
6565
f.push("ROOT", len(left), false)
66-
f.processObject(left, df.Deltas())
66+
67+
if err := f.processObject(left, df.Deltas()); err != nil {
68+
panic(err)
69+
}
70+
6771
f.pop()
6872
f.addLineWith("}")
6973
}
7074

7175
func (f *ASCIIFormatter) formatArray(left []interface{}, df Diff) {
7276
f.addLineWith("[")
7377
f.push("ROOT", len(left), true)
74-
f.processArray(left, df.Deltas())
78+
79+
if err := f.processArray(left, df.Deltas()); err != nil {
80+
panic(err)
81+
}
82+
7583
f.pop()
7684
f.addLineWith("]")
7785
}
@@ -89,9 +97,7 @@ func (f *ASCIIFormatter) processArray(array []interface{}, deltas []Delta) error
8997

9098
// additional Added
9199
for _, delta := range deltas {
92-
switch delta.(type) {
93-
case *Added:
94-
d := delta.(*Added)
100+
if d, ok := delta.(*Added); ok {
95101
// skip items already processed
96102
if int(d.Position.(Index)) < len(array) {
97103
continue
@@ -136,7 +142,7 @@ func (f *ASCIIFormatter) processItem(value interface{}, deltas []Delta, position
136142
case map[string]interface{}:
137143
// ok
138144
default:
139-
return errors.New("Type mismatch")
145+
return errors.New("type mismatch")
140146
}
141147

142148
o := value.(map[string]interface{})
@@ -146,7 +152,11 @@ func (f *ASCIIFormatter) processItem(value interface{}, deltas []Delta, position
146152
f.print("{")
147153
f.closeLine()
148154
f.push(positionStr, len(o), false)
149-
f.processObject(o, d.Deltas)
155+
156+
if err := f.processObject(o, d.Deltas); err != nil {
157+
return err
158+
}
159+
150160
f.pop()
151161
f.newLine(ASCIISame)
152162
f.print("}")
@@ -158,7 +168,7 @@ func (f *ASCIIFormatter) processItem(value interface{}, deltas []Delta, position
158168
case []interface{}:
159169
// ok
160170
default:
161-
return errors.New("Type mismatch")
171+
return errors.New("type mismatch")
162172
}
163173

164174
a := value.([]interface{})
@@ -168,7 +178,11 @@ func (f *ASCIIFormatter) processItem(value interface{}, deltas []Delta, position
168178
f.print("[")
169179
f.closeLine()
170180
f.push(positionStr, len(a), true)
171-
f.processArray(a, d.Deltas)
181+
182+
if err := f.processArray(a, d.Deltas); err != nil {
183+
return err
184+
}
185+
172186
f.pop()
173187
f.newLine(ASCIISame)
174188
f.print("]")

0 commit comments

Comments
 (0)