UNPKG

drizzle-orm

Version:

Drizzle ORM package for SQL databases

55 lines 1.39 kB
import { entityKind } from "../../entity.js"; import { SQL, sql } from "../../sql/sql.js"; class PgCountBuilder extends SQL { constructor(params) { super(PgCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks); this.params = params; this.mapWith(Number); this.session = params.session; this.sql = PgCountBuilder.buildCount( params.source, params.filters ); } sql; token; static [entityKind] = "PgCountBuilder"; [Symbol.toStringTag] = "PgCountBuilder"; 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};`; } /** @intrnal */ setToken(token) { this.token = token; return this; } then(onfulfilled, onrejected) { return Promise.resolve(this.session.count(this.sql, this.token)).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 { PgCountBuilder }; //# sourceMappingURL=count.js.map