11import { BuildExtension } from "@trigger.dev/core/v3/build" ;
22import { sourceDir } from "./sourceDir.js" ;
33
4- export function rscExtension ( ) : BuildExtension {
4+ export type RSCExtensionOptions = {
5+ resolveDir ?: string ;
6+ reactDomEnvironment ?: "node" | "worker" | "bun" ;
7+ } ;
8+
9+ export function rscExtension ( options ?: RSCExtensionOptions ) : BuildExtension {
510 return {
611 name : "rsc" ,
712 onBuildStart ( context ) {
@@ -10,6 +15,8 @@ export function rscExtension(): BuildExtension {
1015 conditions : [ "react-server" ] ,
1116 } ) ;
1217
18+ const srcDir = options ?. resolveDir ?? sourceDir ;
19+
1320 context . config . build . conditions ??= [ ] ;
1421 context . config . build . conditions . push ( "react-server" ) ;
1522
@@ -23,7 +30,7 @@ export function rscExtension(): BuildExtension {
2330
2431 try {
2532 const resolvedPath = esmResolveSync ( args . path , {
26- url : sourceDir ,
33+ url : srcDir ,
2734 conditions : [ "react-server" ] ,
2835 } ) ;
2936
@@ -44,7 +51,7 @@ export function rscExtension(): BuildExtension {
4451
4552 try {
4653 const resolvedPath = esmResolveSync ( args . path , {
47- url : sourceDir ,
54+ url : srcDir ,
4855 conditions : [ "react-server" ] ,
4956 } ) ;
5057
@@ -65,7 +72,7 @@ export function rscExtension(): BuildExtension {
6572
6673 try {
6774 const resolvedPath = esmResolveSync ( args . path , {
68- url : sourceDir ,
75+ url : srcDir ,
6976 conditions : [ "react-server" ] ,
7077 } ) ;
7178
@@ -82,12 +89,15 @@ export function rscExtension(): BuildExtension {
8289 } ) ;
8390
8491 build . onResolve ( { filter : / ^ r e a c t - d o m \/ s e r v e r $ / } , ( args ) => {
85- context . logger . debug ( "Resolving react-dom/server" , { args } ) ;
92+ const condition =
93+ context . config . runtime === "bun" ? "bun" : options ?. reactDomEnvironment ?? "node" ;
94+
95+ context . logger . debug ( "Resolving react-dom/server" , { args, condition } ) ;
8696
8797 try {
8898 const resolvedPath = esmResolveSync ( args . path , {
89- url : sourceDir ,
90- conditions : [ "worker" ] ,
99+ url : srcDir ,
100+ conditions : [ condition ] ,
91101 } ) ;
92102
93103 context . logger . debug ( "Resolved react-dom/server" , { resolvedPath } ) ;
0 commit comments