graphql-modules icon indicating copy to clipboard operation
graphql-modules copied to clipboard

async_hooks restricts to only Node.js usage

Open PabloSzx opened this issue 4 years ago • 2 comments

Right now GraphQL Modules uses a Node.js specific module async_hooks in /packages/graphql-modules/src/application/execution-context.ts, and that restricts the usage of GraphQL Modules to only Node.js, making it harder/impossible to be used in other environments like Deno or Cloudflare workers.

Workaround: In this repo I had to add a no-op for async_hooks to be able to include it in the Cloudflare workers environment

Describe the solution you'd like

Re-factor the current implementation to not require async_hooks

Describe alternatives you've considered

Ship an extra module that doesn't include the async_hooks usage.

PabloSzx avatar May 24 '21 17:05 PabloSzx

We recently hit this problem trying to use GraphQL Modules with Deno. We'd love to help with this if possible.

taras avatar Aug 26 '22 13:08 taras

@kamilkisiela do you think this is something we can find a solution for?

dotansimha avatar Aug 28 '22 13:08 dotansimha

I'm having the same problem trying to use it in Cloudflare Workers.

Jinsung-L avatar Sep 28 '22 01:09 Jinsung-L

https://github.com/Urigo/graphql-modules/pull/2255 but I haven't test it anywhere for leaks

kamilkisiela avatar Sep 28 '22 14:09 kamilkisiela

#2255 but I haven't test it anywhere for leaks

I've just tested it and it works just fine.

https://github.com/Jinsung-L/graphql-modules-on-cloudflare-workers

https://graphql-modules-on-cloudflare-workers.jinsung.workers.dev

Jinsung-L avatar Sep 29 '22 01:09 Jinsung-L

I'd like to bump this issue as it's the one thing keeping me from migrating to Deno, which would greatly improve the workflow of working with GraphQL and avoiding a whole list of transpilers and bundlers before I have a workable server. Since there hasn't been many updates with Deno's implementation of the async_hooks denoland/deno#7010 can #2255 be considered or a similar implementation?

Dan6erbond avatar Sep 27 '23 11:09 Dan6erbond

Big update, this issue is fixed in [email protected] with #2461. Please try it out! Would be happy to hear that we support Deno now too!

enisdenjo avatar Nov 02 '23 14:11 enisdenjo