graph-client icon indicating copy to clipboard operation
graph-client copied to clipboard

build fails: Unknown file extension ".ts"

Open kernelwhisperer opened this issue 1 year ago • 4 comments

Problem

Similarly to #409, I was just following the tutorial from https://thegraph.com/docs/en/querying/querying-from-an-application/ and it failed at the code generation step.

➜ npx graphclient build
(node:9415) ExperimentalWarning: stream/web is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
💡 GraphClient Cleaning existing artifacts
💡 GraphClient Reading the configuration
💡 GraphClient Generating the unified schema
💥 GraphClient - uniswapv2 Failed to generate the schema Error: Failed to fetch introspection from https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2: TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /home/daniel/repos/my-project/my-project-ui/.graphclient/sources/uniswapv2/introspectionSchema.ts
    at new NodeError (node:internal/errors:371:5)
    at Object.file: (node:internal/modules/esm/get_format:72:15)
    at defaultGetFormat (node:internal/modules/esm/get_format:85:38)
    at defaultLoad (node:internal/modules/esm/load:13:42)
    at ESMLoader.load (node:internal/modules/esm/loader:303:26)
    at ESMLoader.moduleProvider (node:internal/modules/esm/loader:230:58)
    at new ModuleJob (node:internal/modules/esm/module_job:63:26)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:244:11)
    at async Promise.all (index 0)
    at async ESMLoader.import (node:internal/modules/esm/loader:281:24) {
  code: 'ERR_UNKNOWN_FILE_EXTENSION'
}
    at GraphQLHandler.getMeshSource (/home/daniel/repos/my-project/my-project-ui/node_modules/@graphql-mesh/graphql/cjs/index.js:339:23)
    at async /home/daniel/repos/my-project/my-project-ui/node_modules/@graphql-mesh/runtime/cjs/get-mesh.js:128:28
💥 GraphClient Error: Schemas couldn't be generated successfully. Check for the logs by running Mesh with DEBUG=1 environmental variable to get more verbose output.
    at getMesh (/home/daniel/repos/my-project/my-project-ui/node_modules/@graphql-mesh/runtime/cjs/get-mesh.js:162:15)
    at async Object.handler (/home/daniel/repos/my-project/my-project-ui/node_modules/@graphql-mesh/cli/cjs/index.js:311:53)

The code is a fresh astro project created with npm create astro@latest and with Typescript enabled.

Fixes

  1. I tried adding ts-node as suggested by this tutorial I've look into https://graphql.wtf/episodes/45-the-graph-client. Did not work.
  2. I tried using a different tsconfig.json. Did not work.

What works is calling npx graphclient build --fileType ts as seen in this tutorial: https://www.youtube.com/watch?v=Wsq2fopq4BQ.

kernelwhisperer avatar May 09 '23 13:05 kernelwhisperer

I've experienced the same issue.

iamvukasin avatar May 15 '23 07:05 iamvukasin

Is there any chance you can create a reproduction on CodeSandbox?

ardatan avatar May 29 '23 11:05 ardatan

I'm experiencing the same issue when having ESM enabled in my package.json with "type": "modules"

https://github.com/graphprotocol/graph-client/issues/554

kyriediculous avatar Jul 11 '23 17:07 kyriediculous

I am having the same problem. This is a bog-standard build on a Ubuntu VM. It is blocking my use of graph-client, of course. I'm happy to help debug if the maintainers want help finding the source of the bug.

paulehoffman avatar Nov 01 '23 02:11 paulehoffman