b20eb99a4d
## Feature Implements feature requested in https://github.com/vercel/next.js/issues/30805. A few people including myself have been looking to use Relay with Next.JS and want to use the new Rust Compiler. This is my stab at an implementation. ### How it works? Finds all `graphql` tagged template experssions and replaces them with `require`s to the file generated by Relay. ### Where I need help - I've only worked with Rust a handful of times so I would appreciate any feedback on my use of language features. - Is there any performance overhead to many duplicate usages of `require`? I imagine there's a cache in place but I want to be sure. - I've added some unit tests & integration tests but I might be missing some use cases. Feel free to comment some use cases I'm not thinking about. - [x] Related issues linked using `fixes #number` - [x] Integration tests added - [ ] Documentation added - I haven't added any docs since this is an experimental API. ## Documentation / Examples You're expected to be running the Relay Compiler along side Next.JS when you're developing. This is pretty standard. I wouldn't expect people to have any problem with this. ### Usage In your `next.config.js` ```js module.exports = { experimental: { relay: { language: 'typescript', // or 'javascript` artifactDirectory: 'path/to/you/artifact/directory' // you can leave this undefined if you did not specify one in the `relay.json` } } } ``` Co-authored-by: Tim Neutkens <6324199+timneutkens@users.noreply.github.com>
21 lines
529 B
JSON
21 lines
529 B
JSON
{
|
|
"compilerOptions": {
|
|
"baseUrl": ".",
|
|
"esModuleInterop": true,
|
|
"module": "esnext",
|
|
"jsx": "preserve",
|
|
"target": "es5",
|
|
"lib": ["dom", "dom.iterable", "esnext"],
|
|
"allowJs": true,
|
|
"skipLibCheck": true,
|
|
"strict": true,
|
|
"forceConsistentCasingInFileNames": true,
|
|
"noEmit": true,
|
|
"incremental": true,
|
|
"moduleResolution": "node",
|
|
"resolveJsonModule": true,
|
|
"isolatedModules": true
|
|
},
|
|
"exclude": ["node_modules"],
|
|
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"]
|
|
}
|