workers-qb 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -28,6 +28,7 @@ Currently, 3 databases are supported:
28
28
  - [x] [Modular selects](https://workers-qb.massadas.com/modular-selects/) (qb.select(...).where(...).where(...).one())
29
29
  - [x] [On Conflict for Inserts and Updates](https://workers-qb.massadas.com/advanced-queries/onConflict/)
30
30
  - [x] [Upsert](https://workers-qb.massadas.com/advanced-queries/upsert/)
31
+ - [x] Lazy Load Rows
31
32
 
32
33
  ## Installation
33
34
 
package/dist/index.d.mts CHANGED
@@ -95,8 +95,9 @@ type RawQueryFetchAll = Omit<RawQuery, 'fetchType'> & {
95
95
  fetchType: FetchTypes.ALL;
96
96
  };
97
97
  type RawQueryWithoutFetching = Omit<RawQuery, 'fetchType'>;
98
- type SelectAll = SelectOne & {
98
+ type SelectAll<IsLazy extends true | undefined = undefined> = SelectOne & {
99
99
  limit?: number;
100
+ lazy?: IsLazy;
100
101
  };
101
102
  type ConflictUpsert = {
102
103
  column: string | Array<string>;
@@ -165,9 +166,17 @@ type PGResult = {
165
166
  lastRowId?: string | number;
166
167
  rowCount: number;
167
168
  };
168
- type ArrayResult<ResultWrapper, Result> = Merge<ResultWrapper, {
169
+ type IterableResult<ResultWrapper, Result, IsAsync extends boolean, IsLazy extends true | undefined = undefined> = IsLazy extends true ? IsAsync extends true ? Promise<Merge<ResultWrapper, {
170
+ results?: AsyncIterable<Result>;
171
+ }>> : Merge<ResultWrapper, {
172
+ results?: Iterable<Result>;
173
+ }> : never;
174
+ type FullArrayResult<ResultWrapper, Result, IsAsync extends boolean, IsLazy extends true | undefined = undefined> = IsLazy extends undefined ? IsAsync extends true ? Promise<Merge<ResultWrapper, {
169
175
  results?: Array<Result>;
170
- }>;
176
+ }>> : Merge<ResultWrapper, {
177
+ results?: Array<Result>;
178
+ }> : never;
179
+ type ArrayResult<ResultWrapper, Result, IsAsync extends boolean, IsLazy extends true | undefined = undefined> = IterableResult<ResultWrapper, Result, IsAsync, IsLazy> | FullArrayResult<ResultWrapper, Result, IsAsync, IsLazy>;
171
180
  type OneResult<ResultWrapper, Result> = Merge<ResultWrapper, {
172
181
  results?: Result;
173
182
  }>;
@@ -182,6 +191,9 @@ declare function defaultLogger(query: RawQuery, meta: QueryLoggerMeta): any;
182
191
  declare function asyncLoggerWrapper<Async extends boolean = true>(query: Query<any, Async> | Query<any, Async>[], loggerFunction: CallableFunction | undefined, innerFunction: () => any): Promise<any>;
183
192
  declare function syncLoggerWrapper<Async extends boolean = false>(query: Query<any, Async> | Query<any, Async>[], loggerFunction: CallableFunction | undefined, innerFunction: () => any): any;
184
193
 
194
+ interface SelectExecuteOptions<IsLazy extends true | undefined> {
195
+ lazy?: IsLazy;
196
+ }
185
197
  declare class SelectBuilder<GenericResultWrapper, GenericResult = DefaultReturnObject, IsAsync extends boolean = true> {
186
198
  _debugger: boolean;
187
199
  _options: Partial<SelectAll>;
@@ -200,10 +212,10 @@ declare class SelectBuilder<GenericResultWrapper, GenericResult = DefaultReturnO
200
212
  offset(offset: SelectAll['offset']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
201
213
  limit(limit: SelectAll['limit']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
202
214
  _parseArray(fieldName: string, option: any, value: any): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
203
- getQueryAll(): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
215
+ getQueryAll<IsLazy extends true | undefined = undefined>(options?: SelectExecuteOptions<IsLazy>): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync, IsLazy>, IsAsync>;
204
216
  getQueryOne(): Query<OneResult<GenericResultWrapper, GenericResult>, IsAsync>;
205
- execute(): MaybeAsync<IsAsync, ArrayResult<GenericResultWrapper, GenericResult>>;
206
- all(): MaybeAsync<IsAsync, ArrayResult<GenericResultWrapper, GenericResult>>;
217
+ execute<IsLazy extends true | undefined = undefined>(options?: SelectExecuteOptions<IsLazy>): ArrayResult<GenericResultWrapper, GenericResult, IsAsync, IsLazy>;
218
+ all<IsLazy extends true | undefined = undefined>(options?: SelectExecuteOptions<IsLazy>): ArrayResult<GenericResultWrapper, GenericResult, IsAsync, IsLazy>;
207
219
  one(): MaybeAsync<IsAsync, OneResult<GenericResultWrapper, GenericResult>>;
208
220
  count(): MaybeAsync<IsAsync, CountResult<GenericResultWrapper>>;
209
221
  }
@@ -215,27 +227,28 @@ declare class QueryBuilder<GenericResultWrapper, IsAsync extends boolean = true>
215
227
  setDebugger(state: boolean): void;
216
228
  execute(query: Query<any, IsAsync>): MaybeAsync<IsAsync, any>;
217
229
  batchExecute(queryArray: Query<any, IsAsync>[]): MaybeAsync<IsAsync, any[]>;
230
+ lazyExecute(query: Query<any, IsAsync>): IsAsync extends true ? Promise<AsyncIterable<any>> : Iterable<any>;
218
231
  createTable<GenericResult = undefined>(params: {
219
232
  tableName: string;
220
233
  schema: string;
221
234
  ifNotExists?: boolean;
222
- }): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
235
+ }): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>;
223
236
  dropTable<GenericResult = undefined>(params: {
224
237
  tableName: string;
225
238
  ifExists?: boolean;
226
- }): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
239
+ }): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>;
227
240
  select<GenericResult = DefaultReturnObject>(tableName: string): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
228
241
  fetchOne<GenericResult = DefaultReturnObject>(params: SelectOne): QueryWithExtra<GenericResultWrapper, OneResult<GenericResultWrapper, GenericResult>, IsAsync>;
229
- fetchAll<GenericResult = DefaultReturnObject>(params: SelectAll): QueryWithExtra<GenericResultWrapper, ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
242
+ fetchAll<GenericResult = DefaultReturnObject, IsLazy extends true | undefined = undefined>(params: SelectAll<IsLazy>): QueryWithExtra<GenericResultWrapper, ArrayResult<GenericResultWrapper, GenericResult, IsAsync, IsLazy>, IsAsync>;
230
243
  raw<GenericResult = DefaultReturnObject>(params: RawQueryFetchOne): Query<OneResult<GenericResultWrapper, GenericResult>, IsAsync>;
231
- raw<GenericResult = DefaultReturnObject>(params: RawQueryFetchAll): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
244
+ raw<GenericResult = DefaultReturnObject>(params: RawQueryFetchAll): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>;
232
245
  raw<GenericResult = DefaultReturnObject>(params: RawQueryWithoutFetching): Query<GenericResultWrapper, IsAsync>;
233
246
  insert<GenericResult = DefaultReturnObject>(params: InsertOne): Query<OneResult<GenericResultWrapper, GenericResult>, IsAsync>;
234
- insert<GenericResult = DefaultReturnObject>(params: InsertMultiple): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
247
+ insert<GenericResult = DefaultReturnObject>(params: InsertMultiple): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>;
235
248
  insert<GenericResult = DefaultReturnObject>(params: InsertWithoutReturning): Query<GenericResultWrapper, IsAsync>;
236
- update<GenericResult = DefaultReturnObject>(params: UpdateReturning): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
249
+ update<GenericResult = DefaultReturnObject>(params: UpdateReturning): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>;
237
250
  update<GenericResult = DefaultReturnObject>(params: UpdateWithoutReturning): Query<GenericResultWrapper, IsAsync>;
238
- delete<GenericResult = DefaultReturnObject>(params: DeleteReturning): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
251
+ delete<GenericResult = DefaultReturnObject>(params: DeleteReturning): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>;
239
252
  delete<GenericResult = DefaultReturnObject>(params: DeleteWithoutReturning): Query<GenericResultWrapper, IsAsync>;
240
253
  protected _parse_arguments(row: DefaultObject): Array<any>;
241
254
  protected _onConflict(resolution?: string | ConflictTypes | ConflictUpsert): string;
@@ -312,6 +325,7 @@ declare class DOQB extends QueryBuilder<{}, false> {
312
325
  constructor(db: any, options?: QueryBuilderOptions<false>);
313
326
  migrations(options: MigrationOptions): syncMigrationsBuilder<{}>;
314
327
  execute(query: Query<any, false>): any;
328
+ lazyExecute(query: Query<any, false>): Iterable<any>;
315
329
  }
316
330
 
317
- 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 };
331
+ 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 };
package/dist/index.d.ts CHANGED
@@ -95,8 +95,9 @@ type RawQueryFetchAll = Omit<RawQuery, 'fetchType'> & {
95
95
  fetchType: FetchTypes.ALL;
96
96
  };
97
97
  type RawQueryWithoutFetching = Omit<RawQuery, 'fetchType'>;
98
- type SelectAll = SelectOne & {
98
+ type SelectAll<IsLazy extends true | undefined = undefined> = SelectOne & {
99
99
  limit?: number;
100
+ lazy?: IsLazy;
100
101
  };
101
102
  type ConflictUpsert = {
102
103
  column: string | Array<string>;
@@ -165,9 +166,17 @@ type PGResult = {
165
166
  lastRowId?: string | number;
166
167
  rowCount: number;
167
168
  };
168
- type ArrayResult<ResultWrapper, Result> = Merge<ResultWrapper, {
169
+ type IterableResult<ResultWrapper, Result, IsAsync extends boolean, IsLazy extends true | undefined = undefined> = IsLazy extends true ? IsAsync extends true ? Promise<Merge<ResultWrapper, {
170
+ results?: AsyncIterable<Result>;
171
+ }>> : Merge<ResultWrapper, {
172
+ results?: Iterable<Result>;
173
+ }> : never;
174
+ type FullArrayResult<ResultWrapper, Result, IsAsync extends boolean, IsLazy extends true | undefined = undefined> = IsLazy extends undefined ? IsAsync extends true ? Promise<Merge<ResultWrapper, {
169
175
  results?: Array<Result>;
170
- }>;
176
+ }>> : Merge<ResultWrapper, {
177
+ results?: Array<Result>;
178
+ }> : never;
179
+ type ArrayResult<ResultWrapper, Result, IsAsync extends boolean, IsLazy extends true | undefined = undefined> = IterableResult<ResultWrapper, Result, IsAsync, IsLazy> | FullArrayResult<ResultWrapper, Result, IsAsync, IsLazy>;
171
180
  type OneResult<ResultWrapper, Result> = Merge<ResultWrapper, {
172
181
  results?: Result;
173
182
  }>;
@@ -182,6 +191,9 @@ declare function defaultLogger(query: RawQuery, meta: QueryLoggerMeta): any;
182
191
  declare function asyncLoggerWrapper<Async extends boolean = true>(query: Query<any, Async> | Query<any, Async>[], loggerFunction: CallableFunction | undefined, innerFunction: () => any): Promise<any>;
183
192
  declare function syncLoggerWrapper<Async extends boolean = false>(query: Query<any, Async> | Query<any, Async>[], loggerFunction: CallableFunction | undefined, innerFunction: () => any): any;
184
193
 
194
+ interface SelectExecuteOptions<IsLazy extends true | undefined> {
195
+ lazy?: IsLazy;
196
+ }
185
197
  declare class SelectBuilder<GenericResultWrapper, GenericResult = DefaultReturnObject, IsAsync extends boolean = true> {
186
198
  _debugger: boolean;
187
199
  _options: Partial<SelectAll>;
@@ -200,10 +212,10 @@ declare class SelectBuilder<GenericResultWrapper, GenericResult = DefaultReturnO
200
212
  offset(offset: SelectAll['offset']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
201
213
  limit(limit: SelectAll['limit']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
202
214
  _parseArray(fieldName: string, option: any, value: any): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
203
- getQueryAll(): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
215
+ getQueryAll<IsLazy extends true | undefined = undefined>(options?: SelectExecuteOptions<IsLazy>): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync, IsLazy>, IsAsync>;
204
216
  getQueryOne(): Query<OneResult<GenericResultWrapper, GenericResult>, IsAsync>;
205
- execute(): MaybeAsync<IsAsync, ArrayResult<GenericResultWrapper, GenericResult>>;
206
- all(): MaybeAsync<IsAsync, ArrayResult<GenericResultWrapper, GenericResult>>;
217
+ execute<IsLazy extends true | undefined = undefined>(options?: SelectExecuteOptions<IsLazy>): ArrayResult<GenericResultWrapper, GenericResult, IsAsync, IsLazy>;
218
+ all<IsLazy extends true | undefined = undefined>(options?: SelectExecuteOptions<IsLazy>): ArrayResult<GenericResultWrapper, GenericResult, IsAsync, IsLazy>;
207
219
  one(): MaybeAsync<IsAsync, OneResult<GenericResultWrapper, GenericResult>>;
208
220
  count(): MaybeAsync<IsAsync, CountResult<GenericResultWrapper>>;
209
221
  }
@@ -215,27 +227,28 @@ declare class QueryBuilder<GenericResultWrapper, IsAsync extends boolean = true>
215
227
  setDebugger(state: boolean): void;
216
228
  execute(query: Query<any, IsAsync>): MaybeAsync<IsAsync, any>;
217
229
  batchExecute(queryArray: Query<any, IsAsync>[]): MaybeAsync<IsAsync, any[]>;
230
+ lazyExecute(query: Query<any, IsAsync>): IsAsync extends true ? Promise<AsyncIterable<any>> : Iterable<any>;
218
231
  createTable<GenericResult = undefined>(params: {
219
232
  tableName: string;
220
233
  schema: string;
221
234
  ifNotExists?: boolean;
222
- }): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
235
+ }): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>;
223
236
  dropTable<GenericResult = undefined>(params: {
224
237
  tableName: string;
225
238
  ifExists?: boolean;
226
- }): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
239
+ }): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>;
227
240
  select<GenericResult = DefaultReturnObject>(tableName: string): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
228
241
  fetchOne<GenericResult = DefaultReturnObject>(params: SelectOne): QueryWithExtra<GenericResultWrapper, OneResult<GenericResultWrapper, GenericResult>, IsAsync>;
229
- fetchAll<GenericResult = DefaultReturnObject>(params: SelectAll): QueryWithExtra<GenericResultWrapper, ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
242
+ fetchAll<GenericResult = DefaultReturnObject, IsLazy extends true | undefined = undefined>(params: SelectAll<IsLazy>): QueryWithExtra<GenericResultWrapper, ArrayResult<GenericResultWrapper, GenericResult, IsAsync, IsLazy>, IsAsync>;
230
243
  raw<GenericResult = DefaultReturnObject>(params: RawQueryFetchOne): Query<OneResult<GenericResultWrapper, GenericResult>, IsAsync>;
231
- raw<GenericResult = DefaultReturnObject>(params: RawQueryFetchAll): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
244
+ raw<GenericResult = DefaultReturnObject>(params: RawQueryFetchAll): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>;
232
245
  raw<GenericResult = DefaultReturnObject>(params: RawQueryWithoutFetching): Query<GenericResultWrapper, IsAsync>;
233
246
  insert<GenericResult = DefaultReturnObject>(params: InsertOne): Query<OneResult<GenericResultWrapper, GenericResult>, IsAsync>;
234
- insert<GenericResult = DefaultReturnObject>(params: InsertMultiple): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
247
+ insert<GenericResult = DefaultReturnObject>(params: InsertMultiple): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>;
235
248
  insert<GenericResult = DefaultReturnObject>(params: InsertWithoutReturning): Query<GenericResultWrapper, IsAsync>;
236
- update<GenericResult = DefaultReturnObject>(params: UpdateReturning): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
249
+ update<GenericResult = DefaultReturnObject>(params: UpdateReturning): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>;
237
250
  update<GenericResult = DefaultReturnObject>(params: UpdateWithoutReturning): Query<GenericResultWrapper, IsAsync>;
238
- delete<GenericResult = DefaultReturnObject>(params: DeleteReturning): Query<ArrayResult<GenericResultWrapper, GenericResult>, IsAsync>;
251
+ delete<GenericResult = DefaultReturnObject>(params: DeleteReturning): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync>, IsAsync>;
239
252
  delete<GenericResult = DefaultReturnObject>(params: DeleteWithoutReturning): Query<GenericResultWrapper, IsAsync>;
240
253
  protected _parse_arguments(row: DefaultObject): Array<any>;
241
254
  protected _onConflict(resolution?: string | ConflictTypes | ConflictUpsert): string;
@@ -312,6 +325,7 @@ declare class DOQB extends QueryBuilder<{}, false> {
312
325
  constructor(db: any, options?: QueryBuilderOptions<false>);
313
326
  migrations(options: MigrationOptions): syncMigrationsBuilder<{}>;
314
327
  execute(query: Query<any, false>): any;
328
+ lazyExecute(query: Query<any, false>): Iterable<any>;
315
329
  }
316
330
 
317
- 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 };
331
+ 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 };
package/dist/index.js CHANGED
@@ -257,16 +257,16 @@ var SelectBuilder = class _SelectBuilder {
257
257
  this._fetchOne
258
258
  );
259
259
  }
260
- getQueryAll() {
260
+ getQueryAll(options) {
261
261
  return this._fetchAll(this._options);
262
262
  }
263
263
  getQueryOne() {
264
264
  return this._fetchOne(this._options);
265
265
  }
266
- execute() {
266
+ execute(options) {
267
267
  return this._fetchAll(this._options).execute();
268
268
  }
269
- all() {
269
+ all(options) {
270
270
  return this._fetchAll(this._options).execute();
271
271
  }
272
272
  one() {
@@ -346,6 +346,9 @@ var QueryBuilder = class {
346
346
  batchExecute(queryArray) {
347
347
  throw new Error("Batch execute method not implemented");
348
348
  }
349
+ lazyExecute(query) {
350
+ throw new Error("Execute lazyExecute not implemented");
351
+ }
349
352
  createTable(params) {
350
353
  return new Query(
351
354
  (q) => {
@@ -396,15 +399,16 @@ var QueryBuilder = class {
396
399
  fetchAll(params) {
397
400
  return new QueryWithExtra(
398
401
  (q) => {
399
- return this.execute(q);
402
+ return params.lazy ? this.lazyExecute(q) : this.execute(q);
400
403
  },
401
- this._select(params),
404
+ this._select({ ...params, lazy: void 0 }),
402
405
  this._select({
403
406
  ...params,
404
407
  fields: "count(*) as total",
405
408
  offset: void 0,
406
409
  groupBy: void 0,
407
- limit: 1
410
+ limit: 1,
411
+ lazy: void 0
408
412
  }),
409
413
  typeof params.where === "object" && !Array.isArray(params.where) && params.where?.params ? Array.isArray(params.where?.params) ? params.where?.params : [params.where?.params] : void 0,
410
414
  "ALL" /* ALL */
@@ -899,6 +903,17 @@ var DOQB = class extends QueryBuilder {
899
903
  };
900
904
  });
901
905
  }
906
+ lazyExecute(query) {
907
+ return this.loggerWrapper(query, this.options.logger, () => {
908
+ let cursor;
909
+ if (query.arguments) {
910
+ cursor = this.db.exec(query.query, ...query.arguments);
911
+ } else {
912
+ cursor = this.db.exec(query.query);
913
+ }
914
+ return cursor;
915
+ });
916
+ }
902
917
  };
903
918
  // Annotate the CommonJS export names for ESM import in node:
904
919
  0 && (module.exports = {
package/dist/index.mjs CHANGED
@@ -215,16 +215,16 @@ var SelectBuilder = class _SelectBuilder {
215
215
  this._fetchOne
216
216
  );
217
217
  }
218
- getQueryAll() {
218
+ getQueryAll(options) {
219
219
  return this._fetchAll(this._options);
220
220
  }
221
221
  getQueryOne() {
222
222
  return this._fetchOne(this._options);
223
223
  }
224
- execute() {
224
+ execute(options) {
225
225
  return this._fetchAll(this._options).execute();
226
226
  }
227
- all() {
227
+ all(options) {
228
228
  return this._fetchAll(this._options).execute();
229
229
  }
230
230
  one() {
@@ -304,6 +304,9 @@ var QueryBuilder = class {
304
304
  batchExecute(queryArray) {
305
305
  throw new Error("Batch execute method not implemented");
306
306
  }
307
+ lazyExecute(query) {
308
+ throw new Error("Execute lazyExecute not implemented");
309
+ }
307
310
  createTable(params) {
308
311
  return new Query(
309
312
  (q) => {
@@ -354,15 +357,16 @@ var QueryBuilder = class {
354
357
  fetchAll(params) {
355
358
  return new QueryWithExtra(
356
359
  (q) => {
357
- return this.execute(q);
360
+ return params.lazy ? this.lazyExecute(q) : this.execute(q);
358
361
  },
359
- this._select(params),
362
+ this._select({ ...params, lazy: void 0 }),
360
363
  this._select({
361
364
  ...params,
362
365
  fields: "count(*) as total",
363
366
  offset: void 0,
364
367
  groupBy: void 0,
365
- limit: 1
368
+ limit: 1,
369
+ lazy: void 0
366
370
  }),
367
371
  typeof params.where === "object" && !Array.isArray(params.where) && params.where?.params ? Array.isArray(params.where?.params) ? params.where?.params : [params.where?.params] : void 0,
368
372
  "ALL" /* ALL */
@@ -857,6 +861,17 @@ var DOQB = class extends QueryBuilder {
857
861
  };
858
862
  });
859
863
  }
864
+ lazyExecute(query) {
865
+ return this.loggerWrapper(query, this.options.logger, () => {
866
+ let cursor;
867
+ if (query.arguments) {
868
+ cursor = this.db.exec(query.query, ...query.arguments);
869
+ } else {
870
+ cursor = this.db.exec(query.query);
871
+ }
872
+ return cursor;
873
+ });
874
+ }
860
875
  };
861
876
  export {
862
877
  ConflictTypes,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "workers-qb",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
4
4
  "description": "Zero dependencies Query Builder for Cloudflare Workers",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -57,7 +57,7 @@
57
57
  },
58
58
  "devDependencies": {
59
59
  "@biomejs/biome": "1.9.4",
60
- "@cloudflare/vitest-pool-workers": "^0.5.26",
60
+ "@cloudflare/vitest-pool-workers": "^0.6.0",
61
61
  "@cloudflare/workers-types": "^4.20241106.0",
62
62
  "husky": "^9.1.6",
63
63
  "tsup": "^8.3.5",