@aradox/multi-orm
Version:
Type-safe ORM with multi-datasource support, row-level security, and Prisma-like API for PostgreSQL, SQL Server, and HTTP APIs
51 lines • 2.13 kB
TypeScript
import { Adapter, AdapterCapabilities, FindManyAdapterArgs, FindUniqueAdapterArgs, CreateAdapterArgs, UpdateAdapterArgs, DeleteAdapterArgs, CountAdapterArgs } from '../types/adapter';
import { Model } from '../types/ir';
export interface PostgresPoolConfig {
connectionString: string;
max?: number;
min?: number;
idleTimeoutMillis?: number;
connectionTimeoutMillis?: number;
}
export declare class PostgresAdapter implements Adapter {
private pool;
private modelMeta;
capabilities: AdapterCapabilities;
/**
* Set model metadata for @map attribute support
* Called by the runtime after IR is loaded
*/
setModelMetadata(models: Record<string, Model>): void;
constructor(connectionString: string | PostgresPoolConfig);
findMany(model: string, args: FindManyAdapterArgs): Promise<any[]>;
findUnique(model: string, args: FindUniqueAdapterArgs): Promise<any | null>;
create(model: string, args: CreateAdapterArgs): Promise<any>;
update(model: string, args: UpdateAdapterArgs): Promise<any>;
delete(model: string, args: DeleteAdapterArgs): Promise<any>;
count(model: string, args: CountAdapterArgs): Promise<number>;
private buildSelectQuery;
private buildWhereClause;
private buildOperatorCondition;
private buildInsertQuery;
private buildUpdateQuery;
private buildDeleteQuery;
private buildCountQuery;
/**
* Convert field name to column name, using @map if available
* @param field - The field name from the schema
* @param modelName - The model name (optional, for @map lookup)
* @returns The database column name
*/
private toColumnName;
private toSnakeCase;
beginTransaction(options?: import('../types/adapter').TransactionOptions): Promise<import('../types/adapter').Transaction>;
close(): Promise<void>;
/**
* Execute a raw SQL query
* @param sql - The SQL query string
* @param params - Optional query parameters
* @returns Query result rows
*/
query(sql: string, params?: any[]): Promise<any>;
}
//# sourceMappingURL=postgres.d.ts.map