I am working on a nodejs and graphql project. I was using nodejs 12 for a few years. But now when I updated to nodejs 16, I am getting these warnings, but the project works as before. Below warings are generated for every graphql types.
(node:21588) Warning: Accessing non-existent property 'UpdateCourseResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'UpdateCourseResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'UpdateCourseResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'UpdateCourseResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'GetCoursesResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'GetCoursesResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'GetCoursesResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'GetCoursesResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'GetCoursesResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'GetCourseResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'GetCourseResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'GetCourseResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'GetCourseResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'DeleCourseResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'DeleCourseResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'DeleCourseResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'DeleCourseResponse' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'GuidesKeyValue' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'GuidesKeyValue' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'EvalGuides' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'EvalGuides' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'Fee' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'Fee' of module exports inside circular dependency
(node:21588) Warning: Accessing non-existent property 'Lesson' of module exports inside circular dependency(node:21588) Warning: Accessing non-existent property 'Lesson' of module exports inside circular dependency(node:21588) Warning: Accessing non-existent property 'Partner' of module exports inside circular dependency
When I run --trace-warnings
I got the source of the warning, it is coming from makeExecutableSchema
of the @graphql-tools
. What is going on here actually and how to resolve this warning?
Warning: Accessing non-existent property 'ApplyVoucherResponse' of module exports inside circular dependency
at emitCircularRequireWarning (node:internal/modules/cjs/loader:707:11)
at Object.get (node:internal/modules/cjs/loader:721:5)
at MapperKind.COMPOSITE_FIELD (E:\ProjectFolder\Office\OCA\OCA_COURSE\oca_course_server_up\node_modules\@graphql-tools\schema\index.js:397:44)
at mapFields (E:\ProjectFolder\Office\OCA\OCA_COURSE\oca_course_server_up\node_modules\@graphql-tools\utils\index.js:2577:37)
at Object.mapSchema (E:\ProjectFolder\Office\OCA\OCA_COURSE\oca_course_server_up\node_modules\@graphql-tools\utils\index.js:2444:37)
at createNewSchemaWithResolvers (E:\ProjectFolder\Office\OCA\OCA_COURSE\oca_course_server_up\node_modules\@graphql-tools\schema\index.js:302:20)
at addResolversToSchema (E:\ProjectFolder\Office\OCA\OCA_COURSE\oca_course_server_up\node_modules\@graphql-tools\schema\index.js:192:11)
at makeExecutableSchema (E:\ProjectFolder\Office\OCA\OCA_COURSE\oca_course_server_up\node_modules\@graphql-tools\schema\index.js:501:14)
at Object.<anonymous> (E:\ProjectFolder\Office\OCA\OCA_COURSE\oca_course_server_up\graphql\index.js:7:16)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
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 Object.<anonymous>
This is how I merged all the types
const path = require('path');
const { loadFilesSync } = require('@graphql-tools/load-files');
const { mergeTypeDefs } = require('@graphql-tools/merge');
const typesArray = loadFilesSync(path.join(__dirname, '.'), { extensions: ['gql'], ignoreIndex: true });
const typeDefs = mergeTypeDefs(typesArray);
module.exports = typeDefs ;
This is how I merged all the resolvers
const path = require('path');
const { loadFilesSync } = require('@graphql-tools/load-files');
const { mergeResolvers } = require('@graphql-tools/merge');
const resolversArray = loadFilesSync(path.join(__dirname, '.'), { extensions: ['js'] });
const resolvers = mergeResolvers(resolversArray);
module.exports = resolvers ;
I am using @graphql-tools
to merge all my types and resolver like below:
const { makeExecutableSchema } = require('@graphql-tools/schema');
const typeDefs = require("./types/index");
const resolvers = require("./resolvers/index");
// const { UpperCaseDirective, AuthDirective } = require('./directives');
const schema = makeExecutableSchema({
typeDefs,
resolvers
});
module.exports = schema ;