'Apollo-Server typeDefs must contain only strings, documents, schemas, or functions, got ${typeof typeSource}
TypeDefs indexTypes.js
const path = require('path'); const {loadFilesSync} = require('@graphql-tools/load-files'); const { makeExecutableSchema } = require('@graphql-tools/schema'); const {mergeTypeDefs} = require('@graphql-tools/merge');
const typesArray = loadFilesSync(path.join(__dirname, './'), { recursive: true, extensions: ['.js'] }); const typeDefs = mergeTypeDefs(typesArray, {all: true}); const typedefs = makeExecutableSchema({ typeDefs});
module.exports = {typedefs};
Resolvers indexResolvers.js
const path = require('path'); const { loadFilesSync } = require('@graphql-tools/load-files'); const { mergeResolvers } = require('@graphql-tools/merge');
const resolversArray = loadFilesSync(path.join(__dirname, './'), {
recursive: true, extensions: ['.js'], });const resolvers = mergeResolvers(resolversArray);
module.exports = { resolvers };
index.js
const {ApolloServer} = require('apollo-server'); const express = require('express'); require('dotenv').config(); require('./utils/db'); const port = process.env.PORT; const {typedefs} = require('./graphql/schema/indexTypes'); const {resolvers} = require('./graphql/resolvers/indexResolvers');
const app = express();
const server = new ApolloServer({ typedefs, resolvers, });
server.listen(port) .then(({ url }) => { console.log(
🚀 Server is ready at ${url}); }) .catch((e) => { console.log('⚡ Cannot launch server:', e.message); });
Error message Error: typeDefs must contain only strings, documents, schemas, or functions, got object at visitTypeSources
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
