Open jkazimierczak opened 9 months ago
I have similar issue.
This is my config file:
import type { CodegenConfig } from '@graphql-codegen/cli';
require('dotenv').config();
const scalars = {
JSON: '{ [key: string]: any }',
Date: 'string',
Datetime: 'string',
Time: 'string',
UUID: 'string',
BigInt: 'string',
};
const config: CodegenConfig = {
schema: [
{
'http://localhost:3000/graphql': {
headers: {
Authorization: `Bearer ${process.env.APOLLO_CODEGEN_TOKEN}`,
},
}
}
],
documents: 'libs/data-access/**/src/**/!(*.generated).{ts,graphql}',
generates: {
'libs/util/global-search/src/lib/__generated__/global-types.ts': {
plugins: ['typescript'],
config: {
immutableTypes: true,
scalars
}
},
'libs/data-access': {
preset: 'near-operation-file',
presetConfig: {
extension: '.generated.ts',
baseTypesPath: '../util/global-search/src/lib/__generated__/global-types.ts',
folder: '__generated__'
},
plugins: ['typescript-operations', 'typescript-apollo-angular'],
config: {
withHooks: true,
addExplicitOverride: true,
immutableTypes: true,
scalars
},
},
},
hooks: {
afterAllFileWrite: ['prettier --write']
}
};
export default config;
Codę generator is working fine
but plugin returns for me this stack trace:
java.lang.Throwable: /my-path/.graphqlrc.ts:50
export default config;
^^^^^^
SyntaxError: Unexpected token 'export'
at Object.compileFunction (node:vm:352:18)
at wrapSafe (node:internal/modules/cjs/loader:1031:15)
at Module._compile (node:internal/modules/cjs/loader:1065:27)
at Module.m._compile (/my-path/node_modules/ts-node/src/index.ts:1618:23)
at Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Object.require.extensions.<computed> [as .ts] (/my-path/node_modules/ts-node/src/index.ts:1621:12)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at com.intellij.lang.jsgraphql.javascript.config.GraphQLJavaScriptConfigLoader.completeExceptionally(GraphQLJavaScriptConfigLoader.kt:96)
at com.intellij.lang.jsgraphql.javascript.config.GraphQLJavaScriptConfigLoader.load(GraphQLJavaScriptConfigLoader.kt:81)
at com.intellij.lang.jsgraphql.ide.config.loader.GraphQLConfigLoader.readJs(GraphQLConfigLoader.kt:167)
at com.intellij.lang.jsgraphql.ide.config.loader.GraphQLConfigLoader.readData(GraphQLConfigLoader.kt:127)
at com.intellij.lang.jsgraphql.ide.config.loader.GraphQLConfigLoader.load(GraphQLConfigLoader.kt:29)
at com.intellij.lang.jsgraphql.ide.config.GraphQLConfigProvider.reload(GraphQLConfigProvider.kt:380)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:360)
at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:338)
at com.intellij.lang.jsgraphql.ide.config.GraphQLConfigProvider.scheduleConfigurationReload$lambda$22(GraphQLConfigProvider.kt:351)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:254)
at com.intellij.util.Alarm$Request.runSafely(Alarm.java:373)
at com.intellij.util.Alarm$Request.run(Alarm.java:360)
at com.intellij.util.concurrency.Propagation.contextAwareCallable$lambda$2(propagation.kt:328)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:272)
at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:249)
at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:31)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.executeFirstTaskAndHelpQueue(BoundedTaskExecutor.java:227)
at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:218)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:215)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
at java.base/java.lang.Thread.run(Thread.java:833)
Not using ESM imports and TS module export solve the issue:
// import type { CodegenConfig } from '@graphql-codegen/cli';
require('dotenv').config();
const scalars = {
JSON: '{ [key: string]: any }',
Date: 'string',
Datetime: 'string',
Time: 'string',
UUID: 'string',
BigInt: 'string',
};
// const config: CodegenConfig = {
const config = {
schema: [
{
'http://localhost:3000/graphql': {
headers: {
Authorization: `Bearer ${process.env.APOLLO_CODEGEN_TOKEN}`,
},
},
},
],
documents: 'libs/data-access/**/src/**/!(*.generated).{ts,graphql}',
generates: {
'libs/util/global-search/src/lib/__generated__/global-types.ts': {
plugins: ['typescript'],
config: {
immutableTypes: true,
scalars,
},
},
'libs/data-access': {
preset: 'near-operation-file',
presetConfig: {
extension: '.generated.ts',
baseTypesPath: '../util/global-search/src/lib/__generated__/global-types.ts',
folder: '__generated__',
},
plugins: ['typescript-operations', 'typescript-apollo-angular'],
config: {
withHooks: true,
addExplicitOverride: true,
immutableTypes: true,
scalars,
},
},
},
hooks: {
afterAllFileWrite: ['prettier --write'],
},
};
// export default config;
module.exports = config;
@jkazimierczak hi! AFAIU you can't import a CJS module like that, try this instead:
import env from "@next/env";
import type {CodegenConfig} from "@graphql-codegen/cli";
const {loadEnvConfig} = env;
More details can be found here https://stackoverflow.com/a/76306331
Also, please note, that ts-node
key shouldn't be inside compilerOptions
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"target": "ESNext",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"allowSyntheticDefaultImports": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": [
"./src/*"
]
}
},
"ts-node": {
"esm": true,
}
}
Describe the bug I tried adding this plugin to a codebase with
.graphqlrc.ts
config - this result in "Failed to evaluate config" message. The same config works wine without TS. I configured TS as described in: README.Error:
.graphqlrc.ts
(Fails):.graphqlrc.ts
(works):To Reproduce Link to Repo with Reproduction or Steps to Reproduce:
https://github.com/jkazimierczak/intellij-graphql-bug-report
npm i
.graphqlrc.ts
and see the notification.Expected behavior TS config with ESM imports is read correctly by the plugin.
Version and Environment Details