mirror of
https://github.com/vale981/apollo-server
synced 2025-03-05 17:51:40 -05:00
![]() * import jest * remove mocha, chai, sinon * fix JSON parsing for package.json * replace import mocha, chai, sinon with jest * add jest as test npm script * remove dependency on mocha types * errors: remove unused jest tests * move tests to __tests__ folders * add jest types to root tsconfig * fix tsconfig include excludes * .to.equal -> toEqual * .true -> .toBe(true) * .to.deep.equal -> .toEqual * .to.exist -> .toBeDefined() * .to.contain -> .toMatch * .to.match -> .toMatch * to.be.undefined -> .toBeUndefined() * not.toBeDefined -> .toBeUndefined * bring integration test up to date with past changes * remove message from expect * .null -> .toBe(null) * expect.fail -> done.fail * callsFake -> jest.fn * mocha mock calls -> jest * .not.to.exist -> .toBeUndefined() * callCount -> mocks.calls.length * returns -> jest.fn() * .equals -> .toEqual * fix relative imports * remove string in expects and place as comment * remove Fibers from runQuery * restore -> mockRestore * before -> beforeAll * after -> afterAll * fix async_hooks test and Promise await * remove jest from testsuite package json * remove unnecessary apollo-server-env setup * add start of cloudflare tests * this.timeout -> timeout argument * express: fix relative require * import gql tag properly * .to.throw -> .toThrow * .to.be.instanceof -> .toBeInstanceOf * remove console log check test * done(Error) -> done.fail(Error) * done -> done.fail * change port numbers, since jest runs in parallel * fix toBeUndefined for null checks * make engine port unique in testsuite * make data source rest endpoint port unique * add coverage scripts * travis npm script -> cricle script * make engine port random * change ports to not conflict across integrations * increase node version for apollo-server-hapi * add node versioning to prevent hapi tests from running * move jest dependencies to the root package.json * make hapi port unique * fix port reference in hapi tests |
||
---|---|---|
.. | ||
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!