workers-qb
Advanced tools
Comparing version 1.8.0 to 1.9.0
@@ -98,4 +98,5 @@ declare enum OrderTypes { | ||
type RawQueryWithoutFetching = Omit<RawQuery, 'fetchType'>; | ||
type SelectAll = SelectOne & { | ||
type SelectAll<IsLazy extends true | undefined = undefined> = SelectOne & { | ||
limit?: number; | ||
lazy?: IsLazy; | ||
}; | ||
@@ -169,5 +170,13 @@ type ConflictUpsert = { | ||
}; | ||
type ArrayResult<ResultWrapper, Result> = Merge<ResultWrapper, { | ||
type IterableResult<ResultWrapper, Result, IsAsync extends boolean, IsLazy extends true | undefined = undefined> = IsLazy extends true ? IsAsync extends true ? Promise<Merge<ResultWrapper, { | ||
results?: AsyncIterable<Result>; | ||
}>> : Merge<ResultWrapper, { | ||
results?: Iterable<Result>; | ||
}> : never; | ||
type FullArrayResult<ResultWrapper, Result, IsAsync extends boolean, IsLazy extends true | undefined = undefined> = IsLazy extends undefined ? IsAsync extends true ? Promise<Merge<ResultWrapper, { | ||
results?: Array<Result>; | ||
}>; | ||
}>> : Merge<ResultWrapper, { | ||
results?: Array<Result>; | ||
}> : never; | ||
type ArrayResult<ResultWrapper, Result, IsAsync extends boolean, IsLazy extends true | undefined = undefined> = IterableResult<ResultWrapper, Result, IsAsync, IsLazy> | FullArrayResult<ResultWrapper, Result, IsAsync, IsLazy>; | ||
type OneResult<ResultWrapper, Result> = Merge<ResultWrapper, { | ||
@@ -187,2 +196,5 @@ results?: Result; | ||
interface SelectExecuteOptions<IsLazy extends true | undefined> { | ||
lazy?: IsLazy; | ||
} | ||
declare class SelectBuilder<GenericResultWrapper, GenericResult = DefaultReturnObject, IsAsync extends boolean = true> { | ||
@@ -206,6 +218,6 @@ _debugger: boolean; | ||
_parseArray(fieldName: string, option: any, value: any): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>; | ||
getQueryAll(): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>; | ||
getQueryAll<IsLazy extends true | undefined = undefined>(options?: SelectExecuteOptions<IsLazy>): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync, IsLazy>, IsAsync>; | ||
getQueryOne(): Query<OneResult<GenericResultWrapper, GenericResult>, IsAsync>; | ||
execute(): MaybeAsync<IsAsync, ArrayResult<GenericResultWrapper, GenericResult>>; | ||
all(): MaybeAsync<IsAsync, ArrayResult<GenericResultWrapper, GenericResult>>; | ||
execute<IsLazy extends true | undefined = undefined>(options?: SelectExecuteOptions<IsLazy>): ArrayResult<GenericResultWrapper, GenericResult, IsAsync, IsLazy>; | ||
all<IsLazy extends true | undefined = undefined>(options?: SelectExecuteOptions<IsLazy>): ArrayResult<GenericResultWrapper, GenericResult, IsAsync, IsLazy>; | ||
one(): MaybeAsync<IsAsync, OneResult<GenericResultWrapper, GenericResult>>; | ||
@@ -222,2 +234,3 @@ count(): MaybeAsync<IsAsync, CountResult<GenericResultWrapper>>; | ||
batchExecute(queryArray: Query<any, IsAsync>[]): MaybeAsync<IsAsync, any[]>; | ||
lazyExecute(query: Query<any, IsAsync>): IsAsync extends true ? Promise<AsyncIterable<any>> : Iterable<any>; | ||
createTable<GenericResult = undefined>(params: { | ||
@@ -227,19 +240,19 @@ tableName: string; | ||
ifNotExists?: boolean; | ||
}): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>; | ||
}): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>; | ||
dropTable<GenericResult = undefined>(params: { | ||
tableName: string; | ||
ifExists?: boolean; | ||
}): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>; | ||
}): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>; | ||
select<GenericResult = DefaultReturnObject>(tableName: string): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>; | ||
fetchOne<GenericResult = DefaultReturnObject>(params: SelectOne): QueryWithExtra<GenericResultWrapper, OneResult<GenericResultWrapper, GenericResult>, IsAsync>; | ||
fetchAll<GenericResult = DefaultReturnObject>(params: SelectAll): QueryWithExtra<GenericResultWrapper, ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>; | ||
fetchAll<GenericResult = DefaultReturnObject, IsLazy extends true | undefined = undefined>(params: SelectAll<IsLazy>): QueryWithExtra<GenericResultWrapper, ArrayResult<GenericResultWrapper, GenericResult, IsAsync, IsLazy>, IsAsync>; | ||
raw<GenericResult = DefaultReturnObject>(params: RawQueryFetchOne): Query<OneResult<GenericResultWrapper, GenericResult>, IsAsync>; | ||
raw<GenericResult = DefaultReturnObject>(params: RawQueryFetchAll): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>; | ||
raw<GenericResult = DefaultReturnObject>(params: RawQueryFetchAll): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>; | ||
raw<GenericResult = DefaultReturnObject>(params: RawQueryWithoutFetching): Query<GenericResultWrapper, IsAsync>; | ||
insert<GenericResult = DefaultReturnObject>(params: InsertOne): Query<OneResult<GenericResultWrapper, GenericResult>, IsAsync>; | ||
insert<GenericResult = DefaultReturnObject>(params: InsertMultiple): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>; | ||
insert<GenericResult = DefaultReturnObject>(params: InsertMultiple): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>; | ||
insert<GenericResult = DefaultReturnObject>(params: InsertWithoutReturning): Query<GenericResultWrapper, IsAsync>; | ||
update<GenericResult = DefaultReturnObject>(params: UpdateReturning): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>; | ||
update<GenericResult = DefaultReturnObject>(params: UpdateReturning): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>; | ||
update<GenericResult = DefaultReturnObject>(params: UpdateWithoutReturning): Query<GenericResultWrapper, IsAsync>; | ||
delete<GenericResult = DefaultReturnObject>(params: DeleteReturning): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>; | ||
delete<GenericResult = DefaultReturnObject>(params: DeleteReturning): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>; | ||
delete<GenericResult = DefaultReturnObject>(params: DeleteWithoutReturning): Query<GenericResultWrapper, IsAsync>; | ||
@@ -321,4 +334,5 @@ protected _parse_arguments(row: DefaultObject): Array<any>; | ||
execute(query: Query<any, false>): any; | ||
lazyExecute(query: Query<any, false>): Iterable<any>; | ||
} | ||
export { type ArrayResult, type AsyncType, ConflictTypes, type ConflictUpsert, type CountResult, type D1Meta, D1QB, type D1Result, DOQB, type DefaultObject, type DefaultReturnObject, type Delete, type DeleteReturning, type DeleteWithoutReturning, FetchTypes, type Insert, type InsertMultiple, type InsertOne, type InsertWithoutReturning, type Join, JoinTypes, type MaybeAsync, type Migration, type MigrationEntry, type MigrationOptions, type OneResult, OrderTypes, PGQB, type PGResult, type Primitive, Query, QueryBuilder, type QueryBuilderOptions, type QueryLoggerMeta, QueryWithExtra, Raw, type RawQuery, type RawQueryFetchAll, type RawQueryFetchOne, type RawQueryWithoutFetching, type SelectAll, type SelectOne, type SyncType, type Update, type UpdateReturning, type UpdateWithoutReturning, type Where, asyncLoggerWrapper, asyncMigrationsBuilder, defaultLogger, syncLoggerWrapper, syncMigrationsBuilder, type test, trimQuery }; | ||
export { type ArrayResult, type AsyncType, ConflictTypes, type ConflictUpsert, type CountResult, type D1Meta, D1QB, type D1Result, DOQB, type DefaultObject, type DefaultReturnObject, type Delete, type DeleteReturning, type DeleteWithoutReturning, FetchTypes, type FullArrayResult, type Insert, type InsertMultiple, type InsertOne, type InsertWithoutReturning, type IterableResult, type Join, JoinTypes, type MaybeAsync, type Migration, type MigrationEntry, type MigrationOptions, type OneResult, OrderTypes, PGQB, type PGResult, type Primitive, Query, QueryBuilder, type QueryBuilderOptions, type QueryLoggerMeta, QueryWithExtra, Raw, type RawQuery, type RawQueryFetchAll, type RawQueryFetchOne, type RawQueryWithoutFetching, type SelectAll, type SelectOne, type SyncType, type Update, type UpdateReturning, type UpdateWithoutReturning, type Where, asyncLoggerWrapper, asyncMigrationsBuilder, defaultLogger, syncLoggerWrapper, syncMigrationsBuilder, type test, trimQuery }; |
@@ -260,3 +260,3 @@ "use strict"; | ||
} | ||
getQueryAll() { | ||
getQueryAll(options) { | ||
return this._fetchAll(this._options); | ||
@@ -267,6 +267,6 @@ } | ||
} | ||
execute() { | ||
execute(options) { | ||
return this._fetchAll(this._options).execute(); | ||
} | ||
all() { | ||
all(options) { | ||
return this._fetchAll(this._options).execute(); | ||
@@ -351,2 +351,5 @@ } | ||
} | ||
lazyExecute(query) { | ||
throw new Error("Execute lazyExecute not implemented"); | ||
} | ||
createTable(params) { | ||
@@ -402,5 +405,5 @@ return new Query( | ||
(q) => { | ||
return this.execute(q); | ||
return params.lazy ? this.lazyExecute(q) : this.execute(q); | ||
}, | ||
this._select(params), | ||
this._select({ ...params, lazy: void 0 }), | ||
this._select({ | ||
@@ -411,3 +414,4 @@ ...params, | ||
groupBy: void 0, | ||
limit: 1 | ||
limit: 1, | ||
lazy: void 0 | ||
}), | ||
@@ -907,2 +911,13 @@ typeof params.where === "object" && !Array.isArray(params.where) && params.where?.params ? Array.isArray(params.where?.params) ? params.where?.params : [params.where?.params] : void 0, | ||
} | ||
lazyExecute(query) { | ||
return this.loggerWrapper(query, this.options.logger, () => { | ||
let cursor; | ||
if (query.arguments) { | ||
cursor = this.db.exec(query.query, ...query.arguments); | ||
} else { | ||
cursor = this.db.exec(query.query); | ||
} | ||
return cursor; | ||
}); | ||
} | ||
}; | ||
@@ -909,0 +924,0 @@ // Annotate the CommonJS export names for ESM import in node: |
{ | ||
"name": "workers-qb", | ||
"version": "1.8.0", | ||
"version": "1.9.0", | ||
"description": "Zero dependencies Query Builder for Cloudflare Workers", | ||
@@ -60,3 +60,3 @@ "main": "./dist/index.js", | ||
"@biomejs/biome": "1.9.4", | ||
"@cloudflare/vitest-pool-workers": "^0.5.26", | ||
"@cloudflare/vitest-pool-workers": "^0.6.0", | ||
"@cloudflare/workers-types": "^4.20241106.0", | ||
@@ -63,0 +63,0 @@ "husky": "^9.1.6", |
@@ -31,2 +31,3 @@ # workers-qb | ||
- [x] [Upsert](https://workers-qb.massadas.com/advanced-queries/upsert/) | ||
- [x] Lazy Load Rows | ||
@@ -33,0 +34,0 @@ ## Installation |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
91100
2136
148