ExpoSQLitePreparedQuery Class — drizzle-orm Architecture
Architecture documentation for the ExpoSQLitePreparedQuery class in session.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD e50637e8_1588_6115_6b06_72e8d3b48b1b["ExpoSQLitePreparedQuery"] ddcc8973_fc9e_23b4_1e3c_d3ff67e9b7e4["session.ts"] e50637e8_1588_6115_6b06_72e8d3b48b1b -->|defined in| ddcc8973_fc9e_23b4_1e3c_d3ff67e9b7e4 1b40b2b4_a68b_0791_cf9a_d2a316c5ba06["constructor()"] e50637e8_1588_6115_6b06_72e8d3b48b1b -->|method| 1b40b2b4_a68b_0791_cf9a_d2a316c5ba06 e99b17ba_e6e2_c86e_a33c_a9e741e175da["run()"] e50637e8_1588_6115_6b06_72e8d3b48b1b -->|method| e99b17ba_e6e2_c86e_a33c_a9e741e175da 0aba7bcb_03b6_2624_e8b4_ba0a89c71a07["all()"] e50637e8_1588_6115_6b06_72e8d3b48b1b -->|method| 0aba7bcb_03b6_2624_e8b4_ba0a89c71a07 3c02522e_3b12_0728_4e0b_80d01beacd4f["get()"] e50637e8_1588_6115_6b06_72e8d3b48b1b -->|method| 3c02522e_3b12_0728_4e0b_80d01beacd4f 6076d2b5_8042_3bbc_e19b_17093bb09c8f["values()"] e50637e8_1588_6115_6b06_72e8d3b48b1b -->|method| 6076d2b5_8042_3bbc_e19b_17093bb09c8f b6fe1ad5_429a_2bbb_a713_aad8a2056127["isResponseInArrayMode()"] e50637e8_1588_6115_6b06_72e8d3b48b1b -->|method| b6fe1ad5_429a_2bbb_a713_aad8a2056127
Relationship Graph
Source Code
drizzle-orm/src/expo-sqlite/session.ts lines 100–175
export class ExpoSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<
{ type: 'sync'; run: SQLiteRunResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }
> {
static override readonly [entityKind]: string = 'ExpoSQLitePreparedQuery';
constructor(
private stmt: SQLiteStatement,
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>): SQLiteRunResult {
const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
this.logger.logQuery(this.query.sql, params);
const { changes, lastInsertRowId } = this.stmt.executeSync(params as any[]);
return {
changes,
lastInsertRowId,
};
}
all(placeholderValues?: Record<string, unknown>): T['all'] {
const { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;
if (!fields && !customResultMapper) {
const params = fillPlaceholders(query.params, placeholderValues ?? {});
logger.logQuery(query.sql, params);
return stmt.executeSync(params as any[]).getAllSync();
}
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 { fields, stmt, joinsNotNullableMap, customResultMapper } = this;
if (!fields && !customResultMapper) {
return stmt.executeSync(params as any[]).getFirstSync();
}
const rows = 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);
}
values(placeholderValues?: Record<string, unknown>): T['values'] {
const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
this.logger.logQuery(this.query.sql, params);
return this.stmt.executeForRawResultSync(params as any[]).getAllSync();
}
/** @internal */
isResponseInArrayMode(): boolean {
return this._isResponseInArrayMode;
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the ExpoSQLitePreparedQuery class?
ExpoSQLitePreparedQuery is a class in the drizzle-orm codebase, defined in drizzle-orm/src/expo-sqlite/session.ts.
Where is ExpoSQLitePreparedQuery defined?
ExpoSQLitePreparedQuery is defined in drizzle-orm/src/expo-sqlite/session.ts at line 100.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free