@junkawasaki/kawadb-orm
Version:
TypeScript ORM for KawaDB with KSQL support - works in Web and Electron environments
84 lines (83 loc) • 2.64 kB
TypeScript
/**
* 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;
}