UNPKG

@yeskiy/federation-with-subscriptions

Version:
27 lines (26 loc) 1.41 kB
import { IResolvers } from "@graphql-tools/utils"; import { PluginDefinition } from "apollo-server-core"; import { ExpressContext } from "apollo-server-express"; import { ExecutionArgs } from "graphql"; import { Context, SubscribeMessage } from "graphql-ws"; import http from "http"; import { WebSocketServer } from "ws"; export declare type CreateExpressMicroserviceParams<TContext = {}> = { typeDefs: string | ((context: TContext) => Promise<string> | string); resolvers: IResolvers<any, TContext> | ((context: TContext) => Promise<IResolvers<any, TContext>> | IResolvers<any, TContext>); host: string; context?: (expressContext: ExpressContext) => TContext; subscriptionContext?: (ctx: Context, message: SubscribeMessage, args: ExecutionArgs, headers: Record<string, string>) => Record<string, any>; plugins?: PluginDefinition[]; }; export declare const createExpressMicroservice: ({ typeDefs, resolvers, context, subscriptionContext, host, plugins, ...rest }: CreateExpressMicroserviceParams) => Promise<{ schema: import("graphql").GraphQLSchema; start: () => Promise<void>; applyMiddleware: ({ app, path, ...restData }: import("apollo-server-express").ServerRegistration) => { listen: (port: number) => Promise<{ url: string; server: http.Server; wsServer: WebSocketServer; }>; }; }>;