Modify request before calling other worker on specific URL

Is it possible to modify request before passing it to binding?

Let's say I have code like this on top level worker that sits on https://example.com/edge/backporter
import { Router } from 'itty-router';
const router = Router();

router.get('/edge/backporter', async (request) => {
  request.query = '?foobar' // modify request
  // Set URL to specific URL in other worker
  request.url = '/edge/v1' // Error, cannot set read-only property
  return env.BINDING.fetch(request);
}


And on BINDING worker I have router that responds to certain URL only
https://example.com/edge/v1
import { Router } from 'itty-router';
const router = Router();

router.get('/edge/v1', async (request) => { ... }

I'd like to make sure request from first worker ends up in /edge/v1, but it never does, since I can't change request URL, nor can I request.clone(), since then URL would match /edge/backporter and not /edge/v1

Is anything like this possible?
Was this page helpful?