@as-integrations/cloudflare-workers
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

@as-integrations/cloudflare-workers

NPM version

An integration to use Cloudflare Workers as a hosting service with Apollo Server.

Quickstart

Install

npm add @apollo/server @as-integrations/cloudflare-workers graphql

Usage

You must enable Node.js compatibility feature by adding the following flag in the file wrangler.toml:

node_compat = true  # add this
import { ApolloServer } from '@apollo/server';
import { startServerAndCreateCloudflareWorkersHandler } from '@as-integrations/cloudflare-workers';
import { ApolloServerPluginLandingPageLocalDefault } from '@apollo/server/plugin/landingPage/default';

const typeDefs = `#graphql
  type Query {
    example: String!
  }
`;

const resolvers = {
  Query: {
    example: () => {
      return 'Hello universe!';
    },
  }
}

interface Context {
  token: string
}

const server = new ApolloServer<Context>({
  typeDefs,
  resolvers,
  introspection: true,
  plugins: [
    ApolloServerPluginLandingPageLocalDefault({ footer: false }),
  ],
});

export interface Env {
  // ...
}

export default {
  fetch: startServerAndCreateCloudflareWorkersHandler<Env, Context>(server, {
    context: async ({ env, request, ctx }) => {
      return { token: 'secret' };
    },
  }),
};

Package Sidebar

Install

npm i @as-integrations/cloudflare-workers

Weekly Downloads

254

Version

1.0.2

License

MIT

Unpacked Size

15.2 kB

Total Files

11

Last publish

Collaborators

  • kimyvgy