UNPKG

@matters/apollo-response-cache

Version:

Caching and invalidation mechanisms (plugins, directives) of Apollo GraphQL

13 lines (12 loc) 896 B
import type { Redis } from 'ioredis'; import { type ApolloServerPlugin, type BaseContext, type GraphQLRequestContext } from '@apollo/server'; export interface ApolloServerPluginResponseCacheOptions<TContext extends BaseContext> { redis: Redis; sessionId?(requestContext: GraphQLRequestContext<TContext>): Promise<string | null>; extraCacheKeyData?(requestContext: GraphQLRequestContext<TContext>): Promise<any>; shouldReadFromCache?(requestContext: GraphQLRequestContext<TContext>): Promise<boolean>; shouldWriteToCache?(requestContext: GraphQLRequestContext<TContext>): Promise<boolean>; generateCacheKey?(requestContext: GraphQLRequestContext<Record<string, any>>, keyData: unknown): string; nodeFQCTTL: number; } export default function plugin<TContext extends BaseContext>(options?: ApolloServerPluginResponseCacheOptions<TContext>): ApolloServerPlugin<TContext>;