workers-qb
Advanced tools
Comparing version 1.4.2 to 1.4.3
@@ -37,2 +37,7 @@ import { SqlStorage } from '@cloudflare/workers-types/experimental'; | ||
} | ||
declare class QueryWithExtra<GenericResultWrapper, Result = any> extends Query<Result> { | ||
private countQuery; | ||
constructor(executeMethod: (query: Query<Result>) => Promise<Result>, query: string, countQuery: string, args?: Primitive[], fetchType?: FetchTypes); | ||
count(): Promise<CountResult<GenericResultWrapper>>; | ||
} | ||
@@ -161,2 +166,5 @@ type OmitIndexSignature<ObjectType> = { | ||
}>; | ||
type CountResult<GenericResultWrapper> = OneResult<GenericResultWrapper, { | ||
total: number; | ||
}>; | ||
@@ -167,3 +175,3 @@ declare class SelectBuilder<GenericResultWrapper, GenericResult = DefaultReturnObject> { | ||
private _queryBuilder; | ||
constructor(options: Partial<SelectAll>, queryBuilder: (params: SelectAll) => Query); | ||
constructor(options: Partial<SelectAll>, queryBuilder: (params: SelectAll) => QueryWithExtra<GenericResultWrapper>); | ||
setDebugger(state: boolean): void; | ||
@@ -182,2 +190,3 @@ tableName(tableName: SelectAll['tableName']): SelectBuilder<GenericResultWrapper, GenericResult>; | ||
execute(): Promise<ArrayResult<GenericResultWrapper, GenericResult>>; | ||
count(): Promise<CountResult<GenericResultWrapper>>; | ||
} | ||
@@ -200,4 +209,4 @@ | ||
select<GenericResult = DefaultReturnObject>(tableName: string): SelectBuilder<GenericResultWrapper, GenericResult>; | ||
fetchOne<GenericResult = DefaultReturnObject>(params: SelectOne): Query<OneResult<GenericResultWrapper, GenericResult>>; | ||
fetchAll<GenericResult = DefaultReturnObject>(params: SelectAll): Query<ArrayResult<GenericResultWrapper, GenericResult>>; | ||
fetchOne<GenericResult = DefaultReturnObject>(params: SelectOne): QueryWithExtra<GenericResultWrapper, OneResult<GenericResultWrapper, GenericResult>>; | ||
fetchAll<GenericResult = DefaultReturnObject>(params: SelectAll): QueryWithExtra<GenericResultWrapper, ArrayResult<GenericResultWrapper, GenericResult>>; | ||
raw<GenericResult = DefaultReturnObject>(params: RawQueryFetchOne): Query<OneResult<GenericResultWrapper, GenericResult>>; | ||
@@ -255,3 +264,3 @@ raw<GenericResult = DefaultReturnObject>(params: RawQueryFetchAll): Query<ArrayResult<GenericResultWrapper, GenericResult>>; | ||
declare class DurableObjectDatabaseQB extends QueryBuilder<{}> { | ||
declare class DOQB extends QueryBuilder<{}> { | ||
db: SqlStorage; | ||
@@ -265,3 +274,5 @@ constructor(db: SqlStorage); | ||
} | ||
declare class DurableObjectDatabaseQB extends DOQB { | ||
} | ||
export { type ArrayResult, ConflictTypes, type ConflictUpsert, type D1Meta, D1QB, type D1Result, type DefaultObject, type DefaultReturnObject, type Delete, type DeleteReturning, type DeleteWithoutReturning, DurableObjectDatabaseQB, FetchTypes, type Insert, type InsertMultiple, type InsertOne, type InsertWithoutReturning, type Join, JoinTypes, type OneResult, OrderTypes, PGQB, type PGResult, type Primitive, Query, QueryBuilder, Raw, type RawQuery, type RawQueryFetchAll, type RawQueryFetchOne, type RawQueryWithoutFetching, type SelectAll, type SelectOne, type Update, type UpdateReturning, type UpdateWithoutReturning, type Where, type test }; | ||
export { type ArrayResult, ConflictTypes, type ConflictUpsert, type CountResult, type D1Meta, D1QB, type D1Result, DOQB, type DefaultObject, type DefaultReturnObject, type Delete, type DeleteReturning, type DeleteWithoutReturning, DurableObjectDatabaseQB, FetchTypes, type Insert, type InsertMultiple, type InsertOne, type InsertWithoutReturning, type Join, JoinTypes, type OneResult, OrderTypes, PGQB, type PGResult, type Primitive, Query, QueryBuilder, QueryWithExtra, Raw, type RawQuery, type RawQueryFetchAll, type RawQueryFetchOne, type RawQueryWithoutFetching, type SelectAll, type SelectOne, type Update, type UpdateReturning, type UpdateWithoutReturning, type Where, type test }; |
@@ -25,2 +25,3 @@ "use strict"; | ||
D1QB: () => D1QB, | ||
DOQB: () => DOQB, | ||
DurableObjectDatabaseQB: () => DurableObjectDatabaseQB, | ||
@@ -33,2 +34,3 @@ FetchTypes: () => FetchTypes, | ||
QueryBuilder: () => QueryBuilder, | ||
QueryWithExtra: () => QueryWithExtra, | ||
Raw: () => Raw | ||
@@ -87,2 +89,14 @@ }); | ||
}; | ||
var QueryWithExtra = class extends Query { | ||
countQuery; | ||
constructor(executeMethod, query, countQuery, args, fetchType) { | ||
super(executeMethod, query, args, fetchType); | ||
this.countQuery = countQuery; | ||
} | ||
async count() { | ||
return this.executeMethod( | ||
new Query(this.executeMethod, this.countQuery, this.arguments, "ONE" /* ONE */) | ||
); | ||
} | ||
}; | ||
@@ -192,2 +206,5 @@ // src/modularBuilder.ts | ||
} | ||
async count() { | ||
return this._queryBuilder(this._options).count(); | ||
} | ||
}; | ||
@@ -232,3 +249,3 @@ | ||
fetchOne(params) { | ||
return new Query( | ||
return new QueryWithExtra( | ||
(q) => { | ||
@@ -238,2 +255,7 @@ return this.execute(q); | ||
this._select({ ...params, limit: 1 }), | ||
this._select({ | ||
...params, | ||
fields: "count(*) as total", | ||
limit: 1 | ||
}), | ||
typeof params.where === "object" && !Array.isArray(params.where) && params.where?.params ? Array.isArray(params.where?.params) ? params.where?.params : [params.where?.params] : void 0, | ||
@@ -244,3 +266,3 @@ "ONE" /* ONE */ | ||
fetchAll(params) { | ||
return new Query( | ||
return new QueryWithExtra( | ||
(q) => { | ||
@@ -250,2 +272,7 @@ return this.execute(q); | ||
this._select(params), | ||
this._select({ | ||
...params, | ||
fields: "count(*) as total", | ||
limit: 1 | ||
}), | ||
typeof params.where === "object" && !Array.isArray(params.where) && params.where?.params ? Array.isArray(params.where?.params) ? params.where?.params : [params.where?.params] : void 0, | ||
@@ -612,3 +639,3 @@ "ALL" /* ALL */ | ||
// src/databases/do.ts | ||
var DurableObjectDatabaseQB = class extends QueryBuilder { | ||
var DOQB = class extends QueryBuilder { | ||
db; | ||
@@ -652,2 +679,4 @@ constructor(db) { | ||
}; | ||
var DurableObjectDatabaseQB = class extends DOQB { | ||
}; | ||
// Annotate the CommonJS export names for ESM import in node: | ||
@@ -657,2 +686,3 @@ 0 && (module.exports = { | ||
D1QB, | ||
DOQB, | ||
DurableObjectDatabaseQB, | ||
@@ -665,3 +695,4 @@ FetchTypes, | ||
QueryBuilder, | ||
QueryWithExtra, | ||
Raw | ||
}); |
{ | ||
"name": "workers-qb", | ||
"version": "1.4.2", | ||
"version": "1.4.3", | ||
"description": "Zero dependencies Query Builder for Cloudflare Workers", | ||
@@ -5,0 +5,0 @@ "main": "./dist/index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
65815
1583