@matters/apollo-response-cache
Version:
Caching and invalidation mechanisms (plugins, directives) of Apollo GraphQL
13 lines (12 loc) • 896 B
TypeScript
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>;