@gftdcojp/gftd-orm
Version:
Enterprise-grade real-time data platform with ksqlDB, inspired by Supabase architecture
141 lines • 3.95 kB
TypeScript
/**
* Next.js環境のサーバー専用クライアント
* Server ComponentsやAPI Routes、middleware等で使用
*/
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 { ServerClientConfig, BaseClient, ClientHealth, QueryResult, StreamController } from './types';
/**
* サーバー専用のGFTD-ORMクライアント
*/
export declare class ServerClient implements BaseClient {
private config;
private _database;
private _realtime;
private initialized;
private _isConnected;
constructor(config: ServerClientConfig);
/**
* サーバー環境の検証
*/
private validateServerEnvironment;
/**
* データベースクライアントを取得
*/
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>;
/**
* 環境変数から設定を自動読み込み
*/
static fromEnvironment(): ServerClient;
}
/**
* サーバー専用クライアント作成関数
*/
export declare function createServerClient(config: ServerClientConfig): ServerClient;
/**
* Next.js Server Components用のクライアント作成関数
*/
export declare function createNextServerClient(config: ServerClientConfig): ServerClient;
/**
* 環境変数から自動的にサーバークライアントを作成
*/
export declare function createServerClientFromEnv(): ServerClient;
export {};
//# sourceMappingURL=server.d.ts.map