MySqlRemoteSession Class — drizzle-orm Architecture
Architecture documentation for the MySqlRemoteSession class in session.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 9b87d13f_b108_a6bb_f37d_c1cb86125580["MySqlRemoteSession"] 06097e19_bcad_7d24_ee80_bf451d27455d["session.ts"] 9b87d13f_b108_a6bb_f37d_c1cb86125580 -->|defined in| 06097e19_bcad_7d24_ee80_bf451d27455d b7304cb8_b321_4303_73a9_79485d79acfd["constructor()"] 9b87d13f_b108_a6bb_f37d_c1cb86125580 -->|method| b7304cb8_b321_4303_73a9_79485d79acfd 0302252e_7659_85c3_30b2_3f035c1fcd5a["prepareQuery()"] 9b87d13f_b108_a6bb_f37d_c1cb86125580 -->|method| 0302252e_7659_85c3_30b2_3f035c1fcd5a 4f1a65a7_aec3_6ce9_4619_4d3331aeb249["all()"] 9b87d13f_b108_a6bb_f37d_c1cb86125580 -->|method| 4f1a65a7_aec3_6ce9_4619_4d3331aeb249 bcfa2cc6_6708_998e_7e6b_51f418547da4["transaction()"] 9b87d13f_b108_a6bb_f37d_c1cb86125580 -->|method| bcfa2cc6_6708_998e_7e6b_51f418547da4
Relationship Graph
Source Code
drizzle-orm/src/mysql-proxy/session.ts lines 32–91
export class MySqlRemoteSession<
TFullSchema extends Record<string, unknown>,
TSchema extends TablesRelationalConfig,
> extends MySqlSession<MySqlRemoteQueryResultHKT, MySqlRemotePreparedQueryHKT, TFullSchema, TSchema> {
static override readonly [entityKind]: string = 'MySqlRemoteSession';
private logger: Logger;
private cache: Cache;
constructor(
private client: RemoteCallback,
dialect: MySqlDialect,
private schema: RelationalSchemaConfig<TSchema> | undefined,
options: MySqlRemoteSessionOptions,
) {
super(dialect);
this.logger = options.logger ?? new NoopLogger();
this.cache = options.cache ?? new NoopCache();
}
prepareQuery<T extends MySqlPreparedQueryConfig>(
query: Query,
fields: SelectedFieldsOrdered | undefined,
customResultMapper?: (rows: unknown[][]) => T['execute'],
generatedIds?: Record<string, unknown>[],
returningIds?: SelectedFieldsOrdered,
queryMetadata?: {
type: 'select' | 'update' | 'delete' | 'insert';
tables: string[];
},
cacheConfig?: WithCacheConfig,
): PreparedQueryKind<MySqlRemotePreparedQueryHKT, T> {
return new PreparedQuery(
this.client,
query.sql,
query.params,
this.logger,
this.cache,
queryMetadata,
cacheConfig,
fields,
customResultMapper,
generatedIds,
returningIds,
) as PreparedQueryKind<MySqlRemotePreparedQueryHKT, T>;
}
override all<T = unknown>(query: SQL): Promise<T[]> {
const querySql = this.dialect.sqlToQuery(query);
this.logger.logQuery(querySql.sql, querySql.params);
return this.client(querySql.sql, querySql.params, 'all').then(({ rows }) => rows) as Promise<T[]>;
}
override async transaction<T>(
_transaction: (tx: MySqlProxyTransaction<TFullSchema, TSchema>) => Promise<T>,
_config?: MySqlTransactionConfig,
): Promise<T> {
throw new Error('Transactions are not supported by the MySql Proxy driver');
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the MySqlRemoteSession class?
MySqlRemoteSession is a class in the drizzle-orm codebase, defined in drizzle-orm/src/mysql-proxy/session.ts.
Where is MySqlRemoteSession defined?
MySqlRemoteSession is defined in drizzle-orm/src/mysql-proxy/session.ts at line 32.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free