UNPKG

@gftdcojp/ksqldb-orm

Version:

ksqldb-orm - Server-Side TypeScript ORM for ksqlDB with enterprise security extensions

109 lines 4.09 kB
/** * 列名変換ユーティリティ * * KsqlDBの列名が強制的に大文字になることに対応するため、 * TypeScript側のキャメルケースやスネークケースの列名を * 適切に変換するユーティリティ関数 */ export type ColumnNameTransformStrategy = 'uppercase' | 'lowercase' | 'camelCase' | 'snake_case' | 'none'; /** * カスタム列名変換関数の型定義 */ export type ColumnNameTransformFunction = (columnName: string) => string; /** * 列名変換設定 */ export interface ColumnNameTransformConfig { /** 事前定義された変換戦略 */ strategy?: ColumnNameTransformStrategy; /** カスタム変換関数 */ customTransform?: ColumnNameTransformFunction; /** 特定の列名のマッピング辞書 */ columnMappings?: Record<string, string>; /** バックワード互換性のために既存の大文字列名を保持するか */ preserveExistingUppercase?: boolean; } /** * 文字列をキャメルケースに変換 * 例: user_id → userId, USER_NAME → userName, USERID → userId */ export declare function toCamelCase(str: string): string; /** * 文字列をスネークケースに変換 * 例: userId → user_id, UserName → user_name */ export declare function toSnakeCase(str: string): string; /** * 文字列を大文字に変換 * 例: userId → USERID, user_id → USER_ID */ export declare function toUpperCase(str: string): string; /** * 文字列を小文字に変換 * 例: USERID → userid, USER_ID → user_id */ export declare function toLowerCase(str: string): string; /** * KsqlDB用列名変換(クエリ送信時) * TypeScriptコードで使用する列名をKsqlDBで使用する列名に変換 */ export declare function transformColumnNameForKsqlDb(columnName: string, config?: ColumnNameTransformConfig): string; /** * KsqlDBからのレスポンス列名変換(レスポンス受信時) * KsqlDBから受け取った列名をTypeScriptで使いやすい形式に変換 */ export declare function transformColumnNameFromKsqlDb(columnName: string, config?: ColumnNameTransformConfig): string; /** * 複数の列名を一括変換(KsqlDB送信用) */ export declare function transformColumnNamesForKsqlDb(columnNames: string[], config?: ColumnNameTransformConfig): string[]; /** * 複数の列名を一括変換(KsqlDBレスポンス用) */ export declare function transformColumnNamesFromKsqlDb(columnNames: string[], config?: ColumnNameTransformConfig): string[]; /** * オブジェクトのキーを変換(KsqlDB送信用) */ export declare function transformObjectKeysForKsqlDb<T extends Record<string, any>>(obj: T, config?: ColumnNameTransformConfig): Record<string, any>; /** * オブジェクトのキーを変換(KsqlDBレスポンス用) */ export declare function transformObjectKeysFromKsqlDb<T extends Record<string, any>>(obj: T, config?: ColumnNameTransformConfig): Record<string, any>; /** * 一般的な列名マッピングパターン */ export declare const COMMON_COLUMN_MAPPINGS: { /** TypeScript camelCase → KsqlDB UPPERCASE マッピング */ CAMEL_TO_UPPER: { userId: string; userName: string; userEmail: string; accountId: string; createdAt: string; updatedAt: string; isActive: string; firstName: string; lastName: string; phoneNumber: string; emailAddress: string; }; /** snake_case → KsqlDB UPPERCASE マッピング */ SNAKE_TO_UPPER: { user_id: string; user_name: string; user_email: string; account_id: string; created_at: string; updated_at: string; is_active: string; first_name: string; last_name: string; phone_number: string; email_address: string; }; }; /** * 事前定義された設定パターン */ export declare const PRESET_COLUMN_TRANSFORM_CONFIGS: Record<string, ColumnNameTransformConfig>; //# sourceMappingURL=column-name-transform.d.ts.map