@0xobelisk/graphql-server
Version:
Tookit for interacting with dubhe graphql server
80 lines • 2.56 kB
TypeScript
export interface SubscriptionCapabilities {
liveQueries: boolean;
pgSubscriptions: boolean;
nativeWebSocket: boolean;
}
export interface SubscriptionConfig {
enableSubscriptions: boolean;
capabilities: SubscriptionCapabilities;
walLevel: 'minimal' | 'replica' | 'logical';
graphqlPort: number;
websocketPort?: number;
maxConnections: number;
heartbeatInterval: number;
enableNotificationLogging: boolean;
enablePerformanceMetrics: boolean;
}
export interface SubscriptionConfigInput {
enableSubscriptions: boolean;
databaseUrl: string;
port: string;
enableLiveQueries?: boolean;
enablePgSubscriptions?: boolean;
enableNativeWebSocket?: boolean;
realtimePort?: string;
maxConnections?: string;
heartbeatInterval?: string;
debugNotifications?: boolean;
enableMetrics?: boolean;
}
export declare class SubscriptionConfigManager {
private config;
constructor(configInput: SubscriptionConfigInput);
private parseConfigInput;
private detectWalLevel;
getConfig(): SubscriptionConfig;
getRecommendedSubscriptionMethod(): string;
generateClientConfig(): {
graphqlEndpoint: string;
subscriptionEndpoint: string | undefined;
nativeWebSocketEndpoint: string | undefined;
capabilities: SubscriptionCapabilities;
recommendedMethod: string;
};
generatePostGraphileConfig(): {
subscriptions: boolean;
live: boolean;
simpleSubscriptions: boolean;
pgSettings: {
statement_timeout: string;
default_transaction_isolation: string;
};
allowExplain: boolean;
disableQueryLog: boolean;
};
generateDocumentation(): string;
}
export declare const subscriptionConfig: {
getConfig(): SubscriptionConfig;
generateClientConfig(): {
graphqlEndpoint: string;
subscriptionEndpoint: string | undefined;
nativeWebSocketEndpoint: string | undefined;
capabilities: SubscriptionCapabilities;
recommendedMethod: string;
};
generatePostGraphileConfig(): {
subscriptions: boolean;
live: boolean;
simpleSubscriptions: boolean;
pgSettings: {
statement_timeout: string;
default_transaction_isolation: string;
};
allowExplain: boolean;
disableQueryLog: boolean;
};
generateDocumentation(): string;
refresh(configInput: SubscriptionConfigInput): void;
};
//# sourceMappingURL=subscription-config.d.ts.map