in packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts [209:245]
async findMany({ model, where, limit, offset, sortBy }) {
const { and, or } = convertWhereClause(model, where);
let query = db.selectFrom(model);
if (and) {
query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
}
if (or) {
query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
}
if (config?.type === "mssql") {
if (!offset) {
query = query.top(limit || 100);
}
} else {
query = query.limit(limit || 100);
}
if (sortBy) {
query = query.orderBy(
getFieldName({ model, field: sortBy.field }),
sortBy.direction,
);
}
if (offset) {
if (config?.type === "mssql") {
if (!sortBy) {
query = query.orderBy(getFieldName({ model, field: "id" }));
}
query = query.offset(offset).fetch(limit || 100);
} else {
query = query.offset(offset);
}
}
const res = await query.selectAll().execute();
if (!res) return [];
return res as any;
},