UNPKG

@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

78 lines 2.96 kB
import { Adapter, AdapterCapabilities, FindManyAdapterArgs, FindUniqueAdapterArgs, CreateAdapterArgs, UpdateAdapterArgs, DeleteAdapterArgs, CountAdapterArgs } from '../types/adapter'; import { Model } from '../types/ir'; export interface MSSQLNativeConfig { server: string; database: string; user?: string; password?: string; domain?: string; options?: { trustedConnection?: boolean; trustServerCertificate?: boolean; encrypt?: boolean; port?: number; pool?: { max?: number; min?: number; connectionTimeout?: number; idleTimeout?: number; }; }; } export declare class MSSQLNativeAdapter implements Adapter { private pool; private connectionString; private poolOptions; 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; /** * Coerce ODBC result types to match schema field types * ODBC returns bit fields as "0"/"1" strings instead of booleans */ private coerceResultTypes; constructor(config: MSSQLNativeConfig); private ensureConnected; 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 toTableName; /** * 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 toPascalCase; /** * Sanitize value for ODBC binding * ODBC has issues with undefined and certain null representations */ private sanitizeODBCValue; /** * Convert named parameters (@param) to ODBC ? placeholders * ODBC uses positional parameters (?) instead of named parameters */ private convertToODBCQuery; 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 (use ? for parameters, or @p1, @p2 which will be converted) * @param params - Optional query parameters * @returns Query result recordset */ query(sql: string, params?: any[]): Promise<any>; } export { MSSQLNativeAdapter as MSSQLAdapter }; //# sourceMappingURL=mssql.d.ts.map