mTLS fetch throwing `TypeError: Illegal invocation` when passed around

I mentioned this when starting with mTLS with Workers but wanted to circle back to it. If you pass env.MY_CERT.fetch around (like to a third-party library), it will throw a TypeError: Illegal invocation when yielded unless you manually .bind it to the env.MY_CERT context. I don't know if this is specific to being used within a generator or if it does it on await too. For example, screenshot shows some package code that uses a generator (once bundled) and it fails on the yield. To fix it, we have to do options.fetcher = env.MY_CERT.fetch.bind(env.MY_CERT) But this isn't obvious/ideal for a DX. I'm wondering if this is "just the way it is" or if it's something Workers runtime can fix/take care of? I can create a cloudflare/workerd issue if needed too.
1 Reply
Kamran
Kamran15mo ago
@skye_31 Couldn't CF bind the function before injecting it into worker scripts? Or would that have other consequences.