@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
TypeScript
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