UNPKG

@junkawasaki/kawadb-orm

Version:

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

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