UNPKG

@varia-bly/variably-sdk

Version:

Official JavaScript/TypeScript SDK for Variably feature flags, experimentation, and real-time dynamic configurations

68 lines 1.89 kB
/** * GraphQL client for Variably API */ import { VariablyConfig, UserContext, Event, FlagEvaluationResponse, GateEvaluationResponse, BatchFlagEvaluationResponse } from './types'; import { Logger } from './logger'; import { MetricsCollector } from './metrics'; export declare class GraphQLClient { private baseUrl; private apiKey; private timeout; private retryAttempts; private logger; private metrics; constructor(config: Required<VariablyConfig>, logger: Logger, metrics: MetricsCollector); /** * Evaluate a single feature flag */ evaluateFlag(flagKey: string, context: UserContext): Promise<FlagEvaluationResponse>; /** * Evaluate multiple feature flags in batch */ evaluateFlags(flagKeys: string[], context: UserContext): Promise<BatchFlagEvaluationResponse>; /** * Evaluate a feature gate */ evaluateGate(gateKey: string, context: UserContext): Promise<GateEvaluationResponse>; /** * Track a single event */ trackEvent(event: Event): Promise<void>; /** * Track multiple events in batch */ trackEvents(events: Event[]): Promise<void>; /** * Execute a GraphQL query */ private executeQuery; /** * Execute a GraphQL mutation */ private executeMutation; /** * Execute a GraphQL request with retry logic */ private executeGraphQL; /** * Execute the actual HTTP request */ private makeRequest; /** * Handle HTTP error responses */ private handleHttpError; /** * Determine if an error should trigger a retry */ private shouldRetry; /** * Convert SDK UserContext to GraphQL input format */ private convertUserContext; /** * Sleep for a given number of milliseconds */ private sleep; } //# sourceMappingURL=graphql-client.d.ts.map