@gftdcojp/gftd-orm
Version:
Enterprise-grade real-time data platform with ksqlDB, inspired by Supabase architecture
133 lines • 3.63 kB
TypeScript
/**
* Next.js環境のブラウザ専用クライアント
* Client ComponentsやPages Routerのクライアントサイドで使用
*/
declare class DatabaseClient {
constructor(config: any);
initialize(): Promise<void>;
from<T = any>(table: string): {
select: () => {
eq: () => {
execute: () => Promise<{
data: never[];
error: null;
}>;
};
};
insert: (data: any) => Promise<{
data: never[];
error: null;
}>;
update: (data: any) => Promise<{
data: never[];
error: null;
}>;
delete: () => Promise<{
data: never[];
error: null;
}>;
execute: () => Promise<{
data: never[];
error: null;
}>;
};
sql(query: string, params?: any[]): Promise<{
data: never[];
queryId: string;
}>;
health(): Promise<{
status: string;
}>;
}
import { RealtimeClient } from '../realtime-client';
import { BrowserClientConfig, BaseClient, ClientHealth, QueryResult, StreamController } from './types';
/**
* ブラウザ専用のGFTD-ORMクライアント
*/
export declare class BrowserClient implements BaseClient {
private config;
private _database;
private _realtime;
private initialized;
private _isConnected;
constructor(config: BrowserClientConfig);
/**
* ブラウザ環境の検証
*/
private validateBrowserEnvironment;
/**
* データベースクライアントを取得
*/
get database(): DatabaseClient;
/**
* リアルタイムクライアントを取得
*/
get realtime(): RealtimeClient;
/**
* クライアントを初期化
*/
initialize(): Promise<void>;
/**
* Supabaseライクなテーブルアクセス
*/
from<T = any>(table: string): {
select: () => {
eq: () => {
execute: () => Promise<{
data: never[];
error: null;
}>;
};
};
insert: (data: any) => Promise<{
data: never[];
error: null;
}>;
update: (data: any) => Promise<{
data: never[];
error: null;
}>;
delete: () => Promise<{
data: never[];
error: null;
}>;
execute: () => Promise<{
data: never[];
error: null;
}>;
};
/**
* SQL クエリを実行
*/
query<T = any>(sql: string, params?: any[]): Promise<QueryResult<T>>;
/**
* ストリーミングクエリを実行
*/
stream<T = any>(sql: string, onData: (data: T) => void, onError?: (error: Error) => void): Promise<StreamController>;
/**
* リアルタイムチャンネル
*/
channel(name: string): import("../realtime-client").RealtimeChannel;
/**
* ヘルスチェック
*/
health(): Promise<ClientHealth>;
/**
* 接続状態を確認
*/
isConnected(): boolean;
/**
* すべての接続を閉じる
*/
disconnect(): Promise<void>;
}
/**
* ブラウザ専用クライアント作成関数
*/
export declare function createBrowserClient(config: BrowserClientConfig): BrowserClient;
/**
* Next.js Client Components用のクライアント作成関数
*/
export declare function createNextBrowserClient(config: BrowserClientConfig): BrowserClient;
export {};
//# sourceMappingURL=browser.d.ts.map