File tree 2 files changed +24
-10
lines changed
2 files changed +24
-10
lines changed Original file line number Diff line number Diff line change @@ -467,18 +467,37 @@ function sortStringLiteral(
467
467
} )
468
468
let didChange = result !== node . value
469
469
node . value = result
470
+
471
+ // A string literal was escaped if:
472
+ // - There are backslashes in the raw value; AND
473
+ // - The raw value is not the same as the value (excluding the surrounding quotes)
474
+ let wasEscaped = false
475
+
476
+ if ( node . extra ) {
477
+ // JavaScript (StringLiteral)
478
+ wasEscaped =
479
+ node . extra ?. rawValue . includes ( '\\' ) &&
480
+ node . extra ?. raw . slice ( 1 , - 1 ) !== node . value
481
+ } else {
482
+ // TypeScript (Literal)
483
+ wasEscaped =
484
+ node . value . includes ( '\\' ) && node . raw . slice ( 1 , - 1 ) !== node . value
485
+ }
486
+
487
+ let escaped = wasEscaped ? result . replace ( / \\ / g, '\\\\' ) : result
488
+
470
489
if ( node . extra ) {
471
490
// JavaScript (StringLiteral)
472
491
let raw = node . extra . raw
473
492
node . extra = {
474
493
...node . extra ,
475
494
rawValue : result ,
476
- raw : raw [ 0 ] + result . replace ( / \\ / g , '\\\\' ) + raw . slice ( - 1 ) ,
495
+ raw : raw [ 0 ] + escaped + raw . slice ( - 1 ) ,
477
496
}
478
497
} else {
479
498
// TypeScript (Literal)
480
499
let raw = node . raw
481
- node . raw = raw [ 0 ] + result . replace ( / \\ / g , '\\\\' ) + raw . slice ( - 1 )
500
+ node . raw = raw [ 0 ] + escaped + raw . slice ( - 1 )
482
501
}
483
502
return didChange
484
503
}
Original file line number Diff line number Diff line change @@ -94,15 +94,10 @@ let javascript = [
94
94
';<div class={`flex ` + ` ` + `text-red-500`} />' ,
95
95
';<div class={`flex ` + ` ` + `text-red-500`} />' ,
96
96
] ,
97
- [
98
- `;<div class={"before:content-['\\\\2248']"} />` ,
99
- `;<div class={"before:content-['\\\\2248']"} />` ,
100
- ] ,
101
97
102
- [
103
- `;<div class={\`before:content-['\\\\2248']\`} />` ,
104
- `;<div class={\`before:content-['\\\\2248']\`} />` ,
105
- ] ,
98
+ t `;<div class={"before:content-['\\\\2248']"} />` ,
99
+ t `;<div class={\`before:content-['\\\\2248']\`} />` ,
100
+ t `;<div class="before:content-['\\\\2248']" />` ,
106
101
107
102
[
108
103
`;<div class={'object-cover' + (standalone ? ' aspect-square w-full' : ' min-h-0 grow basis-0')}></div>` ,
You can’t perform that action at this time.
0 commit comments