OPSQLitePreparedQuery Class — drizzle-orm Architecture
Architecture documentation for the OPSQLitePreparedQuery class in session.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD b8f03593_165e_f94d_b267_ffbd5533113e["OPSQLitePreparedQuery"] 45f9aea4_1252_eb43_9fc8_0fff93550668["session.ts"] b8f03593_165e_f94d_b267_ffbd5533113e -->|defined in| 45f9aea4_1252_eb43_9fc8_0fff93550668 80906615_b789_7f47_b4af_c84f87be5784["constructor()"] b8f03593_165e_f94d_b267_ffbd5533113e -->|method| 80906615_b789_7f47_b4af_c84f87be5784 7c90acc2_1fbc_04ec_f0b6_a63844636949["run()"] b8f03593_165e_f94d_b267_ffbd5533113e -->|method| 7c90acc2_1fbc_04ec_f0b6_a63844636949 a3a87d53_4c45_66e4_5d26_2bfa60098c96["all()"] b8f03593_165e_f94d_b267_ffbd5533113e -->|method| a3a87d53_4c45_66e4_5d26_2bfa60098c96 30de189a_7e74_acdc_e962_cd6c7f0ef7a5["get()"] b8f03593_165e_f94d_b267_ffbd5533113e -->|method| 30de189a_7e74_acdc_e962_cd6c7f0ef7a5 8dd2a186_7826_1dbb_6999_c72d89dd34f2["values()"] b8f03593_165e_f94d_b267_ffbd5533113e -->|method| 8dd2a186_7826_1dbb_6999_c72d89dd34f2 cdc34b86_d496_bf89_70f7_7f976727d875["isResponseInArrayMode()"] b8f03593_165e_f94d_b267_ffbd5533113e -->|method| cdc34b86_d496_bf89_70f7_7f976727d875
Relationship Graph
Source Code
drizzle-orm/src/op-sqlite/session.ts lines 112–199
export class OPSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<
{ type: 'async'; run: QueryResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }
> {
static override readonly [entityKind]: string = 'OPSQLitePreparedQuery';
constructor(
private client: OPSQLiteConnection,
query: Query,
private logger: Logger,
cache: Cache,
queryMetadata: {
type: 'select' | 'update' | 'delete' | 'insert';
tables: string[];
} | undefined,
cacheConfig: WithCacheConfig | undefined,
private fields: SelectedFieldsOrdered | undefined,
executeMethod: SQLiteExecuteMethod,
private _isResponseInArrayMode: boolean,
private customResultMapper?: (rows: unknown[][]) => unknown,
) {
super('sync', executeMethod, query, cache, queryMetadata, cacheConfig);
}
async run(placeholderValues?: Record<string, unknown>): Promise<QueryResult> {
const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
this.logger.logQuery(this.query.sql, params);
return await this.queryWithCache(this.query.sql, params, async () => {
return this.client.executeAsync(this.query.sql, params);
});
}
async all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {
const { fields, joinsNotNullableMap, query, logger, customResultMapper, client } = this;
if (!fields && !customResultMapper) {
const params = fillPlaceholders(query.params, placeholderValues ?? {});
logger.logQuery(query.sql, params);
return await this.queryWithCache(query.sql, params, async () => {
return client.execute(query.sql, params).rows?._array || [];
});
}
const rows = await this.values(placeholderValues) as unknown[][];
if (customResultMapper) {
return customResultMapper(rows) as T['all'];
}
return rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));
}
async get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {
const { fields, joinsNotNullableMap, customResultMapper, query, logger, client } = this;
const params = fillPlaceholders(query.params, placeholderValues ?? {});
logger.logQuery(query.sql, params);
if (!fields && !customResultMapper) {
const rows = await this.queryWithCache(query.sql, params, async () => {
return client.execute(query.sql, params).rows?._array || [];
});
return rows[0];
}
const rows = await this.values(placeholderValues) as unknown[][];
const row = rows[0];
if (!row) {
return undefined;
}
if (customResultMapper) {
return customResultMapper(rows) as T['get'];
}
return mapResultRow(fields!, row, joinsNotNullableMap);
}
async values(placeholderValues?: Record<string, unknown>): Promise<T['values']> {
const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
this.logger.logQuery(this.query.sql, params);
return await this.queryWithCache(this.query.sql, params, async () => {
return await this.client.executeRawAsync(this.query.sql, params);
});
Domain
Defined In
Source
Frequently Asked Questions
What is the OPSQLitePreparedQuery class?
OPSQLitePreparedQuery is a class in the drizzle-orm codebase, defined in drizzle-orm/src/op-sqlite/session.ts.
Where is OPSQLitePreparedQuery defined?
OPSQLitePreparedQuery is defined in drizzle-orm/src/op-sqlite/session.ts at line 112.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free