marmelab / json-graphql-server

Get a full fake GraphQL API with zero coding in less than 30 seconds.
MIT License
1.93k stars 169 forks source link

CLI Error when using absolute path for data file #181

Closed fzaninotto closed 1 month ago

fzaninotto commented 1 month ago

What you were expecting: Calling the cli with an absolute path for the data file should work

➜  tmp ./node_modules/.bin/json-graphql-server ~/git/json-graphql-server/example/data.js

What happened instead: Error in the console

node:internal/modules/cjs/loader:1143
  throw err;
  ^

Error: Cannot find module '/Users/francois/tmp/Users/francois/git/json-graphql-server/example/data.js'
Require stack:
- /Users/francois/tmp/node_modules/json-graphql-server/bin/json-graphql-server.cjs
    at Module._resolveFilename (node:internal/modules/cjs/loader:1140:15)
    at Module._load (node:internal/modules/cjs/loader:981:27)
    at Module.require (node:internal/modules/cjs/loader:1231:19)
    at require (node:internal/modules/helpers:177:18)
    at Object.<anonymous> (/Users/francois/tmp/node_modules/json-graphql-server/bin/json-graphql-server.cjs:8:12)
    at Module._compile (node:internal/modules/cjs/loader:1364:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
    at Module.load (node:internal/modules/cjs/loader:1203:32)
    at Module._load (node:internal/modules/cjs/loader:1019:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/Users/francois/tmp/node_modules/json-graphql-server/bin/json-graphql-server.cjs'
  ]
}

Node.js v18.20.4

It works if I use a relative path instead

➜  tmp ./node_modules/.bin/json-graphql-server ../git/json-graphql-server/example/data.js
djhi commented 1 month ago

The error is here: https://github.com/marmelab/json-graphql-server/blob/master/bin/json-graphql-server.cjs#L7-L8.

We should use path.resolve