iterator() — drizzle-orm Function Reference
Architecture documentation for the iterator() function in session.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 2ee408d3_cd7c_fb7d_ddd5_fef534434ea7["iterator()"] 070ed5d0_5637_0d4b_a489_d4cae342d1a6["MySql2PreparedQuery"] 2ee408d3_cd7c_fb7d_ddd5_fef534434ea7 -->|defined in| 070ed5d0_5637_0d4b_a489_d4cae342d1a6 de33a64d_c330_3f3d_0ac5_16396e49b35b["isPool()"] 2ee408d3_cd7c_fb7d_ddd5_fef534434ea7 -->|calls| de33a64d_c330_3f3d_0ac5_16396e49b35b 142c245f_17c2_a0a5_6518_2c3fc9552143["query()"] 2ee408d3_cd7c_fb7d_ddd5_fef534434ea7 -->|calls| 142c245f_17c2_a0a5_6518_2c3fc9552143 style 2ee408d3_cd7c_fb7d_ddd5_fef534434ea7 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-orm/src/mysql2/session.ts lines 145–195
async *iterator(
placeholderValues: Record<string, unknown> = {},
): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']> {
const params = fillPlaceholders(this.params, placeholderValues);
const conn = ((isPool(this.client) ? await this.client.getConnection() : this.client) as {} as {
connection: CallbackConnection;
}).connection;
const { fields, query, rawQuery, joinsNotNullableMap, client, customResultMapper } = this;
const hasRowsMapper = Boolean(fields || customResultMapper);
const driverQuery = hasRowsMapper ? conn.query(query, params) : conn.query(rawQuery, params);
const stream = driverQuery.stream();
function dataListener() {
stream.pause();
}
stream.on('data', dataListener);
try {
const onEnd = once(stream, 'end');
const onError = once(stream, 'error');
while (true) {
stream.resume();
const row = await Promise.race([onEnd, onError, new Promise((resolve) => stream.once('data', resolve))]);
if (row === undefined || (Array.isArray(row) && row.length === 0)) {
break;
} else if (row instanceof Error) { // eslint-disable-line no-instanceof/no-instanceof
throw row;
} else {
if (hasRowsMapper) {
if (customResultMapper) {
const mappedRow = customResultMapper([row as unknown[]]);
yield (Array.isArray(mappedRow) ? mappedRow[0] : mappedRow);
} else {
yield mapResultRow(fields!, row as unknown[], joinsNotNullableMap);
}
} else {
yield row as T['execute'];
}
}
}
} finally {
stream.off('data', dataListener);
if (isPool(client)) {
conn.end();
}
}
}
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does iterator() do?
iterator() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/mysql2/session.ts.
Where is iterator() defined?
iterator() is defined in drizzle-orm/src/mysql2/session.ts at line 145.
What does iterator() call?
iterator() calls 2 function(s): isPool, query.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free