@rangojs/router 0.0.0-experimental.33 → 0.0.0-experimental.34

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.
@@ -1745,7 +1745,7 @@ import { resolve } from "node:path";
1745
1745
  // package.json
1746
1746
  var package_default = {
1747
1747
  name: "@rangojs/router",
1748
- version: "0.0.0-experimental.33",
1748
+ version: "0.0.0-experimental.34",
1749
1749
  description: "Django-inspired RSC router with composable URL patterns",
1750
1750
  keywords: [
1751
1751
  "react",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rangojs/router",
3
- "version": "0.0.0-experimental.33",
3
+ "version": "0.0.0-experimental.34",
4
4
  "description": "Django-inspired RSC router with composable URL patterns",
5
5
  "keywords": [
6
6
  "react",
@@ -214,14 +214,17 @@ export function createHandlerContext<TEnv>(
214
214
  requestContext?.res ?? new Response(null, { status: 200 });
215
215
 
216
216
  // Guard mutating Headers methods so they throw inside "use cache" functions.
217
+ // Uses lazy `ctx` reference (assigned below) — only the specific handler ctx
218
+ // is stamped by cache-runtime, not the shared request context.
217
219
  const MUTATING_HEADERS_METHODS = new Set(["set", "append", "delete"]);
220
+ let ctx: InternalHandlerContext<any, TEnv>;
218
221
  const guardedHeaders = new Proxy(stubResponse.headers, {
219
222
  get(target, prop, receiver) {
220
223
  const value = Reflect.get(target, prop, receiver);
221
224
  if (typeof value === "function") {
222
225
  if (MUTATING_HEADERS_METHODS.has(prop as string)) {
223
226
  return (...args: any[]) => {
224
- assertNotInsideCacheExec(requestContext, "headers");
227
+ assertNotInsideCacheExec(ctx, "headers");
225
228
  return value.apply(target, args);
226
229
  };
227
230
  }
@@ -231,7 +234,7 @@ export function createHandlerContext<TEnv>(
231
234
  },
232
235
  });
233
236
 
234
- const ctx: InternalHandlerContext<any, TEnv> = {
237
+ ctx = {
235
238
  params,
236
239
  build: false,
237
240
  request,
@@ -247,7 +250,7 @@ export function createHandlerContext<TEnv>(
247
250
  TEnv
248
251
  >["get"],
249
252
  set: ((keyOrVar: any, value: any) => {
250
- assertNotInsideCacheExec(requestContext, "set");
253
+ assertNotInsideCacheExec(ctx, "set");
251
254
  contextSet(variables, keyOrVar, value);
252
255
  }) as HandlerContext<any, TEnv>["set"],
253
256
  res: stubResponse, // Stub response for setting headers