privatenumber / tsx

⚡️ TypeScript Execute | The easiest way to run TypeScript in Node.js
https://tsx.is
MIT License
8.61k stars 132 forks source link

@apollo/server can't load #588

Closed jwanglof closed 2 weeks ago

jwanglof commented 2 weeks ago

Acknowledgements

Minimal reproduction URL

https://github.com/jwanglof/tsx-reproduction

Problem & expected behavior (under 200 words)

Skip this section and let your reproduction do the talking...

But if you really need to explain, keep it under 200 words:

Bugs are expected to be fixed by those affected by it

Compensating engineering work will speed up resolution and support the project

transcranial commented 1 week ago

@privatenumber Can this be reopened? We are running into this as well. No issues with 4.11.2, but 4.12.0 to 4.15.6 all fail.

The issue seems to stem from the @josephg/resolvable package, which creates the following stack trace:

/app/node_modules/.pnpm/@apollo+server@4.10.4_graphql@16.8.2/node_modules/@apollo/server/dist/esm/ApolloServer.js:127
        const barrier = resolvable();
                        ^

TypeError: resolvable is not a function
    at ApolloServer._start (/app/node_modules/.pnpm/@apollo+server@4.10.4_graphql@16.8.2/node_modules/@apollo/server/dist/esm/ApolloServer.js:127:25)
    at ApolloServer.start (/app/node_modules/.pnpm/@apollo+server@4.10.4_graphql@16.8.2/node_modules/@apollo/server/dist/esm/ApolloServer.js:115:27)
    at startApolloServer (/app/src/graphql/server.ts:143:22)
    at Server.<anonymous> (/app/src/server.ts:105:13)
    at Object.onceWrapper (node:events:632:28)
    at Server.emit (node:events:530:35)
    at emitListeningNT (node:net:1931:10)
    at process.processTicksAndRejections (node:internal/process/task_queues:81:21)

In ApolloServer.ts:

import resolvable, { type Resolvable } from '@josephg/resolvable';
...
const barrier = resolvable();
privatenumber commented 1 week ago

You can file a new issue with a minimal reproduction.

The reproduction provided by OP has many irrelevant dependencies and files. Effort counts a lot here.