@gftdcojp/gftd-orm
Version:
Enterprise-grade real-time data platform with ksqlDB, inspired by Supabase architecture
117 lines • 3.71 kB
TypeScript
/**
* TypeScript型生成機能 - ksqlDBスキーマから自動型定義生成
*
* 完全実装済み機能:
* - TypeScript型定義の自動生成 ✅
* - マッパー関数の自動生成 ✅
* - カラムメタデータの生成 ✅
* - 配列/マップ型対応 ✅
* - インターフェース名の自動生成 ✅
* - 複数テーブル一括生成 ✅
*/
/**
* テーブル/ストリーム情報を取得する型
*/
export interface TableInfo {
name: string;
type: 'TABLE' | 'STREAM';
topic: string;
keyFormat: string;
valueFormat: string;
isWindowed: boolean;
}
/**
* カラム情報を表す型
*/
export interface ColumnInfo {
name: string;
type: string;
nullable: boolean;
key: boolean;
}
/**
* スキーマ情報を表す型
*/
export interface SchemaInfo {
tableName: string;
columns: ColumnInfo[];
tableInfo: TableInfo;
}
/**
* 生成されるTypeScript型の情報
*/
export interface GeneratedTypeInfo {
interfaceName: string;
interfaceCode: string;
mapperFunctionName: string;
mapperCode: string;
columnMetadata: string;
fullCode: string;
}
/**
* 全テーブル/ストリーム一覧を取得
* @returns テーブル・ストリーム情報の配列
*/
export declare function listAllTables(): Promise<TableInfo[]>;
/**
* テーブル/ストリームのスキーマ情報を取得
* @param tableName - テーブル/ストリーム名
* @returns スキーマ情報
*/
export declare function getTableSchema(tableName: string): Promise<SchemaInfo>;
/**
* ksqlDB型をTypeScript型に変換
* @param ksqlType - ksqlDBのデータ型
* @param nullable - null許可フラグ
* @returns TypeScript型文字列
*/
export declare function convertKsqlTypeToTypeScript(ksqlType: string, nullable?: boolean): string;
/**
* TypeScript インターフェースを生成
* @param schema - スキーマ情報
* @returns 生成されたインターフェースコード
*/
export declare function generateTypeScriptInterface(schema: SchemaInfo): string;
/**
* マッパー関数を生成
* @param schema - スキーマ情報
* @returns 生成されたマッパー関数コード
*/
export declare function generateMapperFunction(schema: SchemaInfo): string;
/**
* カラムメタデータを生成
* @param schema - スキーマ情報
* @returns 生成されたメタデータコード
*/
export declare function generateColumnMetadata(schema: SchemaInfo): string;
/**
* 完全なTypeScript型定義ファイルを生成
* @param schema - スキーマ情報
* @returns 生成された完全な型定義情報
*/
export declare function generateCompleteTypeDefinition(schema: SchemaInfo): GeneratedTypeInfo;
/**
* テーブル名からインターフェース名を生成
* @param tableName - テーブル名
* @returns インターフェース名
*/
export declare function generateInterfaceName(tableName: string): string;
/**
* テーブル名からマッパー関数名を生成
* @param tableName - テーブル名
* @returns マッパー関数名
*/
export declare function generateMapperFunctionName(tableName: string): string;
/**
* テーブル名からカラム定数名を生成
* @param tableName - テーブル名
* @returns カラム定数名
*/
export declare function generateColumnConstantName(tableName: string): string;
/**
* 複数テーブルの型定義を一括生成
* @param tableNames - テーブル名の配列(省略時は全テーブル)
* @returns 生成された型定義情報の配列
*/
export declare function generateTypesForTables(tableNames?: string[]): Promise<GeneratedTypeInfo[]>;
//# sourceMappingURL=type-generator.d.ts.map