UNPKG

@junkawasaki/kawadb-orm

Version:

TypeScript ORM for KawaDB with KSQL support - works in Web and Electron environments

76 lines (75 loc) 2.42 kB
/** * KSQL ストリームビルダー */ import { KsqlStream, KsqlColumn, KsqlDataType, KsqlDataFormat, KsqlWindow } from '../types/KsqlTypes'; export declare class StreamBuilder { private stream; /** * ストリーム名を設定 */ name(streamName: string): StreamBuilder; /** * カラムを追加 */ addColumn(name: string, type: KsqlDataType, nullable?: boolean): StreamBuilder; /** * 複数のカラムを追加 */ columns(columns: KsqlColumn[]): StreamBuilder; /** * Kafkaトピックを設定 */ topic(topicName: string): StreamBuilder; /** * データフォーマットを設定 */ format(dataFormat: KsqlDataFormat): StreamBuilder; /** * パーティション設定 */ partitionBy(field: string): StreamBuilder; /** * ウィンドウ設定 */ window(window: KsqlWindow): StreamBuilder; /** * タンブリングウィンドウを設定 */ tumblingWindow(size: number, unit: 'seconds' | 'minutes' | 'hours' | 'days'): StreamBuilder; /** * ホッピングウィンドウを設定 */ hoppingWindow(size: number, advance: number, unit: 'seconds' | 'minutes' | 'hours' | 'days'): StreamBuilder; /** * セッションウィンドウを設定 */ sessionWindow(size: number, unit: 'seconds' | 'minutes' | 'hours' | 'days'): StreamBuilder; /** * ストリーム設定を構築 */ build(): KsqlStream; /** * CREATE STREAM SQLを生成 */ toSQL(): string; /** * ビルダーをリセット */ reset(): StreamBuilder; /** * ビルダーを複製 */ clone(): StreamBuilder; /** * よく使われるカラム型のヘルパーメソッド */ stringColumn(name: string, nullable?: boolean): StreamBuilder; integerColumn(name: string, nullable?: boolean): StreamBuilder; bigintColumn(name: string, nullable?: boolean): StreamBuilder; doubleColumn(name: string, nullable?: boolean): StreamBuilder; booleanColumn(name: string, nullable?: boolean): StreamBuilder; timestampColumn(name: string, nullable?: boolean): StreamBuilder; arrayColumn(name: string, nullable?: boolean): StreamBuilder; mapColumn(name: string, nullable?: boolean): StreamBuilder; structColumn(name: string, nullable?: boolean): StreamBuilder; }