@remix-run/router 1.0.5-pre.1 → 1.0.5-pre.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/utils.d.ts CHANGED
@@ -70,6 +70,7 @@ export interface Submission {
70
70
  interface DataFunctionArgs {
71
71
  request: Request;
72
72
  params: Params;
73
+ context?: any;
73
74
  }
74
75
  /**
75
76
  * Arguments passed to loader functions
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remix-run/router",
3
- "version": "1.0.5-pre.1",
3
+ "version": "1.0.5-pre.2",
4
4
  "description": "Nested/Data-driven/Framework-agnostic Routing",
5
5
  "keywords": [
6
6
  "remix",
package/router.ts CHANGED
@@ -316,8 +316,14 @@ export interface StaticHandlerContext {
316
316
  */
317
317
  export interface StaticHandler {
318
318
  dataRoutes: AgnosticDataRouteObject[];
319
- query(request: Request): Promise<StaticHandlerContext | Response>;
320
- queryRoute(request: Request, routeId?: string): Promise<any>;
319
+ query(
320
+ request: Request,
321
+ opts?: { requestContext?: unknown }
322
+ ): Promise<StaticHandlerContext | Response>;
323
+ queryRoute(
324
+ request: Request,
325
+ opts?: { routeId?: string; requestContext?: unknown }
326
+ ): Promise<any>;
321
327
  }
322
328
 
323
329
  /**
@@ -1943,7 +1949,8 @@ export function unstable_createStaticHandler(
1943
1949
  * return it directly.
1944
1950
  */
1945
1951
  async function query(
1946
- request: Request
1952
+ request: Request,
1953
+ { requestContext }: { requestContext?: unknown } = {}
1947
1954
  ): Promise<StaticHandlerContext | Response> {
1948
1955
  let url = new URL(request.url);
1949
1956
  let method = request.method.toLowerCase();
@@ -1987,7 +1994,7 @@ export function unstable_createStaticHandler(
1987
1994
  };
1988
1995
  }
1989
1996
 
1990
- let result = await queryImpl(request, location, matches);
1997
+ let result = await queryImpl(request, location, matches, requestContext);
1991
1998
  if (isResponse(result)) {
1992
1999
  return result;
1993
2000
  }
@@ -2018,7 +2025,13 @@ export function unstable_createStaticHandler(
2018
2025
  * code. Examples here are 404 and 405 errors that occur prior to reaching
2019
2026
  * any user-defined loaders.
2020
2027
  */
2021
- async function queryRoute(request: Request, routeId?: string): Promise<any> {
2028
+ async function queryRoute(
2029
+ request: Request,
2030
+ {
2031
+ routeId,
2032
+ requestContext,
2033
+ }: { requestContext?: unknown; routeId?: string } = {}
2034
+ ): Promise<any> {
2022
2035
  let url = new URL(request.url);
2023
2036
  let method = request.method.toLowerCase();
2024
2037
  let location = createLocation("", createPath(url), null, "default");
@@ -2045,7 +2058,13 @@ export function unstable_createStaticHandler(
2045
2058
  throw getInternalRouterError(404, { pathname: location.pathname });
2046
2059
  }
2047
2060
 
2048
- let result = await queryImpl(request, location, matches, match);
2061
+ let result = await queryImpl(
2062
+ request,
2063
+ location,
2064
+ matches,
2065
+ requestContext,
2066
+ match
2067
+ );
2049
2068
  if (isResponse(result)) {
2050
2069
  return result;
2051
2070
  }
@@ -2068,6 +2087,7 @@ export function unstable_createStaticHandler(
2068
2087
  request: Request,
2069
2088
  location: Location,
2070
2089
  matches: AgnosticDataRouteMatch[],
2090
+ requestContext: unknown,
2071
2091
  routeMatch?: AgnosticDataRouteMatch
2072
2092
  ): Promise<Omit<StaticHandlerContext, "location" | "basename"> | Response> {
2073
2093
  invariant(
@@ -2081,12 +2101,18 @@ export function unstable_createStaticHandler(
2081
2101
  request,
2082
2102
  matches,
2083
2103
  routeMatch || getTargetMatch(matches, location),
2104
+ requestContext,
2084
2105
  routeMatch != null
2085
2106
  );
2086
2107
  return result;
2087
2108
  }
2088
2109
 
2089
- let result = await loadRouteData(request, matches, routeMatch);
2110
+ let result = await loadRouteData(
2111
+ request,
2112
+ matches,
2113
+ requestContext,
2114
+ routeMatch
2115
+ );
2090
2116
  return isResponse(result)
2091
2117
  ? result
2092
2118
  : {
@@ -2117,6 +2143,7 @@ export function unstable_createStaticHandler(
2117
2143
  request: Request,
2118
2144
  matches: AgnosticDataRouteMatch[],
2119
2145
  actionMatch: AgnosticDataRouteMatch,
2146
+ requestContext: unknown,
2120
2147
  isRouteRequest: boolean
2121
2148
  ): Promise<Omit<StaticHandlerContext, "location" | "basename"> | Response> {
2122
2149
  let result: DataResult;
@@ -2142,7 +2169,8 @@ export function unstable_createStaticHandler(
2142
2169
  matches,
2143
2170
  basename,
2144
2171
  true,
2145
- isRouteRequest
2172
+ isRouteRequest,
2173
+ requestContext
2146
2174
  );
2147
2175
 
2148
2176
  if (request.signal.aborted) {
@@ -2192,9 +2220,15 @@ export function unstable_createStaticHandler(
2192
2220
  // Store off the pending error - we use it to determine which loaders
2193
2221
  // to call and will commit it when we complete the navigation
2194
2222
  let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);
2195
- let context = await loadRouteData(request, matches, undefined, {
2196
- [boundaryMatch.route.id]: result.error,
2197
- });
2223
+ let context = await loadRouteData(
2224
+ request,
2225
+ matches,
2226
+ requestContext,
2227
+ undefined,
2228
+ {
2229
+ [boundaryMatch.route.id]: result.error,
2230
+ }
2231
+ );
2198
2232
 
2199
2233
  // action status codes take precedence over loader status codes
2200
2234
  return {
@@ -2211,7 +2245,7 @@ export function unstable_createStaticHandler(
2211
2245
 
2212
2246
  // Create a GET request for the loaders
2213
2247
  let loaderRequest = new Request(request.url, { signal: request.signal });
2214
- let context = await loadRouteData(loaderRequest, matches);
2248
+ let context = await loadRouteData(loaderRequest, matches, requestContext);
2215
2249
 
2216
2250
  return {
2217
2251
  ...context,
@@ -2229,6 +2263,7 @@ export function unstable_createStaticHandler(
2229
2263
  async function loadRouteData(
2230
2264
  request: Request,
2231
2265
  matches: AgnosticDataRouteMatch[],
2266
+ requestContext: unknown,
2232
2267
  routeMatch?: AgnosticDataRouteMatch,
2233
2268
  pendingActionError?: RouteData
2234
2269
  ): Promise<
@@ -2277,7 +2312,8 @@ export function unstable_createStaticHandler(
2277
2312
  matches,
2278
2313
  basename,
2279
2314
  true,
2280
- isRouteRequest
2315
+ isRouteRequest,
2316
+ requestContext
2281
2317
  )
2282
2318
  ),
2283
2319
  ]);
@@ -2580,7 +2616,8 @@ async function callLoaderOrAction(
2580
2616
  matches: AgnosticDataRouteMatch[],
2581
2617
  basename = "/",
2582
2618
  isStaticRequest: boolean = false,
2583
- isRouteRequest: boolean = false
2619
+ isRouteRequest: boolean = false,
2620
+ requestContext?: unknown
2584
2621
  ): Promise<DataResult> {
2585
2622
  let resultType;
2586
2623
  let result;
@@ -2599,7 +2636,7 @@ async function callLoaderOrAction(
2599
2636
  );
2600
2637
 
2601
2638
  result = await Promise.race([
2602
- handler({ request, params: match.params }),
2639
+ handler({ request, params: match.params, context: requestContext }),
2603
2640
  abortPromise,
2604
2641
  ]);
2605
2642
 
@@ -2968,12 +3005,10 @@ function getInternalRouterError(
2968
3005
  pathname,
2969
3006
  routeId,
2970
3007
  method,
2971
- message,
2972
3008
  }: {
2973
3009
  pathname?: string;
2974
3010
  routeId?: string;
2975
3011
  method?: string;
2976
- message?: string;
2977
3012
  } = {}
2978
3013
  ) {
2979
3014
  let statusText = "Unknown Server Error";
package/utils.ts CHANGED
@@ -88,6 +88,7 @@ export interface Submission {
88
88
  interface DataFunctionArgs {
89
89
  request: Request;
90
90
  params: Params;
91
+ context?: any;
91
92
  }
92
93
 
93
94
  /**