JSPM

apollo-server-hapi

2.0.0-beta.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 6331
  • Score
    100M100P100Q13686F
  • License MIT

Production-ready Node.js GraphQL server for Hapi

Package Exports

  • apollo-server-hapi

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (apollo-server-hapi) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme


title: Hapi description: Setting up Apollo Server with Hapi

npm version Build Status Coverage Status Get on Slack

This is the Hapi integration of Apollo Server. Apollo Server is a community-maintained open-source Apollo Server that works with all Node.js HTTP server frameworks: Express, Connect, Hapi, Koa and Restify. Read the docs. Read the CHANGELOG.

npm install apollo-server-hapi

Usage

After constructing Apollo server, a hapi server can be enabled with a call to registerServer. Ensure that autoListen is set to false in the Hapi.server constructor.

The code below requires Hapi 17 or higher.

const Hapi = require('hapi');
const { ApolloServer } = require('apollo-server');
const { registerServer } = require('apollo-server-hapi');

const HOST = 'localhost';

async function StartServer() {
  const server = new ApolloServer({ typeDefs, resolvers });

  //Note: autoListen is required, since Apollo Server will start the listener
  const app = new Hapi.server({
    autoListen: false,
    host: HOST,
  });

  //apply other plugins

  await registerServer({ server, app });

  //port is optional and defaults to 4000
  server.listen({ port: 4000 }).then(({ url }) => {
    console.log(`🚀  Server ready at ${url}`);
  });
}

StartServer().catch(error => console.log(e));

Principles

Apollo Server is built with the following principles in mind:

  • By the community, for the community: Apollo Server's development is driven by the needs of developers
  • Simplicity: by keeping things simple, Apollo Server is easier to use, easier to contribute to, and more secure
  • Performance: Apollo Server is well-tested and production-ready - no modifications needed

Anyone is welcome to contribute to Apollo Server, just read CONTRIBUTING.md, take a look at the roadmap and make your first PR!