UNPKG

@junkawasaki/kawadb-orm

Version:

TypeScript ORM for KawaDB with KSQL support - works in Web and Electron environments

73 lines (72 loc) 1.89 kB
/** * 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>; }