UNPKG

drizzle-orm

Version:

Drizzle ORM package for SQL databases

49 lines 1.31 kB
import { entityKind } from "../../entity.js"; import { SQL, sql } from "../../sql/sql.js"; class MySqlCountBuilder extends SQL { constructor(params) { super(MySqlCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks); this.params = params; this.mapWith(Number); this.session = params.session; this.sql = MySqlCountBuilder.buildCount( params.source, params.filters ); } sql; static [entityKind] = "MySqlCountBuilder"; [Symbol.toStringTag] = "MySqlCountBuilder"; session; static buildEmbeddedCount(source, filters) { return sql`(select count(*) from ${source}${sql.raw(" where ").if(filters)}${filters})`; } static buildCount(source, filters) { return sql`select count(*) as count from ${source}${sql.raw(" where ").if(filters)}${filters}`; } then(onfulfilled, onrejected) { return Promise.resolve(this.session.count(this.sql)).then( onfulfilled, onrejected ); } catch(onRejected) { return this.then(void 0, onRejected); } finally(onFinally) { return this.then( (value) => { onFinally?.(); return value; }, (reason) => { onFinally?.(); throw reason; } ); } } export { MySqlCountBuilder }; //# sourceMappingURL=count.js.map