PreparedQuery Class — drizzle-orm Architecture
Architecture documentation for the PreparedQuery class in session.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD cf3232ab_89f0_ca3b_e311_83f479438ca4["PreparedQuery"] a33b9761_e026_5d23_a559_f5bba879c2dd["session.ts"] cf3232ab_89f0_ca3b_e311_83f479438ca4 -->|defined in| a33b9761_e026_5d23_a559_f5bba879c2dd 09f7256a_ba88_7ebd_739d_b5dd80df061f["constructor()"] cf3232ab_89f0_ca3b_e311_83f479438ca4 -->|method| 09f7256a_ba88_7ebd_739d_b5dd80df061f 561c84aa_d36c_000a_6d75_80269ca633c2["run()"] cf3232ab_89f0_ca3b_e311_83f479438ca4 -->|method| 561c84aa_d36c_000a_6d75_80269ca633c2 c5ed6177_4390_fbef_968c_6a596ccdd8d7["all()"] cf3232ab_89f0_ca3b_e311_83f479438ca4 -->|method| c5ed6177_4390_fbef_968c_6a596ccdd8d7 6a0cee69_54eb_7baf_3413_15d283c8a016["get()"] cf3232ab_89f0_ca3b_e311_83f479438ca4 -->|method| 6a0cee69_54eb_7baf_3413_15d283c8a016 de468185_feb7_af5b_54d8_82e9fa6216c9["values()"] cf3232ab_89f0_ca3b_e311_83f479438ca4 -->|method| de468185_feb7_af5b_54d8_82e9fa6216c9 77388ce4_7048_7fbb_d7aa_c3613998bd5d["isResponseInArrayMode()"] cf3232ab_89f0_ca3b_e311_83f479438ca4 -->|method| 77388ce4_7048_7fbb_d7aa_c3613998bd5d
Relationship Graph
Source Code
drizzle-orm/src/bun-sqlite/session.ts lines 103–174
export class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<
{ type: 'sync'; run: void; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }
> {
static override readonly [entityKind]: string = 'SQLiteBunPreparedQuery';
constructor(
private stmt: Statement,
query: Query,
private logger: Logger,
private fields: SelectedFieldsOrdered | undefined,
executeMethod: SQLiteExecuteMethod,
private _isResponseInArrayMode: boolean,
private customResultMapper?: (rows: unknown[][]) => unknown,
) {
super('sync', executeMethod, query);
}
run(placeholderValues?: Record<string, unknown>) {
const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
this.logger.logQuery(this.query.sql, params);
return this.stmt.run(...params);
}
all(placeholderValues?: Record<string, unknown>): T['all'] {
const { fields, query, logger, joinsNotNullableMap, stmt, customResultMapper } = this;
if (!fields && !customResultMapper) {
const params = fillPlaceholders(query.params, placeholderValues ?? {});
logger.logQuery(query.sql, params);
return stmt.all(...params);
}
const rows = this.values(placeholderValues) as unknown[][];
if (customResultMapper) {
return customResultMapper(rows) as T['all'];
}
return rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));
}
get(placeholderValues?: Record<string, unknown>): T['get'] {
const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
this.logger.logQuery(this.query.sql, params);
const row = this.stmt.values(...params)[0];
if (!row) {
return undefined;
}
const { fields, joinsNotNullableMap, customResultMapper } = this;
if (!fields && !customResultMapper) {
return row;
}
if (customResultMapper) {
return customResultMapper([row]) as T['get'];
}
return mapResultRow(fields!, row, joinsNotNullableMap);
}
values(placeholderValues?: Record<string, unknown>): T['values'] {
const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
this.logger.logQuery(this.query.sql, params);
return this.stmt.values(...params);
}
/** @internal */
isResponseInArrayMode(): boolean {
return this._isResponseInArrayMode;
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the PreparedQuery class?
PreparedQuery is a class in the drizzle-orm codebase, defined in drizzle-orm/src/bun-sqlite/session.ts.
Where is PreparedQuery defined?
PreparedQuery is defined in drizzle-orm/src/bun-sqlite/session.ts at line 103.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free