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