workers-qb 1.10.2 → 1.11.1
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 +1 -0
- package/dist/index.d.mts +81 -48
- package/dist/index.d.ts +81 -48
- package/dist/index.js +299 -79
- package/dist/index.mjs +296 -76
- package/docs/advanced-queries.md +602 -0
- package/docs/background-writes.md +119 -0
- package/docs/basic-queries.md +527 -0
- package/docs/databases/byodb.md +108 -0
- package/docs/databases/d1.md +229 -0
- package/docs/databases/do.md +266 -0
- package/docs/databases/postgresql.md +206 -0
- package/docs/index.md +32 -0
- package/docs/introduction.md +93 -0
- package/docs/json-queries.md +142 -0
- package/docs/logger.md +45 -0
- package/docs/migrations.md +133 -0
- package/docs/type-check.md +122 -0
- package/package.json +12 -12
package/README.md
CHANGED
package/dist/index.d.mts
CHANGED
|
@@ -40,6 +40,42 @@ declare class QueryWithExtra<GenericResultWrapper, Result = any, IsAsync extends
|
|
|
40
40
|
}
|
|
41
41
|
declare function trimQuery(query: string): string;
|
|
42
42
|
|
|
43
|
+
interface SelectExecuteOptions {
|
|
44
|
+
lazy?: boolean;
|
|
45
|
+
}
|
|
46
|
+
declare class SelectBuilder<GenericResultWrapper, GenericResult = DefaultReturnObject, IsAsync extends boolean = true> {
|
|
47
|
+
_debugger: boolean;
|
|
48
|
+
_options: Partial<SelectAll>;
|
|
49
|
+
_fetchAll: (params: SelectAll) => QueryWithExtra<GenericResultWrapper, any, IsAsync>;
|
|
50
|
+
_fetchOne: (params: SelectOne) => QueryWithExtra<GenericResultWrapper, any, IsAsync>;
|
|
51
|
+
constructor(options: Partial<SelectAll>, fetchAll: (params: SelectAll) => QueryWithExtra<GenericResultWrapper, any, IsAsync>, fetchOne: (params: SelectOne) => QueryWithExtra<GenericResultWrapper, any, IsAsync>);
|
|
52
|
+
setDebugger(state: boolean): void;
|
|
53
|
+
tableName(tableName: SelectAll['tableName']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
54
|
+
fields(fields: SelectAll['fields']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
55
|
+
where(conditions: string | Array<string>, params?: Primitive | Primitive[]): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
56
|
+
whereIn<T extends string | Array<string>, P extends T extends Array<string> ? Primitive[][] : Primitive[]>(fields: T, values: P): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
57
|
+
join(join: SelectAll['join']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
58
|
+
groupBy(groupBy: SelectAll['groupBy']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
59
|
+
having(conditions: string | Array<string>, params?: Primitive | Primitive[]): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
60
|
+
orderBy(orderBy: SelectAll['orderBy']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
61
|
+
offset(offset: SelectAll['offset']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
62
|
+
limit(limit: SelectAll['limit']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
63
|
+
_parseArray(fieldName: string, option: any, value: any): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
64
|
+
getQueryAll<P extends SelectExecuteOptions = SelectExecuteOptions>(options?: P): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync, P extends {
|
|
65
|
+
lazy: true;
|
|
66
|
+
} ? true : false>, IsAsync>;
|
|
67
|
+
getQueryOne(): Query<OneResult<GenericResultWrapper, GenericResult>, IsAsync>;
|
|
68
|
+
execute<P extends SelectExecuteOptions = SelectExecuteOptions>(options?: P): ArrayResult<GenericResultWrapper, GenericResult, IsAsync, P extends {
|
|
69
|
+
lazy: true;
|
|
70
|
+
} ? true : false>;
|
|
71
|
+
all<P extends SelectExecuteOptions = SelectExecuteOptions>(options?: P): ArrayResult<GenericResultWrapper, GenericResult, IsAsync, P extends {
|
|
72
|
+
lazy: true;
|
|
73
|
+
} ? true : false>;
|
|
74
|
+
one(): MaybeAsync<IsAsync, OneResult<GenericResultWrapper, GenericResult>>;
|
|
75
|
+
count(): MaybeAsync<IsAsync, CountResult<GenericResultWrapper>>;
|
|
76
|
+
getOptions(): SelectAll;
|
|
77
|
+
}
|
|
78
|
+
|
|
43
79
|
type OmitIndexSignature<ObjectType> = {
|
|
44
80
|
[KeyType in keyof ObjectType as {} extends Record<KeyType, unknown> ? never : KeyType]: ObjectType[KeyType];
|
|
45
81
|
};
|
|
@@ -54,7 +90,7 @@ type SimpleMerge<Destination, Source> = {
|
|
|
54
90
|
} & Source;
|
|
55
91
|
type Merge<Destination, Source> = Simplify<SimpleMerge<PickIndexSignature<Destination>, PickIndexSignature<Source>> & SimpleMerge<OmitIndexSignature<Destination>, OmitIndexSignature<Source>>>;
|
|
56
92
|
|
|
57
|
-
type Primitive = null | string | number | boolean | bigint | Raw
|
|
93
|
+
type Primitive = null | string | number | boolean | bigint | Raw | SelectAll | SelectBuilder<any, any, any>;
|
|
58
94
|
type QueryLoggerMeta = {
|
|
59
95
|
duration?: number;
|
|
60
96
|
};
|
|
@@ -69,7 +105,7 @@ type Where = {
|
|
|
69
105
|
} | string | Array<string>;
|
|
70
106
|
type Join = {
|
|
71
107
|
type?: string | JoinTypes;
|
|
72
|
-
table: string | SelectAll
|
|
108
|
+
table: string | SelectAll | SelectBuilder<any, any, any>;
|
|
73
109
|
on: string;
|
|
74
110
|
alias?: string;
|
|
75
111
|
};
|
|
@@ -79,9 +115,11 @@ type SelectOne = {
|
|
|
79
115
|
where?: Where;
|
|
80
116
|
join?: Join | Array<Join>;
|
|
81
117
|
groupBy?: string | Array<string>;
|
|
82
|
-
having?:
|
|
118
|
+
having?: Where;
|
|
83
119
|
orderBy?: string | Array<string> | Record<string, string | OrderTypes>;
|
|
84
120
|
offset?: number;
|
|
121
|
+
subQueryPlaceholders?: Record<string, SelectAll>;
|
|
122
|
+
subQueryTokenNextId?: number;
|
|
85
123
|
};
|
|
86
124
|
type RawQuery = {
|
|
87
125
|
query: string;
|
|
@@ -158,9 +196,15 @@ type D1Result = {
|
|
|
158
196
|
duration: number;
|
|
159
197
|
last_row_id?: string | number;
|
|
160
198
|
served_by: string;
|
|
199
|
+
rowsRead?: number;
|
|
200
|
+
rowsWritten?: number;
|
|
161
201
|
meta?: D1Meta;
|
|
162
202
|
success: boolean;
|
|
163
203
|
};
|
|
204
|
+
type DOResult = {
|
|
205
|
+
rowsRead: number;
|
|
206
|
+
rowsWritten: number;
|
|
207
|
+
};
|
|
164
208
|
type PGResult = {
|
|
165
209
|
command: string;
|
|
166
210
|
lastRowId?: string | number;
|
|
@@ -191,41 +235,6 @@ declare function defaultLogger(query: RawQuery, meta: QueryLoggerMeta): any;
|
|
|
191
235
|
declare function asyncLoggerWrapper<Async extends boolean = true>(query: Query<any, Async> | Query<any, Async>[], loggerFunction: CallableFunction | undefined, innerFunction: () => any): Promise<any>;
|
|
192
236
|
declare function syncLoggerWrapper<Async extends boolean = false>(query: Query<any, Async> | Query<any, Async>[], loggerFunction: CallableFunction | undefined, innerFunction: () => any): any;
|
|
193
237
|
|
|
194
|
-
interface SelectExecuteOptions {
|
|
195
|
-
lazy?: boolean;
|
|
196
|
-
}
|
|
197
|
-
declare class SelectBuilder<GenericResultWrapper, GenericResult = DefaultReturnObject, IsAsync extends boolean = true> {
|
|
198
|
-
_debugger: boolean;
|
|
199
|
-
_options: Partial<SelectAll>;
|
|
200
|
-
_fetchAll: (params: SelectAll) => QueryWithExtra<GenericResultWrapper, any, IsAsync>;
|
|
201
|
-
_fetchOne: (params: SelectOne) => QueryWithExtra<GenericResultWrapper, any, IsAsync>;
|
|
202
|
-
constructor(options: Partial<SelectAll>, fetchAll: (params: SelectAll) => QueryWithExtra<GenericResultWrapper, any, IsAsync>, fetchOne: (params: SelectOne) => QueryWithExtra<GenericResultWrapper, any, IsAsync>);
|
|
203
|
-
setDebugger(state: boolean): void;
|
|
204
|
-
tableName(tableName: SelectAll['tableName']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
205
|
-
fields(fields: SelectAll['fields']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
206
|
-
where(conditions: string | Array<string>, params?: Primitive | Primitive[]): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
207
|
-
whereIn<T extends string | Array<string>, P extends T extends Array<string> ? Primitive[][] : Primitive[]>(fields: T, values: P): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
208
|
-
join(join: SelectAll['join']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
209
|
-
groupBy(groupBy: SelectAll['groupBy']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
210
|
-
having(having: SelectAll['having']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
211
|
-
orderBy(orderBy: SelectAll['orderBy']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
212
|
-
offset(offset: SelectAll['offset']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
213
|
-
limit(limit: SelectAll['limit']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
214
|
-
_parseArray(fieldName: string, option: any, value: any): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
215
|
-
getQueryAll<P extends SelectExecuteOptions = SelectExecuteOptions>(options?: P): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync, P extends {
|
|
216
|
-
lazy: true;
|
|
217
|
-
} ? true : false>, IsAsync>;
|
|
218
|
-
getQueryOne(): Query<OneResult<GenericResultWrapper, GenericResult>, IsAsync>;
|
|
219
|
-
execute<P extends SelectExecuteOptions = SelectExecuteOptions>(options?: P): ArrayResult<GenericResultWrapper, GenericResult, IsAsync, P extends {
|
|
220
|
-
lazy: true;
|
|
221
|
-
} ? true : false>;
|
|
222
|
-
all<P extends SelectExecuteOptions = SelectExecuteOptions>(options?: P): ArrayResult<GenericResultWrapper, GenericResult, IsAsync, P extends {
|
|
223
|
-
lazy: true;
|
|
224
|
-
} ? true : false>;
|
|
225
|
-
one(): MaybeAsync<IsAsync, OneResult<GenericResultWrapper, GenericResult>>;
|
|
226
|
-
count(): MaybeAsync<IsAsync, CountResult<GenericResultWrapper>>;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
238
|
declare class QueryBuilder<GenericResultWrapper, IsAsync extends boolean = true> {
|
|
230
239
|
protected options: QueryBuilderOptions<IsAsync>;
|
|
231
240
|
loggerWrapper: typeof asyncLoggerWrapper;
|
|
@@ -263,12 +272,25 @@ declare class QueryBuilder<GenericResultWrapper, IsAsync extends boolean = true>
|
|
|
263
272
|
protected _insert(params: Insert): string;
|
|
264
273
|
protected _update(params: Update): string;
|
|
265
274
|
protected _delete(params: Delete): string;
|
|
266
|
-
protected _select(params: SelectAll): string;
|
|
275
|
+
protected _select(params: SelectAll, queryArgs?: any[]): string;
|
|
267
276
|
protected _fields(value?: string | Array<string>): string;
|
|
268
|
-
protected _where(value
|
|
269
|
-
|
|
277
|
+
protected _where(value: Where | undefined, context?: {
|
|
278
|
+
subQueryPlaceholders?: Record<string, SelectAll>;
|
|
279
|
+
queryArgs: any[];
|
|
280
|
+
toSQLCompiler?: (params: SelectAll, queryArgs: any[]) => string;
|
|
281
|
+
}): string;
|
|
282
|
+
protected _join(value: Join | Array<Join> | undefined, context: {
|
|
283
|
+
subQueryPlaceholders?: Record<string, SelectAll>;
|
|
284
|
+
queryArgs: any[];
|
|
285
|
+
toSQLCompiler: (params: SelectAll, queryArgs: any[]) => string;
|
|
286
|
+
}): string;
|
|
270
287
|
protected _groupBy(value?: string | Array<string>): string;
|
|
271
|
-
protected _having(value
|
|
288
|
+
protected _having(value: Where | undefined, // Using Where type as Having structure is similar for conditions/params
|
|
289
|
+
context: {
|
|
290
|
+
subQueryPlaceholders?: Record<string, SelectAll>;
|
|
291
|
+
queryArgs: any[];
|
|
292
|
+
toSQLCompiler?: (params: SelectAll, queryArgs: any[]) => string;
|
|
293
|
+
}): string;
|
|
272
294
|
protected _orderBy(value?: string | Array<string> | Record<string, string | OrderTypes>): string;
|
|
273
295
|
protected _limit(value?: number): string;
|
|
274
296
|
protected _offset(value?: number): string;
|
|
@@ -309,9 +331,14 @@ declare class asyncMigrationsBuilder<GenericResultWrapper> {
|
|
|
309
331
|
apply(): Promise<Array<Migration>>;
|
|
310
332
|
}
|
|
311
333
|
|
|
334
|
+
interface D1Database {
|
|
335
|
+
prepare: any;
|
|
336
|
+
batch: any;
|
|
337
|
+
exec: any;
|
|
338
|
+
}
|
|
312
339
|
declare class D1QB extends QueryBuilder<D1Result> {
|
|
313
340
|
db: any;
|
|
314
|
-
constructor(db:
|
|
341
|
+
constructor(db: D1Database, options?: QueryBuilderOptions);
|
|
315
342
|
migrations(options: MigrationOptions): asyncMigrationsBuilder<D1Result>;
|
|
316
343
|
execute(query: Query): Promise<any>;
|
|
317
344
|
batchExecute(queryArray: Query[]): Promise<any>;
|
|
@@ -327,13 +354,19 @@ declare class PGQB extends QueryBuilder<PGResult> {
|
|
|
327
354
|
execute(query: Query): Promise<any>;
|
|
328
355
|
}
|
|
329
356
|
|
|
330
|
-
|
|
331
|
-
|
|
357
|
+
interface SqlStorage {
|
|
358
|
+
exec: any;
|
|
359
|
+
prepare: any;
|
|
360
|
+
Cursor: any;
|
|
361
|
+
Statement: any;
|
|
362
|
+
}
|
|
363
|
+
declare class DOQB extends QueryBuilder<DOResult, false> {
|
|
364
|
+
db: SqlStorage;
|
|
332
365
|
loggerWrapper: typeof syncLoggerWrapper;
|
|
333
|
-
constructor(db:
|
|
334
|
-
migrations(options: MigrationOptions): syncMigrationsBuilder<
|
|
366
|
+
constructor(db: SqlStorage, options?: QueryBuilderOptions<false>);
|
|
367
|
+
migrations(options: MigrationOptions): syncMigrationsBuilder<DOResult>;
|
|
335
368
|
execute(query: Query<any, false>): any;
|
|
336
369
|
lazyExecute(query: Query<any, false>): Iterable<any>;
|
|
337
370
|
}
|
|
338
371
|
|
|
339
|
-
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 };
|
|
372
|
+
export { type ArrayResult, type AsyncType, ConflictTypes, type ConflictUpsert, type CountResult, type D1Meta, D1QB, type D1Result, DOQB, type DOResult, 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
|
@@ -40,6 +40,42 @@ declare class QueryWithExtra<GenericResultWrapper, Result = any, IsAsync extends
|
|
|
40
40
|
}
|
|
41
41
|
declare function trimQuery(query: string): string;
|
|
42
42
|
|
|
43
|
+
interface SelectExecuteOptions {
|
|
44
|
+
lazy?: boolean;
|
|
45
|
+
}
|
|
46
|
+
declare class SelectBuilder<GenericResultWrapper, GenericResult = DefaultReturnObject, IsAsync extends boolean = true> {
|
|
47
|
+
_debugger: boolean;
|
|
48
|
+
_options: Partial<SelectAll>;
|
|
49
|
+
_fetchAll: (params: SelectAll) => QueryWithExtra<GenericResultWrapper, any, IsAsync>;
|
|
50
|
+
_fetchOne: (params: SelectOne) => QueryWithExtra<GenericResultWrapper, any, IsAsync>;
|
|
51
|
+
constructor(options: Partial<SelectAll>, fetchAll: (params: SelectAll) => QueryWithExtra<GenericResultWrapper, any, IsAsync>, fetchOne: (params: SelectOne) => QueryWithExtra<GenericResultWrapper, any, IsAsync>);
|
|
52
|
+
setDebugger(state: boolean): void;
|
|
53
|
+
tableName(tableName: SelectAll['tableName']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
54
|
+
fields(fields: SelectAll['fields']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
55
|
+
where(conditions: string | Array<string>, params?: Primitive | Primitive[]): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
56
|
+
whereIn<T extends string | Array<string>, P extends T extends Array<string> ? Primitive[][] : Primitive[]>(fields: T, values: P): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
57
|
+
join(join: SelectAll['join']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
58
|
+
groupBy(groupBy: SelectAll['groupBy']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
59
|
+
having(conditions: string | Array<string>, params?: Primitive | Primitive[]): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
60
|
+
orderBy(orderBy: SelectAll['orderBy']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
61
|
+
offset(offset: SelectAll['offset']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
62
|
+
limit(limit: SelectAll['limit']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
63
|
+
_parseArray(fieldName: string, option: any, value: any): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
64
|
+
getQueryAll<P extends SelectExecuteOptions = SelectExecuteOptions>(options?: P): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync, P extends {
|
|
65
|
+
lazy: true;
|
|
66
|
+
} ? true : false>, IsAsync>;
|
|
67
|
+
getQueryOne(): Query<OneResult<GenericResultWrapper, GenericResult>, IsAsync>;
|
|
68
|
+
execute<P extends SelectExecuteOptions = SelectExecuteOptions>(options?: P): ArrayResult<GenericResultWrapper, GenericResult, IsAsync, P extends {
|
|
69
|
+
lazy: true;
|
|
70
|
+
} ? true : false>;
|
|
71
|
+
all<P extends SelectExecuteOptions = SelectExecuteOptions>(options?: P): ArrayResult<GenericResultWrapper, GenericResult, IsAsync, P extends {
|
|
72
|
+
lazy: true;
|
|
73
|
+
} ? true : false>;
|
|
74
|
+
one(): MaybeAsync<IsAsync, OneResult<GenericResultWrapper, GenericResult>>;
|
|
75
|
+
count(): MaybeAsync<IsAsync, CountResult<GenericResultWrapper>>;
|
|
76
|
+
getOptions(): SelectAll;
|
|
77
|
+
}
|
|
78
|
+
|
|
43
79
|
type OmitIndexSignature<ObjectType> = {
|
|
44
80
|
[KeyType in keyof ObjectType as {} extends Record<KeyType, unknown> ? never : KeyType]: ObjectType[KeyType];
|
|
45
81
|
};
|
|
@@ -54,7 +90,7 @@ type SimpleMerge<Destination, Source> = {
|
|
|
54
90
|
} & Source;
|
|
55
91
|
type Merge<Destination, Source> = Simplify<SimpleMerge<PickIndexSignature<Destination>, PickIndexSignature<Source>> & SimpleMerge<OmitIndexSignature<Destination>, OmitIndexSignature<Source>>>;
|
|
56
92
|
|
|
57
|
-
type Primitive = null | string | number | boolean | bigint | Raw
|
|
93
|
+
type Primitive = null | string | number | boolean | bigint | Raw | SelectAll | SelectBuilder<any, any, any>;
|
|
58
94
|
type QueryLoggerMeta = {
|
|
59
95
|
duration?: number;
|
|
60
96
|
};
|
|
@@ -69,7 +105,7 @@ type Where = {
|
|
|
69
105
|
} | string | Array<string>;
|
|
70
106
|
type Join = {
|
|
71
107
|
type?: string | JoinTypes;
|
|
72
|
-
table: string | SelectAll
|
|
108
|
+
table: string | SelectAll | SelectBuilder<any, any, any>;
|
|
73
109
|
on: string;
|
|
74
110
|
alias?: string;
|
|
75
111
|
};
|
|
@@ -79,9 +115,11 @@ type SelectOne = {
|
|
|
79
115
|
where?: Where;
|
|
80
116
|
join?: Join | Array<Join>;
|
|
81
117
|
groupBy?: string | Array<string>;
|
|
82
|
-
having?:
|
|
118
|
+
having?: Where;
|
|
83
119
|
orderBy?: string | Array<string> | Record<string, string | OrderTypes>;
|
|
84
120
|
offset?: number;
|
|
121
|
+
subQueryPlaceholders?: Record<string, SelectAll>;
|
|
122
|
+
subQueryTokenNextId?: number;
|
|
85
123
|
};
|
|
86
124
|
type RawQuery = {
|
|
87
125
|
query: string;
|
|
@@ -158,9 +196,15 @@ type D1Result = {
|
|
|
158
196
|
duration: number;
|
|
159
197
|
last_row_id?: string | number;
|
|
160
198
|
served_by: string;
|
|
199
|
+
rowsRead?: number;
|
|
200
|
+
rowsWritten?: number;
|
|
161
201
|
meta?: D1Meta;
|
|
162
202
|
success: boolean;
|
|
163
203
|
};
|
|
204
|
+
type DOResult = {
|
|
205
|
+
rowsRead: number;
|
|
206
|
+
rowsWritten: number;
|
|
207
|
+
};
|
|
164
208
|
type PGResult = {
|
|
165
209
|
command: string;
|
|
166
210
|
lastRowId?: string | number;
|
|
@@ -191,41 +235,6 @@ declare function defaultLogger(query: RawQuery, meta: QueryLoggerMeta): any;
|
|
|
191
235
|
declare function asyncLoggerWrapper<Async extends boolean = true>(query: Query<any, Async> | Query<any, Async>[], loggerFunction: CallableFunction | undefined, innerFunction: () => any): Promise<any>;
|
|
192
236
|
declare function syncLoggerWrapper<Async extends boolean = false>(query: Query<any, Async> | Query<any, Async>[], loggerFunction: CallableFunction | undefined, innerFunction: () => any): any;
|
|
193
237
|
|
|
194
|
-
interface SelectExecuteOptions {
|
|
195
|
-
lazy?: boolean;
|
|
196
|
-
}
|
|
197
|
-
declare class SelectBuilder<GenericResultWrapper, GenericResult = DefaultReturnObject, IsAsync extends boolean = true> {
|
|
198
|
-
_debugger: boolean;
|
|
199
|
-
_options: Partial<SelectAll>;
|
|
200
|
-
_fetchAll: (params: SelectAll) => QueryWithExtra<GenericResultWrapper, any, IsAsync>;
|
|
201
|
-
_fetchOne: (params: SelectOne) => QueryWithExtra<GenericResultWrapper, any, IsAsync>;
|
|
202
|
-
constructor(options: Partial<SelectAll>, fetchAll: (params: SelectAll) => QueryWithExtra<GenericResultWrapper, any, IsAsync>, fetchOne: (params: SelectOne) => QueryWithExtra<GenericResultWrapper, any, IsAsync>);
|
|
203
|
-
setDebugger(state: boolean): void;
|
|
204
|
-
tableName(tableName: SelectAll['tableName']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
205
|
-
fields(fields: SelectAll['fields']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
206
|
-
where(conditions: string | Array<string>, params?: Primitive | Primitive[]): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
207
|
-
whereIn<T extends string | Array<string>, P extends T extends Array<string> ? Primitive[][] : Primitive[]>(fields: T, values: P): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
208
|
-
join(join: SelectAll['join']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
209
|
-
groupBy(groupBy: SelectAll['groupBy']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
210
|
-
having(having: SelectAll['having']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
211
|
-
orderBy(orderBy: SelectAll['orderBy']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
212
|
-
offset(offset: SelectAll['offset']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
213
|
-
limit(limit: SelectAll['limit']): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
214
|
-
_parseArray(fieldName: string, option: any, value: any): SelectBuilder<GenericResultWrapper, GenericResult, IsAsync>;
|
|
215
|
-
getQueryAll<P extends SelectExecuteOptions = SelectExecuteOptions>(options?: P): Query<ArrayResult<GenericResultWrapper, GenericResult, IsAsync, P extends {
|
|
216
|
-
lazy: true;
|
|
217
|
-
} ? true : false>, IsAsync>;
|
|
218
|
-
getQueryOne(): Query<OneResult<GenericResultWrapper, GenericResult>, IsAsync>;
|
|
219
|
-
execute<P extends SelectExecuteOptions = SelectExecuteOptions>(options?: P): ArrayResult<GenericResultWrapper, GenericResult, IsAsync, P extends {
|
|
220
|
-
lazy: true;
|
|
221
|
-
} ? true : false>;
|
|
222
|
-
all<P extends SelectExecuteOptions = SelectExecuteOptions>(options?: P): ArrayResult<GenericResultWrapper, GenericResult, IsAsync, P extends {
|
|
223
|
-
lazy: true;
|
|
224
|
-
} ? true : false>;
|
|
225
|
-
one(): MaybeAsync<IsAsync, OneResult<GenericResultWrapper, GenericResult>>;
|
|
226
|
-
count(): MaybeAsync<IsAsync, CountResult<GenericResultWrapper>>;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
238
|
declare class QueryBuilder<GenericResultWrapper, IsAsync extends boolean = true> {
|
|
230
239
|
protected options: QueryBuilderOptions<IsAsync>;
|
|
231
240
|
loggerWrapper: typeof asyncLoggerWrapper;
|
|
@@ -263,12 +272,25 @@ declare class QueryBuilder<GenericResultWrapper, IsAsync extends boolean = true>
|
|
|
263
272
|
protected _insert(params: Insert): string;
|
|
264
273
|
protected _update(params: Update): string;
|
|
265
274
|
protected _delete(params: Delete): string;
|
|
266
|
-
protected _select(params: SelectAll): string;
|
|
275
|
+
protected _select(params: SelectAll, queryArgs?: any[]): string;
|
|
267
276
|
protected _fields(value?: string | Array<string>): string;
|
|
268
|
-
protected _where(value
|
|
269
|
-
|
|
277
|
+
protected _where(value: Where | undefined, context?: {
|
|
278
|
+
subQueryPlaceholders?: Record<string, SelectAll>;
|
|
279
|
+
queryArgs: any[];
|
|
280
|
+
toSQLCompiler?: (params: SelectAll, queryArgs: any[]) => string;
|
|
281
|
+
}): string;
|
|
282
|
+
protected _join(value: Join | Array<Join> | undefined, context: {
|
|
283
|
+
subQueryPlaceholders?: Record<string, SelectAll>;
|
|
284
|
+
queryArgs: any[];
|
|
285
|
+
toSQLCompiler: (params: SelectAll, queryArgs: any[]) => string;
|
|
286
|
+
}): string;
|
|
270
287
|
protected _groupBy(value?: string | Array<string>): string;
|
|
271
|
-
protected _having(value
|
|
288
|
+
protected _having(value: Where | undefined, // Using Where type as Having structure is similar for conditions/params
|
|
289
|
+
context: {
|
|
290
|
+
subQueryPlaceholders?: Record<string, SelectAll>;
|
|
291
|
+
queryArgs: any[];
|
|
292
|
+
toSQLCompiler?: (params: SelectAll, queryArgs: any[]) => string;
|
|
293
|
+
}): string;
|
|
272
294
|
protected _orderBy(value?: string | Array<string> | Record<string, string | OrderTypes>): string;
|
|
273
295
|
protected _limit(value?: number): string;
|
|
274
296
|
protected _offset(value?: number): string;
|
|
@@ -309,9 +331,14 @@ declare class asyncMigrationsBuilder<GenericResultWrapper> {
|
|
|
309
331
|
apply(): Promise<Array<Migration>>;
|
|
310
332
|
}
|
|
311
333
|
|
|
334
|
+
interface D1Database {
|
|
335
|
+
prepare: any;
|
|
336
|
+
batch: any;
|
|
337
|
+
exec: any;
|
|
338
|
+
}
|
|
312
339
|
declare class D1QB extends QueryBuilder<D1Result> {
|
|
313
340
|
db: any;
|
|
314
|
-
constructor(db:
|
|
341
|
+
constructor(db: D1Database, options?: QueryBuilderOptions);
|
|
315
342
|
migrations(options: MigrationOptions): asyncMigrationsBuilder<D1Result>;
|
|
316
343
|
execute(query: Query): Promise<any>;
|
|
317
344
|
batchExecute(queryArray: Query[]): Promise<any>;
|
|
@@ -327,13 +354,19 @@ declare class PGQB extends QueryBuilder<PGResult> {
|
|
|
327
354
|
execute(query: Query): Promise<any>;
|
|
328
355
|
}
|
|
329
356
|
|
|
330
|
-
|
|
331
|
-
|
|
357
|
+
interface SqlStorage {
|
|
358
|
+
exec: any;
|
|
359
|
+
prepare: any;
|
|
360
|
+
Cursor: any;
|
|
361
|
+
Statement: any;
|
|
362
|
+
}
|
|
363
|
+
declare class DOQB extends QueryBuilder<DOResult, false> {
|
|
364
|
+
db: SqlStorage;
|
|
332
365
|
loggerWrapper: typeof syncLoggerWrapper;
|
|
333
|
-
constructor(db:
|
|
334
|
-
migrations(options: MigrationOptions): syncMigrationsBuilder<
|
|
366
|
+
constructor(db: SqlStorage, options?: QueryBuilderOptions<false>);
|
|
367
|
+
migrations(options: MigrationOptions): syncMigrationsBuilder<DOResult>;
|
|
335
368
|
execute(query: Query<any, false>): any;
|
|
336
369
|
lazyExecute(query: Query<any, false>): Iterable<any>;
|
|
337
370
|
}
|
|
338
371
|
|
|
339
|
-
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 };
|
|
372
|
+
export { type ArrayResult, type AsyncType, ConflictTypes, type ConflictUpsert, type CountResult, type D1Meta, D1QB, type D1Result, DOQB, type DOResult, 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 };
|