@junkawasaki/kawadb-orm
Version:
TypeScript ORM for KawaDB with KSQL support - works in Web and Electron environments
73 lines (72 loc) • 1.89 kB
TypeScript
/**
* KawaORM - メインORM クラス
*
* KawaDB-WASMとのインターフェースを提供し、
* 高レベルなORM機能とKSQL機能を統合します。
*/
import { EventEmitter } from 'eventemitter3';
import { Entity } from './core/Entity';
import { Repository } from './core/Repository';
import { KsqlEngine } from './ksql/KsqlEngine';
import { DatabaseConfig, ConnectionOptions } from './types/DatabaseTypes';
import { EntityConstructor } from './types/EntityTypes';
/**
* KawaORM メインクラス
*/
export declare class KawaORM extends EventEmitter {
private connection;
private repositories;
private ksqlEngine;
private wasmLoader;
private logger;
private config;
constructor(config?: DatabaseConfig);
/**
* データベースに接続
*/
connect(options?: ConnectionOptions): Promise<void>;
/**
* データベースから切断
*/
disconnect(): Promise<void>;
/**
* エンティティのリポジトリを取得
*/
getRepository<T extends Entity>(entityConstructor: EntityConstructor<T>): Repository<T>;
/**
* KSQLエンジンを取得
*/
getKsqlEngine(): KsqlEngine;
/**
* 生のSQLクエリを実行
*/
query(sql: string, params?: any[]): Promise<any>;
/**
* トランザクションを開始
*/
transaction<T>(callback: (orm: KawaORM) => Promise<T>): Promise<T>;
/**
* 接続状態を取得
*/
isConnected(): boolean;
/**
* 現在の環境情報を取得
*/
getEnvironmentInfo(): any;
/**
* 統計情報を取得
*/
getStats(): Promise<any>;
/**
* データベースを最適化
*/
optimize(): Promise<void>;
/**
* データを同期
*/
sync(): Promise<void>;
/**
* 全データをクリア
*/
clearAll(): Promise<void>;
}