@@ -16,7 +16,7 @@ export async function evaluate(
16
16
17
17
// walk returns:
18
18
// 1. Single known value: { value: value }
19
- // 2. Conditional value: { test, then , else }
19
+ // 2. Conditional value: { test, ifTrue , else }
20
20
// 3. Unknown value: undefined
21
21
function walk ( node : Node ) {
22
22
const visitor = visitors [ node . type ] ;
@@ -130,79 +130,79 @@ const visitors: Record<
130
130
if ( 'test' in l && 'value' in r ) {
131
131
const v : any = r . value ;
132
132
if ( op === '==' )
133
- return { test : l . test , then : l . then == v , else : l . else == v } ;
133
+ return { test : l . test , ifTrue : l . ifTrue == v , else : l . else == v } ;
134
134
if ( op === '===' )
135
- return { test : l . test , then : l . then === v , else : l . else === v } ;
135
+ return { test : l . test , ifTrue : l . ifTrue === v , else : l . else === v } ;
136
136
if ( op === '!=' )
137
- return { test : l . test , then : l . then != v , else : l . else != v } ;
137
+ return { test : l . test , ifTrue : l . ifTrue != v , else : l . else != v } ;
138
138
if ( op === '!==' )
139
- return { test : l . test , then : l . then !== v , else : l . else !== v } ;
139
+ return { test : l . test , ifTrue : l . ifTrue !== v , else : l . else !== v } ;
140
140
if ( op === '+' )
141
- return { test : l . test , then : l . then + v , else : l . else + v } ;
141
+ return { test : l . test , ifTrue : l . ifTrue + v , else : l . else + v } ;
142
142
if ( op === '-' )
143
- return { test : l . test , then : l . then - v , else : l . else - v } ;
143
+ return { test : l . test , ifTrue : l . ifTrue - v , else : l . else - v } ;
144
144
if ( op === '*' )
145
- return { test : l . test , then : l . then * v , else : l . else * v } ;
145
+ return { test : l . test , ifTrue : l . ifTrue * v , else : l . else * v } ;
146
146
if ( op === '/' )
147
- return { test : l . test , then : l . then / v , else : l . else / v } ;
147
+ return { test : l . test , ifTrue : l . ifTrue / v , else : l . else / v } ;
148
148
if ( op === '%' )
149
- return { test : l . test , then : l . then % v , else : l . else % v } ;
149
+ return { test : l . test , ifTrue : l . ifTrue % v , else : l . else % v } ;
150
150
if ( op === '<' )
151
- return { test : l . test , then : l . then < v , else : l . else < v } ;
151
+ return { test : l . test , ifTrue : l . ifTrue < v , else : l . else < v } ;
152
152
if ( op === '<=' )
153
- return { test : l . test , then : l . then <= v , else : l . else <= v } ;
153
+ return { test : l . test , ifTrue : l . ifTrue <= v , else : l . else <= v } ;
154
154
if ( op === '>' )
155
- return { test : l . test , then : l . then > v , else : l . else > v } ;
155
+ return { test : l . test , ifTrue : l . ifTrue > v , else : l . else > v } ;
156
156
if ( op === '>=' )
157
- return { test : l . test , then : l . then >= v , else : l . else >= v } ;
157
+ return { test : l . test , ifTrue : l . ifTrue >= v , else : l . else >= v } ;
158
158
if ( op === '|' )
159
- return { test : l . test , then : l . then | v , else : l . else | v } ;
159
+ return { test : l . test , ifTrue : l . ifTrue | v , else : l . else | v } ;
160
160
if ( op === '&' )
161
- return { test : l . test , then : l . then & v , else : l . else & v } ;
161
+ return { test : l . test , ifTrue : l . ifTrue & v , else : l . else & v } ;
162
162
if ( op === '^' )
163
- return { test : l . test , then : l . then ^ v , else : l . else ^ v } ;
163
+ return { test : l . test , ifTrue : l . ifTrue ^ v , else : l . else ^ v } ;
164
164
if ( op === '&&' )
165
- return { test : l . test , then : l . then && v , else : l . else && v } ;
165
+ return { test : l . test , ifTrue : l . ifTrue && v , else : l . else && v } ;
166
166
if ( op === '||' )
167
- return { test : l . test , then : l . then || v , else : l . else || v } ;
167
+ return { test : l . test , ifTrue : l . ifTrue || v , else : l . else || v } ;
168
168
} else if ( 'test' in r && 'value' in l ) {
169
169
const v : any = l . value ;
170
170
if ( op === '==' )
171
- return { test : r . test , then : v == r . then , else : v == r . else } ;
171
+ return { test : r . test , ifTrue : v == r . ifTrue , else : v == r . else } ;
172
172
if ( op === '===' )
173
- return { test : r . test , then : v === r . then , else : v === r . else } ;
173
+ return { test : r . test , ifTrue : v === r . ifTrue , else : v === r . else } ;
174
174
if ( op === '!=' )
175
- return { test : r . test , then : v != r . then , else : v != r . else } ;
175
+ return { test : r . test , ifTrue : v != r . ifTrue , else : v != r . else } ;
176
176
if ( op === '!==' )
177
- return { test : r . test , then : v !== r . then , else : v !== r . else } ;
177
+ return { test : r . test , ifTrue : v !== r . ifTrue , else : v !== r . else } ;
178
178
if ( op === '+' )
179
- return { test : r . test , then : v + r . then , else : v + r . else } ;
179
+ return { test : r . test , ifTrue : v + r . ifTrue , else : v + r . else } ;
180
180
if ( op === '-' )
181
- return { test : r . test , then : v - r . then , else : v - r . else } ;
181
+ return { test : r . test , ifTrue : v - r . ifTrue , else : v - r . else } ;
182
182
if ( op === '*' )
183
- return { test : r . test , then : v * r . then , else : v * r . else } ;
183
+ return { test : r . test , ifTrue : v * r . ifTrue , else : v * r . else } ;
184
184
if ( op === '/' )
185
- return { test : r . test , then : v / r . then , else : v / r . else } ;
185
+ return { test : r . test , ifTrue : v / r . ifTrue , else : v / r . else } ;
186
186
if ( op === '%' )
187
- return { test : r . test , then : v % r . then , else : v % r . else } ;
187
+ return { test : r . test , ifTrue : v % r . ifTrue , else : v % r . else } ;
188
188
if ( op === '<' )
189
- return { test : r . test , then : v < r . then , else : v < r . else } ;
189
+ return { test : r . test , ifTrue : v < r . ifTrue , else : v < r . else } ;
190
190
if ( op === '<=' )
191
- return { test : r . test , then : v <= r . then , else : v <= r . else } ;
191
+ return { test : r . test , ifTrue : v <= r . ifTrue , else : v <= r . else } ;
192
192
if ( op === '>' )
193
- return { test : r . test , then : v > r . then , else : v > r . else } ;
193
+ return { test : r . test , ifTrue : v > r . ifTrue , else : v > r . else } ;
194
194
if ( op === '>=' )
195
- return { test : r . test , then : v >= r . then , else : v >= r . else } ;
195
+ return { test : r . test , ifTrue : v >= r . ifTrue , else : v >= r . else } ;
196
196
if ( op === '|' )
197
- return { test : r . test , then : v | r . then , else : v | r . else } ;
197
+ return { test : r . test , ifTrue : v | r . ifTrue , else : v | r . else } ;
198
198
if ( op === '&' )
199
- return { test : r . test , then : v & r . then , else : v & r . else } ;
199
+ return { test : r . test , ifTrue : v & r . ifTrue , else : v & r . else } ;
200
200
if ( op === '^' )
201
- return { test : r . test , then : v ^ r . then , else : v ^ r . else } ;
201
+ return { test : r . test , ifTrue : v ^ r . ifTrue , else : v ^ r . else } ;
202
202
if ( op === '&&' )
203
- return { test : r . test , then : v && r . then , else : l && r . else } ;
203
+ return { test : r . test , ifTrue : v && r . ifTrue , else : l && r . else } ;
204
204
if ( op === '||' )
205
- return { test : r . test , then : v || r . then , else : l || r . else } ;
205
+ return { test : r . test , ifTrue : v || r . ifTrue , else : l || r . else } ;
206
206
} else if ( 'value' in l && 'value' in r ) {
207
207
if ( op === '==' ) return { value : l . value == r . value } ;
208
208
if ( op === '===' ) return { value : l . value === r . value } ;
@@ -280,7 +280,7 @@ const visitors: Record<
280
280
if ( predicate ) return ;
281
281
predicate = x . test ;
282
282
argsElse = args . concat ( [ ] ) ;
283
- args . push ( x . then ) ;
283
+ args . push ( x . ifTrue ) ;
284
284
argsElse . push ( x . else ) ;
285
285
} else {
286
286
args . push ( x . value ) ;
@@ -304,7 +304,7 @@ const visitors: Record<
304
304
}
305
305
const resultElse = await fn . apply ( ctx , argsElse ) ;
306
306
if ( result === UNKNOWN ) return ;
307
- return { test : predicate , then : result , else : resultElse } ;
307
+ return { test : predicate , ifTrue : result , else : resultElse } ;
308
308
} catch ( e ) {
309
309
return ;
310
310
}
@@ -327,7 +327,7 @@ const visitors: Record<
327
327
328
328
return {
329
329
test : node . test ,
330
- then : thenValue . value ,
330
+ ifTrue : thenValue . value ,
331
331
else : elseValue . value ,
332
332
} ;
333
333
} ,
@@ -444,7 +444,7 @@ const visitors: Record<
444
444
try {
445
445
return {
446
446
test,
447
- then : new URL ( arg . then , parent . value ) ,
447
+ ifTrue : new URL ( arg . ifTrue , parent . value ) ,
448
448
else : new URL ( arg . else , parent . value ) ,
449
449
} ;
450
450
} catch {
@@ -454,7 +454,7 @@ const visitors: Record<
454
454
try {
455
455
return {
456
456
test,
457
- then : new URL ( arg . then ) ,
457
+ ifTrue : new URL ( arg . ifTrue ) ,
458
458
else : new URL ( arg . else ) ,
459
459
} ;
460
460
} catch {
@@ -512,7 +512,7 @@ const visitors: Record<
512
512
if ( 'value' in val ) {
513
513
val . value += node . quasis [ i ] . value . cooked ;
514
514
} else {
515
- val . then += node . quasis [ i ] . value . cooked ;
515
+ val . ifTrue += node . quasis [ i ] . value . cooked ;
516
516
val . else += node . quasis [ i ] . value . cooked ;
517
517
}
518
518
let exprValue = await walk ( node . expressions [ i ] ) ;
@@ -527,7 +527,7 @@ const visitors: Record<
527
527
val . wildcards = [ ...( val . wildcards || [ ] ) , ...exprValue . wildcards ] ;
528
528
} else {
529
529
if ( exprValue . wildcards ) return ;
530
- val . then += exprValue . value ;
530
+ val . ifTrue += exprValue . value ;
531
531
val . else += exprValue . value ;
532
532
}
533
533
} else if ( 'value' in val ) {
@@ -537,7 +537,7 @@ const visitors: Record<
537
537
}
538
538
val = {
539
539
test : exprValue . test ,
540
- then : val . value + exprValue . then ,
540
+ ifTrue : val . value + exprValue . ifTrue ,
541
541
else : val . value + exprValue . else ,
542
542
} ;
543
543
} else {
@@ -548,7 +548,7 @@ const visitors: Record<
548
548
if ( 'value' in val ) {
549
549
val . value += node . quasis [ i ] . value . cooked ;
550
550
} else {
551
- val . then += node . quasis [ i ] . value . cooked ;
551
+ val . ifTrue += node . quasis [ i ] . value . cooked ;
552
552
val . else += node . quasis [ i ] . value . cooked ;
553
553
}
554
554
return val ;
@@ -575,13 +575,13 @@ const visitors: Record<
575
575
if ( node . operator === '!' ) return { value : ! val . value } ;
576
576
} else if ( 'test' in val && 'wildcards' in val === false ) {
577
577
if ( node . operator === '+' )
578
- return { test : val . test , then : + val . then , else : + val . else } ;
578
+ return { test : val . test , ifTrue : + val . ifTrue , else : + val . else } ;
579
579
if ( node . operator === '-' )
580
- return { test : val . test , then : - val . then , else : - val . else } ;
580
+ return { test : val . test , ifTrue : - val . ifTrue , else : - val . else } ;
581
581
if ( node . operator === '~' )
582
- return { test : val . test , then : ~ val . then , else : ~ val . else } ;
582
+ return { test : val . test , ifTrue : ~ val . ifTrue , else : ~ val . else } ;
583
583
if ( node . operator === '!' )
584
- return { test : val . test , then : ! val . then , else : ! val . else } ;
584
+ return { test : val . test , ifTrue : ! val . ifTrue , else : ! val . else } ;
585
585
}
586
586
return undefined ;
587
587
} ,
0 commit comments