@@ -559,14 +559,16 @@ pub async fn get_server_module_options_context(
559
559
. flatten ( )
560
560
. collect ( ) ;
561
561
562
- // Custom ecma transform rules selectively being applied depends on the server
563
- // context type.
564
- let styled_components_transform_rule =
565
- get_styled_components_transform_rule ( next_config) . await ?;
566
- // It's important the client's browserlist config is used for styled-jsx, otherwise we transpile
567
- // the CSS to be compatible with Node.js 20.
568
- let styled_jsx_transform_rule =
569
- get_styled_jsx_transform_rule ( next_config, client_environment. runtime_versions ( ) ) . await ?;
562
+ // Only relevant for pages, not routes/etc.
563
+ let page_transform_rules: Vec < ModuleRule > = vec ! [
564
+ get_styled_components_transform_rule( next_config) . await ?,
565
+ // It's important the client's browserlist config is used for styled-jsx, otherwise we
566
+ // transpile the CSS to be compatible with Node.js 20.
567
+ get_styled_jsx_transform_rule( next_config, client_environment. runtime_versions( ) ) . await ?,
568
+ ]
569
+ . into_iter ( )
570
+ . flatten ( )
571
+ . collect ( ) ;
570
572
571
573
let source_maps = if * next_config. server_source_maps ( ) . await ? {
572
574
SourceMapsType :: Full
@@ -608,23 +610,16 @@ pub async fn get_server_module_options_context(
608
610
609
611
let module_options_context = match ty {
610
612
ServerContextType :: Pages { .. } | ServerContextType :: PagesApi { .. } => {
611
- let mut custom_source_transform_rules: Vec < ModuleRule > =
612
- vec ! [ styled_components_transform_rule, styled_jsx_transform_rule]
613
- . into_iter ( )
614
- . flatten ( )
615
- . collect ( ) ;
616
-
613
+ next_server_rules. extend ( page_transform_rules) ;
617
614
if let ServerContextType :: Pages { .. } = ty {
618
- custom_source_transform_rules . push (
615
+ next_server_rules . push (
619
616
get_next_react_server_components_transform_rule ( next_config, false , None )
620
617
. await ?,
621
618
) ;
622
619
}
623
620
624
- next_server_rules. extend ( custom_source_transform_rules. iter ( ) . cloned ( ) ) ;
625
621
next_server_rules. extend ( source_transform_rules) ;
626
622
627
- foreign_next_server_rules. extend ( custom_source_transform_rules) ;
628
623
foreign_next_server_rules. extend ( internal_custom_rules) ;
629
624
630
625
let url_rewrite_behavior = Some (
@@ -690,21 +685,13 @@ pub async fn get_server_module_options_context(
690
685
}
691
686
}
692
687
ServerContextType :: AppSSR { app_dir, .. } => {
693
- let mut custom_source_transform_rules: Vec < ModuleRule > =
694
- vec ! [ styled_components_transform_rule, styled_jsx_transform_rule]
695
- . into_iter ( )
696
- . flatten ( )
697
- . collect ( ) ;
698
-
699
- foreign_next_server_rules. extend ( custom_source_transform_rules. iter ( ) . cloned ( ) ) ;
700
688
foreign_next_server_rules. extend ( internal_custom_rules) ;
701
689
702
- custom_source_transform_rules. push (
690
+ next_server_rules. extend ( page_transform_rules. clone ( ) ) ;
691
+ next_server_rules. push (
703
692
get_next_react_server_components_transform_rule ( next_config, false , Some ( app_dir) )
704
693
. await ?,
705
694
) ;
706
-
707
- next_server_rules. extend ( custom_source_transform_rules. clone ( ) ) ;
708
695
next_server_rules. extend ( source_transform_rules) ;
709
696
710
697
let foreign_code_module_options_context = ModuleOptionsContext {
@@ -755,33 +742,29 @@ pub async fn get_server_module_options_context(
755
742
ecmascript_client_reference_transition_name,
756
743
..
757
744
} => {
758
- let mut custom_source_transform_rules: Vec < ModuleRule > =
759
- vec ! [ styled_components_transform_rule, styled_jsx_transform_rule]
760
- . into_iter ( )
761
- . flatten ( )
762
- . collect ( ) ;
763
-
764
- if let Some ( ecmascript_client_reference_transition_name) =
765
- ecmascript_client_reference_transition_name
766
- {
767
- custom_source_transform_rules. push ( get_ecma_transform_rule (
768
- Box :: new ( ClientDirectiveTransformer :: new (
769
- ecmascript_client_reference_transition_name,
770
- ) ) ,
771
- enable_mdx_rs. is_some ( ) ,
772
- EcmascriptTransformStage :: Preprocess ,
773
- ) ) ;
774
- }
745
+ next_server_rules. extend ( page_transform_rules) ;
746
+
747
+ let client_directive_transformer = ecmascript_client_reference_transition_name. map (
748
+ |ecmascript_client_reference_transition_name| {
749
+ get_ecma_transform_rule (
750
+ Box :: new ( ClientDirectiveTransformer :: new (
751
+ ecmascript_client_reference_transition_name,
752
+ ) ) ,
753
+ enable_mdx_rs. is_some ( ) ,
754
+ EcmascriptTransformStage :: Preprocess ,
755
+ )
756
+ } ,
757
+ ) ;
775
758
776
- foreign_next_server_rules. extend ( custom_source_transform_rules . iter ( ) . cloned ( ) ) ;
759
+ foreign_next_server_rules. extend ( client_directive_transformer . clone ( ) ) ;
777
760
foreign_next_server_rules. extend ( internal_custom_rules) ;
778
761
779
- custom_source_transform_rules. push (
762
+ next_server_rules. extend ( client_directive_transformer. clone ( ) ) ;
763
+ next_server_rules. push (
780
764
get_next_react_server_components_transform_rule ( next_config, true , Some ( app_dir) )
781
765
. await ?,
782
766
) ;
783
767
784
- next_server_rules. extend ( custom_source_transform_rules. clone ( ) ) ;
785
768
next_server_rules. extend ( source_transform_rules) ;
786
769
787
770
let foreign_code_module_options_context = ModuleOptionsContext {
@@ -909,35 +892,28 @@ pub async fn get_server_module_options_context(
909
892
app_dir,
910
893
ecmascript_client_reference_transition_name,
911
894
} => {
912
- let mut custom_source_transform_rules: Vec < ModuleRule > =
913
- vec ! [ styled_components_transform_rule, styled_jsx_transform_rule]
914
- . into_iter ( )
915
- . flatten ( )
916
- . collect ( ) ;
917
-
918
- if let Some ( ecmascript_client_reference_transition_name) =
919
- ecmascript_client_reference_transition_name
920
- {
921
- custom_source_transform_rules. push ( get_ecma_transform_rule (
922
- Box :: new ( ClientDirectiveTransformer :: new (
923
- ecmascript_client_reference_transition_name,
924
- ) ) ,
925
- enable_mdx_rs. is_some ( ) ,
926
- EcmascriptTransformStage :: Preprocess ,
927
- ) ) ;
928
- } else {
929
- custom_source_transform_rules. push ( get_ecma_transform_rule (
930
- Box :: new ( ClientDisallowedDirectiveTransformer :: new (
931
- "next/dist/client/use-client-disallowed.js" . to_string ( ) ,
932
- ) ) ,
933
- enable_mdx_rs. is_some ( ) ,
934
- EcmascriptTransformStage :: Preprocess ,
935
- ) ) ;
936
- }
937
-
938
- custom_source_transform_rules. push (
895
+ let custom_source_transform_rules: Vec < ModuleRule > = vec ! [
896
+ if let Some ( ecmascript_client_reference_transition_name) =
897
+ ecmascript_client_reference_transition_name
898
+ {
899
+ get_ecma_transform_rule(
900
+ Box :: new( ClientDirectiveTransformer :: new(
901
+ ecmascript_client_reference_transition_name,
902
+ ) ) ,
903
+ enable_mdx_rs. is_some( ) ,
904
+ EcmascriptTransformStage :: Preprocess ,
905
+ )
906
+ } else {
907
+ get_ecma_transform_rule(
908
+ Box :: new( ClientDisallowedDirectiveTransformer :: new(
909
+ "next/dist/client/use-client-disallowed.js" . to_string( ) ,
910
+ ) ) ,
911
+ enable_mdx_rs. is_some( ) ,
912
+ EcmascriptTransformStage :: Preprocess ,
913
+ )
914
+ } ,
939
915
get_next_react_server_components_transform_rule( next_config, true , app_dir) . await ?,
940
- ) ;
916
+ ] ;
941
917
942
918
internal_custom_rules. extend ( custom_source_transform_rules. iter ( ) . cloned ( ) ) ;
943
919
0 commit comments