'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