mirror of
https://github.com/vale981/apollo-server
synced 2025-03-13 06:26:37 -04:00
![]() * Switch to a fork of `apollo-upload-server` to fix missing `core-js` dependency. As reported in https://github.com/apollographql/apollo-server/issues/1542, the `apollo-upload-server` package (v5.0.0, which `apollo-server` relies on) is no longer able to provide a `core-js` package because of change that was outside of its control in a Babel release. The problem is resolved in newer versions of `apollo-upload-server`, however, regrettably, the newer versions of that package (notably, v6 and v7) drop support for Node.js 6 — one of two versions of Node.js that are currently under the terms of the Node.js Foundation's Long-Term-Support (LTS) agreements. Since Apollo Server aims to support versions of Node.js which are under LTS (and will drop support for Node.js 6 in April 2019, per Node.js' schedule) the current, immediate solution is to fork the `apollo-upload-server` package as `@apollographql/apollo-upload-server`. With the inclusion of https://github.com/apollographql/apollo-upload-server/pull/1, we are able to keep supporting Node.js 6. Without this change, every new installation of `apollo-server`, which doesn't have a `package-lock.json` preventing transitive dependency updates - specifically, the updates to `@babel/runtime` versions newer than `-beta.56` - is broken. * [squash] Update to `@apollographql/apollo-upload-server@5.0.2`. * [squash] Update to `@apollographql/apollo-upload-server@5.0.3`. |
||
---|---|---|
.. | ||
src | ||
.npmignore | ||
package.json | ||
README.md | ||
tsconfig.json |
title | description |
---|---|
Hapi | Setting up Apollo Server with Hapi |
This is the Hapi integration of Apollo Server. Apollo Server is a community-maintained open-source Apollo Server that works with many Node.js HTTP server frameworks. Read the docs. Read the CHANGELOG.
npm install apollo-server-hapi@rc
Usage
The code below requires Hapi 17 or higher.
const { ApolloServer, gql } = require('apollo-server-hapi');
const Hapi = require('hapi');
async function StartServer() {
const server = new ApolloServer({ typeDefs, resolvers });
const app = new Hapi.server({
port: 4000
});
await server.applyMiddleware({
app,
});
await server.installSubscriptionHandlers(app.listener);
await app.start();
}
StartServer().catch(error => console.log(error));
Context
The context is created for each request. The following code snippet shows the creation of a context. The arguments are the request
, the request, and h
, the response toolkit.
new ApolloServer({
typeDefs,
resolvers,
context: async ({ request, h }) => {
return { ... };
},
})
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!