Client Configuration

The PushClient constructor accepts a configuration object to customize behavior.

Full Configuration Type

typescript
interface PushClientConfig {
    provider: ProviderType;

    // Provider specific
    fcm?: FCMConfig;
    expo?: ExpoConfig;

    // Advanced features
    queue?: QueueConfig;
    rateLimit?: RateLimitConfig;
    retry?: RetryConfig;
    hooks?: AnalyticsHooks;

    // Utils
    logLevel?: LogLevel;
    defaultBatchSize?: number;
}

Feature Configs

Queue

typescript
interface QueueConfig {
    concurrency?: number; // Default: 5
    maxSize?: number;     // Default: 0 (unlimited)
    enabled?: boolean;    // Default: true
}

Rate Limit

typescript
interface RateLimitConfig {
    maxPerSecond?: number; // Default: 100
    enabled?: boolean;     // Default: true
}

Retry

typescript
interface RetryConfig {
    maxAttempts?: number;       // Default: 3
    initialDelayMs?: number;    // Default: 1000
    maxDelayMs?: number;        // Default: 30000
    backoffMultiplier?: number; // Default: 2
    enabled?: boolean;          // Default: true
}