@@ -1988,7 +1988,7 @@ export function unstable_createStaticHandler(
1988
1988
}
1989
1989
1990
1990
let result = await queryImpl ( request , location , matches ) ;
1991
- if ( result instanceof Response ) {
1991
+ if ( isResponse ( result ) ) {
1992
1992
return result ;
1993
1993
}
1994
1994
@@ -2046,7 +2046,7 @@ export function unstable_createStaticHandler(
2046
2046
}
2047
2047
2048
2048
let result = await queryImpl ( request , location , matches , match ) ;
2049
- if ( result instanceof Response ) {
2049
+ if ( isResponse ( result ) ) {
2050
2050
return result ;
2051
2051
}
2052
2052
@@ -2087,7 +2087,7 @@ export function unstable_createStaticHandler(
2087
2087
}
2088
2088
2089
2089
let result = await loadRouteData ( request , matches , routeMatch ) ;
2090
- return result instanceof Response
2090
+ return isResponse ( result )
2091
2091
? result
2092
2092
: {
2093
2093
...result ,
@@ -2616,7 +2616,7 @@ async function callLoaderOrAction(
2616
2616
request . signal . removeEventListener ( "abort" , onReject ) ;
2617
2617
}
2618
2618
2619
- if ( result instanceof Response ) {
2619
+ if ( isResponse ( result ) ) {
2620
2620
let status = result . status ;
2621
2621
2622
2622
// Process redirects
@@ -3048,8 +3048,18 @@ function isRedirectResult(result?: DataResult): result is RedirectResult {
3048
3048
return ( result && result . type ) === ResultType . redirect ;
3049
3049
}
3050
3050
3051
+ function isResponse ( value : any ) : value is Response {
3052
+ return (
3053
+ value != null &&
3054
+ typeof value . status === "number" &&
3055
+ typeof value . statusText === "string" &&
3056
+ typeof value . headers === "object" &&
3057
+ typeof value . body !== "undefined"
3058
+ ) ;
3059
+ }
3060
+
3051
3061
function isRedirectResponse ( result : any ) : result is Response {
3052
- if ( ! ( result instanceof Response ) ) {
3062
+ if ( ! isResponse ( result ) ) {
3053
3063
return false ;
3054
3064
}
3055
3065
@@ -3061,7 +3071,7 @@ function isRedirectResponse(result: any): result is Response {
3061
3071
function isQueryRouteResponse ( obj : any ) : obj is QueryRouteResponse {
3062
3072
return (
3063
3073
obj &&
3064
- obj . response instanceof Response &&
3074
+ isResponse ( obj . response ) &&
3065
3075
( obj . type === ResultType . data || ResultType . error )
3066
3076
) ;
3067
3077
}
0 commit comments