@yeskiy/federation-with-subscriptions
Version:
Apollo Federation with subscriptions support
27 lines (26 loc) • 1.41 kB
TypeScript
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;
}>;
};
}>;