UNPKG

@gftdcojp/gftd-orm

Version:

Enterprise-grade real-time data platform with ksqlDB, inspired by Supabase architecture

117 lines 3.71 kB
/** * 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