@@ -112,8 +112,13 @@ func esmRouter(db Database, esmStorage storage.Storage, logger *log.Logger) rex.
112
112
fmt .Fprintf (h , "%v" , options .Minify )
113
113
hash := hex .EncodeToString (h .Sum (nil ))
114
114
115
+ zoneId := ctx .R .Header .Get ("X-Zone-Id" )
116
+ if zoneId != "" && ! valid .IsDomain (zoneId ) {
117
+ zoneId = ""
118
+ }
119
+ savePath := normalizeSavePath (zoneId , fmt .Sprintf ("modules/transform/%s.mjs" , hash ))
120
+
115
121
// if previous build exists, return it directly
116
- savePath := normalizeSavePath (ctx .R .Header .Get ("X-Zone-Id" ), fmt .Sprintf ("modules/transform/%s.mjs" , hash ))
117
122
if file , _ , err := esmStorage .Get (savePath ); err == nil {
118
123
data , err := io .ReadAll (file )
119
124
file .Close ()
@@ -408,7 +413,11 @@ func esmRouter(db Database, esmStorage storage.Storage, logger *log.Logger) rex.
408
413
if len (hash ) != 40 || ! valid .IsHexString (hash ) {
409
414
return rex .Status (404 , "Not Found" )
410
415
}
411
- savePath := normalizeSavePath (ctx .R .Header .Get ("X-Zone-Id" ), fmt .Sprintf ("modules/transform/%s.%s" , hash , ext ))
416
+ zoneId := ctx .R .Header .Get ("X-Zone-Id" )
417
+ if zoneId != "" && ! valid .IsDomain (zoneId ) {
418
+ zoneId = ""
419
+ }
420
+ savePath := normalizeSavePath (zoneId , fmt .Sprintf ("modules/transform/%s.%s" , hash , ext ))
412
421
f , fi , err := esmStorage .Get (savePath )
413
422
if err != nil {
414
423
return rex .Status (500 , err .Error ())
@@ -485,27 +494,23 @@ func esmRouter(db Database, esmStorage storage.Storage, logger *log.Logger) rex.
485
494
npmrc = DefaultNpmRC ()
486
495
}
487
496
488
- zoneIdHeader := ctx .R .Header .Get ("X-Zone-Id" )
489
- if zoneIdHeader != "" {
490
- if ! valid .IsDomain (zoneIdHeader ) {
491
- zoneIdHeader = ""
492
- } else {
493
- var scopeName string
494
- if pkgName := toPackageName (pathname [1 :]); strings .HasPrefix (pkgName , "@" ) {
495
- scopeName = pkgName [:strings .Index (pkgName , "/" )]
496
- }
497
- if scopeName != "" {
498
- reg , ok := npmrc .ScopedRegistries [scopeName ]
499
- if ! ok || (reg .Registry == jsrRegistry && reg .Token == "" && (reg .User == "" || reg .Password == "" )) {
500
- zoneIdHeader = ""
501
- }
502
- } else if npmrc .Registry == npmRegistry && npmrc .Token == "" && (npmrc .User == "" || npmrc .Password == "" ) {
503
- zoneIdHeader = ""
497
+ zoneId := ctx .R .Header .Get ("X-Zone-Id" )
498
+ if zoneId != "" {
499
+ var scopeName string
500
+ if pkgName := toPackageName (pathname [1 :]); strings .HasPrefix (pkgName , "@" ) {
501
+ scopeName = pkgName [:strings .Index (pkgName , "/" )]
502
+ }
503
+ if scopeName != "" {
504
+ reg , ok := npmrc .ScopedRegistries [scopeName ]
505
+ if ! ok || (reg .Registry == jsrRegistry && reg .Token == "" && (reg .User == "" || reg .Password == "" )) {
506
+ zoneId = ""
504
507
}
508
+ } else if npmrc .Registry == npmRegistry && npmrc .Token == "" && (npmrc .User == "" || npmrc .Password == "" ) {
509
+ zoneId = ""
505
510
}
506
511
}
507
- if zoneIdHeader != "" {
508
- npmrc .zoneId = zoneIdHeader
512
+ if zoneId != "" && valid . IsDomain ( zoneId ) {
513
+ npmrc .zoneId = zoneId
509
514
}
510
515
511
516
if strings .HasPrefix (pathname , "/http://" ) || strings .HasPrefix (pathname , "/https://" ) {
@@ -560,7 +565,7 @@ func esmRouter(db Database, esmStorage storage.Storage, logger *log.Logger) rex.
560
565
h .Write ([]byte (ctxParam ))
561
566
h .Write ([]byte (target ))
562
567
h .Write ([]byte (v ))
563
- savePath := normalizeSavePath (zoneIdHeader , path .Join ("modules/x" , hex .EncodeToString (h .Sum (nil ))+ ".css" ))
568
+ savePath := normalizeSavePath (npmrc . zoneId , path .Join ("modules/x" , hex .EncodeToString (h .Sum (nil ))+ ".css" ))
564
569
r , fi , err := esmStorage .Get (savePath )
565
570
if err != nil && err != storage .ErrNotFound {
566
571
return rex .Status (500 , err .Error ())
@@ -704,7 +709,7 @@ func esmRouter(db Database, esmStorage storage.Storage, logger *log.Logger) rex.
704
709
h .Write ([]byte (im ))
705
710
h .Write ([]byte (target ))
706
711
h .Write ([]byte (v ))
707
- savePath := normalizeSavePath (zoneIdHeader , path .Join ("modules/x" , hex .EncodeToString (h .Sum (nil ))+ ".mjs" ))
712
+ savePath := normalizeSavePath (npmrc . zoneId , path .Join ("modules/x" , hex .EncodeToString (h .Sum (nil ))+ ".mjs" ))
708
713
content , fi , err := esmStorage .Get (savePath )
709
714
if err != nil && err != storage .ErrNotFound {
710
715
return rex .Status (500 , err .Error ())
0 commit comments