Skip to content

Instantly share code, notes, and snippets.

@lennertVanSever
Last active May 12, 2020 08:04
Show Gist options
  • Save lennertVanSever/def2cdc1cf80d9f70d9c5e2f493ba9d2 to your computer and use it in GitHub Desktop.
Save lennertVanSever/def2cdc1cf80d9f70d9c5e2f493ba9d2 to your computer and use it in GitHub Desktop.
require('dotenv').config()
const { ApolloServer } = require('apollo-server');
const neo4j = require('neo4j-driver');
const { inferSchema, makeAugmentedSchema } = require('neo4j-graphql-js');
const {
BOLT_ADDRESS,
DB_USERNAME,
DB_PASSWORD
} = process.env;
(async () => {
const driver = neo4j.driver(BOLT_ADDRESS, neo4j.auth.basic(DB_USERNAME, DB_PASSWORD));
const { typeDefs } = await inferSchema(driver);
const generatedSchema = makeAugmentedSchema({
typeDefs,
});
const server = new ApolloServer({
schema: generatedSchema,
context: ({ req }) => {
return {
driver,
req
};
},
});
const port = process.env.PORT || 8080;
server.listen(port).then(({ url }) => {
console.log(`GraphQL API ready at ${url}`);
}).catch(err => console.error(err));
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment