@@ -28,6 +28,7 @@ import (
28
28
"github.com/evanw/esbuild/internal/compat"
29
29
"github.com/evanw/esbuild/internal/config"
30
30
"github.com/evanw/esbuild/internal/css_ast"
31
+ "github.com/evanw/esbuild/internal/css_lexer"
31
32
"github.com/evanw/esbuild/internal/fs"
32
33
"github.com/evanw/esbuild/internal/graph"
33
34
"github.com/evanw/esbuild/internal/helpers"
@@ -524,6 +525,23 @@ func validateJSXExpr(log logger.Log, text string, name string) config.DefineExpr
524
525
return config.DefineExpr {}
525
526
}
526
527
528
+ func validateCSSIdentifier (log logger.Log , ident string ) string {
529
+ for i , c := range ident {
530
+ if i == 0 {
531
+ if ! css_lexer .IsNameStart (c ) {
532
+ log .AddError (nil , logger.Range {}, fmt .Sprintf ("Invalid CSS prefix: %q" , ident ))
533
+ return ""
534
+ }
535
+ } else {
536
+ if ! css_lexer .IsNameContinue (c ) {
537
+ log .AddError (nil , logger.Range {}, fmt .Sprintf ("Invalid CSS prefix: %q" , ident ))
538
+ return ""
539
+ }
540
+ }
541
+ }
542
+ return ident
543
+ }
544
+
527
545
func validateDefines (
528
546
log logger.Log ,
529
547
defines map [string ]string ,
@@ -1257,6 +1275,7 @@ func validateBuildOptions(
1257
1275
MangleProps : validateRegex (log , "mangle props" , buildOpts .MangleProps ),
1258
1276
ReserveProps : validateRegex (log , "reserve props" , buildOpts .ReserveProps ),
1259
1277
MangleQuoted : buildOpts .MangleQuoted == MangleQuotedTrue ,
1278
+ LocalCSSPrefix : validateCSSIdentifier (log , buildOpts .LocalCSSPrefix ),
1260
1279
DropLabels : append ([]string {}, buildOpts .DropLabels ... ),
1261
1280
DropDebugger : (buildOpts .Drop & DropDebugger ) != 0 ,
1262
1281
AllowOverwrite : buildOpts .AllowOverwrite ,
0 commit comments