9
9
const colors = require ( 'internal/util/colors' ) ;
10
10
11
11
const kNopLinesToCollapse = 5 ;
12
+ const kOperations = {
13
+ DELETE : - 1 ,
14
+ NOP : 0 ,
15
+ INSERT : 1 ,
16
+ } ;
12
17
13
18
function areLinesEqual ( actual , expected , checkCommaDisparity ) {
14
19
if ( actual === expected ) {
@@ -87,16 +92,16 @@ function backtrack(trace, actual, expected, checkCommaDisparity) {
87
92
while ( x > prevX && y > prevY ) {
88
93
const actualItem = actual [ x - 1 ] ;
89
94
const value = checkCommaDisparity && ! StringPrototypeEndsWith ( actualItem , ',' ) ? expected [ y - 1 ] : actualItem ;
90
- ArrayPrototypePush ( result , { __proto__ : null , type : 'nop' , value } ) ;
95
+ ArrayPrototypePush ( result , [ kOperations . NOP , value ] ) ;
91
96
x -- ;
92
97
y -- ;
93
98
}
94
99
95
100
if ( diffLevel > 0 ) {
96
101
if ( x > prevX ) {
97
- ArrayPrototypePush ( result , { __proto__ : null , type : 'insert' , value : actual [ -- x ] } ) ;
102
+ ArrayPrototypePush ( result , [ kOperations . INSERT , actual [ -- x ] ] ) ;
98
103
} else {
99
- ArrayPrototypePush ( result , { __proto__ : null , type : 'delete' , value : expected [ -- y ] } ) ;
104
+ ArrayPrototypePush ( result , [ kOperations . DELETE , expected [ -- y ] ] ) ;
100
105
}
101
106
}
102
107
}
@@ -108,12 +113,12 @@ function printSimpleMyersDiff(diff) {
108
113
let message = '' ;
109
114
110
115
for ( let diffIdx = diff . length - 1 ; diffIdx >= 0 ; diffIdx -- ) {
111
- const { type , value } = diff [ diffIdx ] ;
116
+ const { 0 : operation , 1 : value } = diff [ diffIdx ] ;
112
117
let color = colors . white ;
113
118
114
- if ( type === 'insert' ) {
119
+ if ( operation === kOperations . INSERT ) {
115
120
color = colors . green ;
116
- } else if ( type === 'delete' ) {
121
+ } else if ( operation === kOperations . DELETE ) {
117
122
color = colors . red ;
118
123
}
119
124
@@ -129,33 +134,33 @@ function printMyersDiff(diff, operator) {
129
134
let nopCount = 0 ;
130
135
131
136
for ( let diffIdx = diff . length - 1 ; diffIdx >= 0 ; diffIdx -- ) {
132
- const { type , value } = diff [ diffIdx ] ;
133
- const previousType = diffIdx < diff . length - 1 ? diff [ diffIdx + 1 ] . type : null ;
137
+ const { 0 : operation , 1 : value } = diff [ diffIdx ] ;
138
+ const previousOperation = diffIdx < diff . length - 1 ? diff [ diffIdx + 1 ] [ 0 ] : null ;
134
139
135
140
// Avoid grouping if only one line would have been grouped otherwise
136
- if ( previousType === 'nop' && type !== previousType ) {
141
+ if ( previousOperation === kOperations . NOP && operation !== previousOperation ) {
137
142
if ( nopCount === kNopLinesToCollapse + 1 ) {
138
- message += `${ colors . white } ${ diff [ diffIdx + 1 ] . value } \n` ;
143
+ message += `${ colors . white } ${ diff [ diffIdx + 1 ] [ 1 ] } \n` ;
139
144
} else if ( nopCount === kNopLinesToCollapse + 2 ) {
140
- message += `${ colors . white } ${ diff [ diffIdx + 2 ] . value } \n` ;
141
- message += `${ colors . white } ${ diff [ diffIdx + 1 ] . value } \n` ;
145
+ message += `${ colors . white } ${ diff [ diffIdx + 2 ] [ 1 ] } \n` ;
146
+ message += `${ colors . white } ${ diff [ diffIdx + 1 ] [ 1 ] } \n` ;
142
147
} else if ( nopCount >= kNopLinesToCollapse + 3 ) {
143
148
message += `${ colors . blue } ...${ colors . white } \n` ;
144
- message += `${ colors . white } ${ diff [ diffIdx + 1 ] . value } \n` ;
149
+ message += `${ colors . white } ${ diff [ diffIdx + 1 ] [ 1 ] } \n` ;
145
150
skipped = true ;
146
151
}
147
152
nopCount = 0 ;
148
153
}
149
154
150
- if ( type === 'insert' ) {
155
+ if ( operation === kOperations . INSERT ) {
151
156
if ( operator === 'partialDeepStrictEqual' ) {
152
157
message += `${ colors . gray } ${ colors . hasColors ? ' ' : '+' } ${ value } ${ colors . white } \n` ;
153
158
} else {
154
159
message += `${ colors . green } +${ colors . white } ${ value } \n` ;
155
160
}
156
- } else if ( type === 'delete' ) {
161
+ } else if ( operation === kOperations . DELETE ) {
157
162
message += `${ colors . red } -${ colors . white } ${ value } \n` ;
158
- } else if ( type === 'nop' ) {
163
+ } else if ( operation === kOperations . NOP ) {
159
164
if ( nopCount < kNopLinesToCollapse ) {
160
165
message += `${ colors . white } ${ value } \n` ;
161
166
}
0 commit comments