UNPKG

@gftdcojp/gftd-orm

Version:

Enterprise-grade real-time data platform with ksqlDB, inspired by Supabase architecture

136 lines 3.2 kB
/** * Next.js環境のクライアント用共通型定義 */ /** * 基本的なクライアント設定 */ export interface BaseClientConfig { url: string; key?: string; database: { ksql: { url: string; headers?: Record<string, string>; }; schemaRegistry: { url: string; }; }; realtime?: { url: string; autoReconnect?: boolean; reconnectInterval?: number; maxReconnectAttempts?: number; }; global?: { headers?: Record<string, string>; schema?: string; }; } /** * ブラウザクライアント設定(公開可能な設定のみ) */ export interface BrowserClientConfig extends BaseClientConfig { database: { ksql: { url: string; apiKey?: string; headers?: Record<string, string>; }; schemaRegistry: { url: string; apiKey?: string; }; }; realtime?: { url: string; apiKey?: string; autoReconnect?: boolean; reconnectInterval?: number; maxReconnectAttempts?: number; }; } /** * サーバークライアント設定(プライベート設定も含む) */ export interface ServerClientConfig extends BaseClientConfig { database: { ksql: { url: string; apiKey?: string; apiSecret?: string; headers?: Record<string, string>; }; schemaRegistry: { url: string; apiKey?: string; authUser?: string; authPassword?: string; }; }; realtime?: { url: string; apiKey?: string; apiSecret?: string; autoReconnect?: boolean; reconnectInterval?: number; maxReconnectAttempts?: number; }; } /** * クライアントの健康状態 */ export interface ClientHealth { status: 'ok' | 'error' | 'degraded'; version: string; features: string[]; connections: { ksqldb: 'connected' | 'disconnected' | 'error'; schemaRegistry: 'connected' | 'disconnected' | 'error'; realtime: 'connected' | 'disconnected' | 'error'; }; environment: 'browser' | 'server'; } /** * クライアントの基本インターフェース */ export interface BaseClient { initialize(): Promise<void>; health(): Promise<ClientHealth>; disconnect(): Promise<void>; isConnected(): boolean; } /** * クエリ実行結果 */ export interface QueryResult<T = any> { data: T[]; error: Error | null; metadata?: { rowCount: number; executionTime: number; queryId?: string; }; } /** * ストリーミングクエリの制御 */ export interface StreamController { terminate: () => void; pause: () => void; resume: () => void; isActive: () => boolean; } /** * 環境判定結果 */ export interface EnvironmentInfo { isBrowser: boolean; isNode: boolean; isNextJS: boolean; isServerSide: boolean; isClientSide: boolean; isDevelopment: boolean; isProduction: boolean; } //# sourceMappingURL=types.d.ts.map