@gftdcojp/ksqldb-orm
Version:
ksqldb-orm - Server-Side TypeScript ORM for ksqlDB with enterprise security extensions
146 lines • 5.86 kB
TypeScript
/**
* ksqlDB コネクション - REST API 経由でクエリを実行、DDL/DML を発行
*/
import { KsqlDbConfig, EnhancedPullQueryOptions } from './types';
import { ColumnNameTransformConfig } from './utils/column-name-transform';
/**
* ksqlDB クライアントを初期化
*/
export declare function initializeKsqlDbClient(ksqlConfig: KsqlDbConfig): void;
/**
* 配列レスポンスをオブジェクトに変換する関数(強化版)
* @param rows - データ行の配列
* @param columnNames - カラム名の配列
* @param transformConfig - 列名変換設定(オプション、指定されない場合はグローバル設定を使用)
* @returns オブジェクトの配列
*/
export declare function transformArrayRowsToObjects(rows: any[][], columnNames: string[], transformConfig?: ColumnNameTransformConfig): Record<string, any>[];
/**
* オプション型 - Pull Queryの結果形式を指定
*/
export interface PullQueryOptions {
/** レスポンス形式: 'object' (デフォルト) | 'array' */
format?: 'object' | 'array';
/** テーブル名の正規化を行うかどうか */
normalizeTableName?: boolean;
}
/**
* DDL/DML文を実行(CREATE, INSERT, UPDATE, DELETE, DROP など)
* /ksql エンドポイントを使用
*/
export declare function executeQuery(sql: string): Promise<any>;
/**
* Pull Query を実行(一度だけ結果を取得するSELECT文)
* /query-stream エンドポイントを使用
* @param sql - 実行するSQL文
* @param options - Pull Queryのオプション
*/
export declare function executePullQuery(sql: string, options?: PullQueryOptions): Promise<any>;
/**
* Push Query を実行(継続的にデータを受信するSELECT文)
* /query-stream エンドポイントでストリーミング
*/
export declare function executePushQuery(sql: string, onData: (data: any) => void, onError?: (error: Error) => void, onComplete?: () => void): Promise<{
terminate: () => void;
}>;
/**
* 汎用クエリ実行(自動でエンドポイントを選択)
*/
export declare function executeAnyQuery(sql: string): Promise<any>;
/**
* DDL文を実行(CREATE STREAM/TABLE など)
* 自動的にretention.ms=-1(infinity)を追加する機能付き
*/
export declare function executeDDL(ddl: string): Promise<any>;
/**
* DDL実行のオプション設定
*/
export interface DDLExecutionOptions {
/** retention.ms=-1の自動追加を無効にする(デフォルト: false) */
disableAutoInfinityRetention?: boolean;
/** カスタムretention設定(ミリ秒、-1でinfinity) */
customRetentionMs?: number;
/** その他のWITH句設定を自動追加 */
additionalWithSettings?: Record<string, string>;
}
/**
* オプション付きDDL文実行
* @param ddl - 実行するDDL文
* @param options - 実行オプション
*/
export declare function executeDDLWithOptions(ddl: string, options?: DDLExecutionOptions): Promise<any>;
/**
* ストリーム作成ヘルパー - infinite retention設定済み
*/
export declare function createStreamWithInfinityRetention(streamName: string, fields: Record<string, string>, options?: {
topic?: string;
valueFormat?: 'JSON' | 'AVRO' | 'DELIMITED';
keyField?: string;
partitions?: number;
replicas?: number;
additionalSettings?: Record<string, string>;
}): Promise<any>;
/**
* テーブル作成ヘルパー - infinite retention設定済み
*/
export declare function createTableWithInfinityRetention(tableName: string, sourceStream: string, selectClause?: string, groupByClause?: string, options?: {
additionalSettings?: Record<string, string>;
}): Promise<any>;
/**
* ストリーム/テーブル一覧を取得
*/
export declare function listStreams(): Promise<any>;
export declare function listTables(): Promise<any>;
/**
* トピック一覧を取得
*/
export declare function listTopics(): Promise<any>;
/**
* スキーマ情報を取得
*/
export declare function describeStream(streamName: string): Promise<any>;
export declare function describeTable(tableName: string): Promise<any>;
/**
* クライアント設定を取得
*/
export declare function getClientConfig(): KsqlDbConfig | null;
/**
* 接続状態を確認
*/
export declare function isConnected(): boolean;
/**
* クライアントを閉じる
*/
export declare function closeClient(): void;
/**
* Enhanced Pull Query実行(リジリエンス機能対応)
*
* 下位互換性を保ちながら、拡張オプションをサポート
* 通常のexecutePullQueryと同じ動作だが、将来的にリジリエンス機能を統合
*
* @param sql - 実行するSQL文
* @param options - 拡張されたPull Queryオプション
*/
export declare function executePullQueryEnhanced(sql: string, options?: EnhancedPullQueryOptions): Promise<any>;
export declare const KsqlDbClient: {
initialize: typeof initializeKsqlDbClient;
executeQuery: typeof executeQuery;
executePullQuery: typeof executePullQuery;
executePushQuery: typeof executePushQuery;
executeDDL: typeof executeDDL;
executeDDLWithOptions: typeof executeDDLWithOptions;
createStreamWithInfinityRetention: typeof createStreamWithInfinityRetention;
createTableWithInfinityRetention: typeof createTableWithInfinityRetention;
listStreams: typeof listStreams;
listTables: typeof listTables;
listTopics: typeof listTopics;
describeStream: typeof describeStream;
describeTable: typeof describeTable;
isConnected: typeof isConnected;
getConfig: typeof getClientConfig;
close: typeof closeClient;
executeAnyQuery: typeof executeAnyQuery;
executePullQueryEnhanced: typeof executePullQueryEnhanced;
transformArrayRowsToObjects: typeof transformArrayRowsToObjects;
};
//# sourceMappingURL=ksqldb-client.d.ts.map