@forgebase/sdk 0.0.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/LICENSE +21 -0
- package/README.md +390 -0
- package/dist/cjs/database/client/client.d.ts +470 -0
- package/dist/cjs/database/client/client.d.ts.map +1 -0
- package/dist/cjs/database/client/client.js +812 -0
- package/dist/cjs/database/client/client.js.map +1 -0
- package/dist/cjs/database/client/index.d.ts +2 -0
- package/dist/cjs/database/client/index.d.ts.map +1 -0
- package/dist/cjs/database/client/index.js +18 -0
- package/dist/cjs/database/client/index.js.map +1 -0
- package/dist/cjs/database/examples.d.ts +70 -0
- package/dist/cjs/database/examples.d.ts.map +1 -0
- package/dist/cjs/database/examples.js +239 -0
- package/dist/cjs/database/examples.js.map +1 -0
- package/dist/cjs/database/server/index.d.ts +2 -0
- package/dist/cjs/database/server/index.d.ts.map +1 -0
- package/dist/cjs/database/server/index.js +18 -0
- package/dist/cjs/database/server/index.js.map +1 -0
- package/dist/cjs/database/server/server.d.ts +2 -0
- package/dist/cjs/database/server/server.d.ts.map +1 -0
- package/dist/cjs/database/server/server.js +6 -0
- package/dist/cjs/database/server/server.js.map +1 -0
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +19 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/esm/database/client/client.d.ts +470 -0
- package/dist/esm/database/client/client.d.ts.map +1 -0
- package/dist/esm/database/client/client.js +805 -0
- package/dist/esm/database/client/client.js.map +1 -0
- package/dist/esm/database/client/index.d.ts +2 -0
- package/dist/esm/database/client/index.d.ts.map +1 -0
- package/dist/esm/database/client/index.js +2 -0
- package/dist/esm/database/client/index.js.map +1 -0
- package/dist/esm/database/examples.d.ts +70 -0
- package/dist/esm/database/examples.d.ts.map +1 -0
- package/dist/esm/database/examples.js +236 -0
- package/dist/esm/database/examples.js.map +1 -0
- package/dist/esm/database/server/index.d.ts +2 -0
- package/dist/esm/database/server/index.d.ts.map +1 -0
- package/dist/esm/database/server/index.js +2 -0
- package/dist/esm/database/server/index.js.map +1 -0
- package/dist/esm/database/server/server.d.ts +2 -0
- package/dist/esm/database/server/server.d.ts.map +1 -0
- package/dist/esm/database/server/server.js +2 -0
- package/dist/esm/database/server/server.js.map +1 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,470 @@
|
|
|
1
|
+
import { AxiosInstance, AxiosRequestConfig } from 'axios';
|
|
2
|
+
type FieldKeys<T> = keyof T;
|
|
3
|
+
export type WhereOperator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'like' | 'in' | 'not in' | 'between' | 'is null' | 'is not null';
|
|
4
|
+
export type GroupOperator = 'AND' | 'OR';
|
|
5
|
+
export interface WhereClause<T> {
|
|
6
|
+
field: FieldKeys<T>;
|
|
7
|
+
operator: WhereOperator;
|
|
8
|
+
value: any;
|
|
9
|
+
boolean?: GroupOperator;
|
|
10
|
+
}
|
|
11
|
+
export interface WhereGroup<T> {
|
|
12
|
+
type: GroupOperator;
|
|
13
|
+
clauses: (WhereClause<T> | WhereGroup<T>)[];
|
|
14
|
+
}
|
|
15
|
+
export interface WhereBetweenClause<T> {
|
|
16
|
+
field: FieldKeys<T>;
|
|
17
|
+
operator: 'between';
|
|
18
|
+
value: [any, any];
|
|
19
|
+
boolean?: GroupOperator;
|
|
20
|
+
}
|
|
21
|
+
export interface OrderByClause<T> {
|
|
22
|
+
field: FieldKeys<T>;
|
|
23
|
+
direction?: 'asc' | 'desc';
|
|
24
|
+
nulls?: 'first' | 'last';
|
|
25
|
+
}
|
|
26
|
+
export interface RawExpression {
|
|
27
|
+
sql: string;
|
|
28
|
+
bindings?: any[];
|
|
29
|
+
}
|
|
30
|
+
export interface HavingClause<T> {
|
|
31
|
+
field: FieldKeys<T>;
|
|
32
|
+
operator: WhereOperator;
|
|
33
|
+
value: any;
|
|
34
|
+
}
|
|
35
|
+
export interface AggregateOptions<T> {
|
|
36
|
+
type: 'count' | 'sum' | 'avg' | 'min' | 'max';
|
|
37
|
+
field: FieldKeys<T>;
|
|
38
|
+
alias?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface WindowFunction<T> {
|
|
41
|
+
type: 'row_number' | 'rank' | 'dense_rank' | 'lag' | 'lead' | 'first_value' | 'last_value' | 'sum' | 'avg' | 'count' | 'min' | 'max' | 'nth_value' | 'ntile';
|
|
42
|
+
field?: FieldKeys<T>;
|
|
43
|
+
alias: string;
|
|
44
|
+
partitionBy?: FieldKeys<T>[];
|
|
45
|
+
orderBy?: OrderByClause<T>[];
|
|
46
|
+
frameClause?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface CTE<T extends Record<string, any>> {
|
|
49
|
+
name: string;
|
|
50
|
+
query: QueryBuilder<T>;
|
|
51
|
+
columns?: FieldKeys<T>[];
|
|
52
|
+
}
|
|
53
|
+
export interface TransformConfig<T> {
|
|
54
|
+
groupBy?: string[];
|
|
55
|
+
pivot?: {
|
|
56
|
+
column: string;
|
|
57
|
+
values: string[];
|
|
58
|
+
aggregate: AggregateOptions<T>;
|
|
59
|
+
};
|
|
60
|
+
flatten?: boolean;
|
|
61
|
+
select?: FieldKeys<T>[];
|
|
62
|
+
compute?: Record<string, (row: any) => any>;
|
|
63
|
+
}
|
|
64
|
+
export interface ExplainOptions {
|
|
65
|
+
analyze?: boolean;
|
|
66
|
+
verbose?: boolean;
|
|
67
|
+
format?: 'text' | 'json';
|
|
68
|
+
}
|
|
69
|
+
export interface RecursiveCTE<T extends Record<string, any>> extends CTE<T> {
|
|
70
|
+
isRecursive: true;
|
|
71
|
+
initialQuery: QueryBuilder<T>;
|
|
72
|
+
recursiveQuery: QueryBuilder<T>;
|
|
73
|
+
unionAll?: boolean;
|
|
74
|
+
}
|
|
75
|
+
export interface WindowFunctionAdvanced<T> extends WindowFunction<T> {
|
|
76
|
+
over?: {
|
|
77
|
+
partitionBy?: FieldKeys<T>[];
|
|
78
|
+
orderBy?: OrderByClause<T>[];
|
|
79
|
+
frame?: {
|
|
80
|
+
type: 'ROWS' | 'RANGE';
|
|
81
|
+
start: 'UNBOUNDED PRECEDING' | 'CURRENT ROW' | number;
|
|
82
|
+
end?: 'UNBOUNDED FOLLOWING' | 'CURRENT ROW' | number;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
filter?: WhereClause<T>[];
|
|
86
|
+
}
|
|
87
|
+
export interface CacheConfig<T extends Record<string, any>> {
|
|
88
|
+
ttl: number;
|
|
89
|
+
key?: string;
|
|
90
|
+
tags?: string[];
|
|
91
|
+
condition?: (params: QueryParams<T>) => boolean;
|
|
92
|
+
}
|
|
93
|
+
export interface QueryValidation {
|
|
94
|
+
rules: {
|
|
95
|
+
maxLimit?: number;
|
|
96
|
+
requiredFields?: string[];
|
|
97
|
+
disallowedFields?: string[];
|
|
98
|
+
maxComplexity?: number;
|
|
99
|
+
};
|
|
100
|
+
suggestions?: boolean;
|
|
101
|
+
}
|
|
102
|
+
export interface QueryParams<T extends Record<string, any>> {
|
|
103
|
+
filter?: Partial<T>;
|
|
104
|
+
whereRaw?: WhereClause<T>[];
|
|
105
|
+
whereBetween?: WhereBetweenClause<T>[];
|
|
106
|
+
whereNull?: FieldKeys<T>[];
|
|
107
|
+
whereNotNull?: FieldKeys<T>[];
|
|
108
|
+
whereIn?: {
|
|
109
|
+
[K in FieldKeys<T>]?: any[];
|
|
110
|
+
};
|
|
111
|
+
whereNotIn?: {
|
|
112
|
+
[K in FieldKeys<T>]?: any[];
|
|
113
|
+
};
|
|
114
|
+
whereExists?: SubQueryConfig[];
|
|
115
|
+
whereGroups?: WhereGroup<T>[];
|
|
116
|
+
orderBy?: OrderByClause<T>[];
|
|
117
|
+
groupBy?: FieldKeys<T>[];
|
|
118
|
+
having?: HavingClause<T>[];
|
|
119
|
+
aggregates?: AggregateOptions<T>[];
|
|
120
|
+
limit?: number;
|
|
121
|
+
offset?: number;
|
|
122
|
+
windowFunctions?: WindowFunction<T>[];
|
|
123
|
+
ctes?: CTE<T>[];
|
|
124
|
+
transforms?: TransformConfig<T>;
|
|
125
|
+
explain?: ExplainOptions;
|
|
126
|
+
recursiveCtes?: RecursiveCTE<T>[];
|
|
127
|
+
advancedWindows?: WindowFunctionAdvanced<T>[];
|
|
128
|
+
select?: FieldKeys<T>[];
|
|
129
|
+
}
|
|
130
|
+
export interface SubQueryConfig {
|
|
131
|
+
tableName: string;
|
|
132
|
+
params: QueryParams<any>;
|
|
133
|
+
joinCondition?: {
|
|
134
|
+
leftField: string;
|
|
135
|
+
operator: WhereOperator;
|
|
136
|
+
rightField: string;
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
export interface QueryOptions {
|
|
140
|
+
execute?: boolean;
|
|
141
|
+
}
|
|
142
|
+
export interface ApiResponse<T extends Record<string, any>> {
|
|
143
|
+
records?: T[];
|
|
144
|
+
params?: QueryParams<T>;
|
|
145
|
+
message?: string;
|
|
146
|
+
error?: string;
|
|
147
|
+
id?: number;
|
|
148
|
+
}
|
|
149
|
+
export interface AuthInterceptors {
|
|
150
|
+
request: (config: any) => Promise<any> | any;
|
|
151
|
+
response: {
|
|
152
|
+
onFulfilled: (response: any) => Promise<any> | any;
|
|
153
|
+
onRejected: (error: any) => Promise<any> | any;
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
export declare class DatabaseSDK {
|
|
157
|
+
private baseUrl;
|
|
158
|
+
private axiosInstance;
|
|
159
|
+
/**
|
|
160
|
+
* Create a new DatabaseSDK instance
|
|
161
|
+
* @param baseUrl The base URL for API requests
|
|
162
|
+
* @param axiosInstance Optional custom axios instance (e.g., from ForgebaseAuth)
|
|
163
|
+
* @param axiosConfig Optional axios configuration
|
|
164
|
+
* @param authInterceptors Optional auth interceptors to apply to the axios instance
|
|
165
|
+
*/
|
|
166
|
+
constructor(options: {
|
|
167
|
+
baseUrl: string;
|
|
168
|
+
axiosInstance?: AxiosInstance;
|
|
169
|
+
axiosConfig?: AxiosRequestConfig;
|
|
170
|
+
authInterceptors?: AuthInterceptors;
|
|
171
|
+
});
|
|
172
|
+
/**
|
|
173
|
+
* Get the base URL used for API requests
|
|
174
|
+
* @returns The base URL string
|
|
175
|
+
*/
|
|
176
|
+
getBaseUrl(): string;
|
|
177
|
+
/**
|
|
178
|
+
* Set a new base URL for API requests
|
|
179
|
+
* @param baseUrl The new base URL to use
|
|
180
|
+
*/
|
|
181
|
+
setBaseUrl(baseUrl: string): void;
|
|
182
|
+
/**
|
|
183
|
+
* Get the axios instance used for API requests
|
|
184
|
+
* @returns The axios instance
|
|
185
|
+
*/
|
|
186
|
+
getAxiosInstance(): AxiosInstance;
|
|
187
|
+
/**
|
|
188
|
+
* Set a new axios instance for API requests
|
|
189
|
+
* @param axiosInstance The new axios instance to use
|
|
190
|
+
*/
|
|
191
|
+
setAxiosInstance(axiosInstance: AxiosInstance): void;
|
|
192
|
+
/**
|
|
193
|
+
* Apply auth interceptors to the axios instance
|
|
194
|
+
* @param authInterceptors The auth interceptors to apply
|
|
195
|
+
*/
|
|
196
|
+
applyAuthInterceptors(authInterceptors: AuthInterceptors): void;
|
|
197
|
+
/**
|
|
198
|
+
* Fetches records from a specified table with filtering and pagination
|
|
199
|
+
* @param tableName The name of the table to query
|
|
200
|
+
* @param params Query parameters including filters and pagination
|
|
201
|
+
* @param options Query options
|
|
202
|
+
* @param axiosConfig Custom axios config for this specific request
|
|
203
|
+
* @returns Promise containing the fetched records
|
|
204
|
+
*/
|
|
205
|
+
getRecords<T extends Record<string, any>>(tableName: string, params?: QueryParams<T>, options?: QueryOptions, axiosConfig?: AxiosRequestConfig): Promise<ApiResponse<T>>;
|
|
206
|
+
/**
|
|
207
|
+
* Creates a new record in the specified table
|
|
208
|
+
* @param tableName The name of the table to create the record in
|
|
209
|
+
* @param data The data to create the record with
|
|
210
|
+
* @param axiosConfig Custom axios config for this specific request
|
|
211
|
+
* @returns Promise containing the created record
|
|
212
|
+
*/
|
|
213
|
+
createRecord<T extends Record<string, any>>(tableName: string, data: T, axiosConfig?: AxiosRequestConfig): Promise<ApiResponse<T>>;
|
|
214
|
+
/**
|
|
215
|
+
* Updates a record by ID in the specified table
|
|
216
|
+
* @param tableName The name of the table containing the record to update
|
|
217
|
+
* @param id The ID of the record to update
|
|
218
|
+
* @param data The data to update the record with
|
|
219
|
+
* @param axiosConfig Custom axios config for this specific request
|
|
220
|
+
* @returns Promise containing the updated record
|
|
221
|
+
*/
|
|
222
|
+
updateRecord<T extends Record<string, any>>(tableName: string, id: number | string, data: Partial<T>, axiosConfig?: AxiosRequestConfig): Promise<ApiResponse<T>>;
|
|
223
|
+
/**
|
|
224
|
+
* Updates records by Complex Query from the specified table
|
|
225
|
+
* @param tableName The name of the table containing the record to delete
|
|
226
|
+
* @param params Query parameters including filters and pagination
|
|
227
|
+
* @param options Query options
|
|
228
|
+
* @param data The data to update the record with
|
|
229
|
+
* @param axiosConfig Custom axios config for this specific request
|
|
230
|
+
* @returns Promise containing the result of the deletion
|
|
231
|
+
*/
|
|
232
|
+
advanceUpdateRecord<T extends Record<string, any>>(tableName: string, data: Partial<T>, params?: QueryParams<T>, options?: QueryOptions, axiosConfig?: AxiosRequestConfig): Promise<ApiResponse<any>>;
|
|
233
|
+
/**
|
|
234
|
+
* Deletes a record by ID from the specified table
|
|
235
|
+
* @param tableName The name of the table containing the record to delete
|
|
236
|
+
* @param id The ID of the record to delete
|
|
237
|
+
* @param axiosConfig Custom axios config for this specific request
|
|
238
|
+
* @returns Promise containing the result of the deletion
|
|
239
|
+
*/
|
|
240
|
+
deleteRecord<T extends Record<string, any>>(tableName: string, id: number | string, axiosConfig?: AxiosRequestConfig): Promise<ApiResponse<any>>;
|
|
241
|
+
/**
|
|
242
|
+
* Deletes records by Complex Query from the specified table
|
|
243
|
+
* @param tableName The name of the table containing the record to delete
|
|
244
|
+
* @param params Query parameters including filters and pagination
|
|
245
|
+
* @param options Query options
|
|
246
|
+
* @param axiosConfig Custom axios config for this specific request
|
|
247
|
+
* @returns Promise containing the result of the deletion
|
|
248
|
+
*/
|
|
249
|
+
advanceDeleteRecord<T extends Record<string, any>>(tableName: string, params?: QueryParams<T>, options?: QueryOptions, axiosConfig?: AxiosRequestConfig): Promise<ApiResponse<any>>;
|
|
250
|
+
/**
|
|
251
|
+
* Helper method to create a query builder for fluent API usage
|
|
252
|
+
* @param tableName The name of the table to query
|
|
253
|
+
*/
|
|
254
|
+
table<T extends Record<string, any>>(tableName: string): QueryBuilder<T>;
|
|
255
|
+
/**
|
|
256
|
+
* Validates data object
|
|
257
|
+
*/
|
|
258
|
+
private validateData;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Query builder class for more fluent API usage
|
|
262
|
+
*/
|
|
263
|
+
declare class QueryBuilder<T extends Record<string, any>> {
|
|
264
|
+
private sdk;
|
|
265
|
+
private tableName;
|
|
266
|
+
private params;
|
|
267
|
+
private currentGroup?;
|
|
268
|
+
private ctes;
|
|
269
|
+
constructor(sdk: DatabaseSDK, tableName: string);
|
|
270
|
+
/**
|
|
271
|
+
* Add a recursive CTE
|
|
272
|
+
*/
|
|
273
|
+
withRecursive(name: string, initialQuery: QueryBuilder<T>, recursiveQuery: QueryBuilder<T>, options?: {
|
|
274
|
+
unionAll?: boolean;
|
|
275
|
+
columns?: string[];
|
|
276
|
+
}): this;
|
|
277
|
+
/**
|
|
278
|
+
* Advanced window function
|
|
279
|
+
*/
|
|
280
|
+
windowAdvanced(type: WindowFunction<T>['type'], alias: string, config: Partial<WindowFunctionAdvanced<T>>): this;
|
|
281
|
+
/**
|
|
282
|
+
* Add a window function
|
|
283
|
+
*/
|
|
284
|
+
window(type: WindowFunction<T>['type'], alias: string, config?: Partial<Omit<WindowFunction<T>, 'type' | 'alias'>>): this;
|
|
285
|
+
/**
|
|
286
|
+
* Add common window functions
|
|
287
|
+
*/
|
|
288
|
+
rowNumber(alias: string, partitionBy?: string[], orderBy?: OrderByClause<T>[]): this;
|
|
289
|
+
rank(alias: string, partitionBy?: string[], orderBy?: OrderByClause<T>[]): this;
|
|
290
|
+
lag(field: string, alias: string, partitionBy?: string[], orderBy?: OrderByClause<T>[]): this;
|
|
291
|
+
lead(field: string, alias: string, partitionBy?: string[], orderBy?: OrderByClause<T>[]): this;
|
|
292
|
+
/**
|
|
293
|
+
* Add a CTE (WITH clause)
|
|
294
|
+
*/
|
|
295
|
+
with(name: string, queryOrCallback: QueryBuilder<T> | ((query: QueryBuilder<T>) => void), columns?: FieldKeys<T>[]): this;
|
|
296
|
+
/**
|
|
297
|
+
* Transform the result set
|
|
298
|
+
*/
|
|
299
|
+
transform(config: TransformConfig<T>): this;
|
|
300
|
+
/**
|
|
301
|
+
* Pivot the result set
|
|
302
|
+
*/
|
|
303
|
+
pivot(column: string, values: string[], aggregate: AggregateOptions<T>): this;
|
|
304
|
+
/**
|
|
305
|
+
* Compute new fields from existing ones
|
|
306
|
+
*/
|
|
307
|
+
compute(computations: Record<string, (row: T) => any>): this;
|
|
308
|
+
/**
|
|
309
|
+
* Add a where clause
|
|
310
|
+
* @param field The field to filter on
|
|
311
|
+
* @param operator The comparison operator
|
|
312
|
+
* @param value The value to compare against
|
|
313
|
+
* @returns The query builder instance
|
|
314
|
+
* @example
|
|
315
|
+
* db.table<User>("users").where("status", "active").execute();
|
|
316
|
+
* db.table<User>("users").where("age", ">", 18).execute();
|
|
317
|
+
* db.table<User>("users").where("role", "in", ["admin", "manager"]).execute();
|
|
318
|
+
* db.table<User>("users").where("created_at", "is not null").execute();
|
|
319
|
+
* db.table<User>("users").where("name", "like", "%doe%").execute();
|
|
320
|
+
* db.table<User>("users").where("id", 1).execute();
|
|
321
|
+
* db.table<User>("users").where({ status: "active", role: "admin" }).execute();
|
|
322
|
+
* db.table<User>("users").where("age", ">=", 18).where("role", "manager").execute();
|
|
323
|
+
* db.table<User>("users").where("age", ">=", 18).orWhere((query) => {
|
|
324
|
+
* query.where("role", "manager").where("department", "IT");
|
|
325
|
+
* }).execute();
|
|
326
|
+
*/
|
|
327
|
+
where(field: FieldKeys<T>, operator: WhereOperator, value: any): this;
|
|
328
|
+
where(field: FieldKeys<T>, value: any): this;
|
|
329
|
+
where(conditions: Record<FieldKeys<T>, any>): this;
|
|
330
|
+
whereBetween(field: FieldKeys<T>, range: [any, any]): this;
|
|
331
|
+
whereIn(field: FieldKeys<T>, values: any[]): this;
|
|
332
|
+
whereNotIn(field: FieldKeys<T>, values: any[]): this;
|
|
333
|
+
whereNull(field: FieldKeys<T>): this;
|
|
334
|
+
whereNotNull(field: FieldKeys<T>): this;
|
|
335
|
+
orderBy(field: FieldKeys<T>, direction?: 'asc' | 'desc', nulls?: 'first' | 'last'): this;
|
|
336
|
+
orderBy(options: OrderByClause<T>): this;
|
|
337
|
+
limit(limit: number): this;
|
|
338
|
+
offset(offset: number): this;
|
|
339
|
+
/**
|
|
340
|
+
* Start an OR where group
|
|
341
|
+
*/
|
|
342
|
+
orWhere(callback: (query: QueryBuilder<T>) => void): this;
|
|
343
|
+
/**
|
|
344
|
+
* Start an AND where group
|
|
345
|
+
*/
|
|
346
|
+
andWhere(callback: (query: QueryBuilder<T>) => void): this;
|
|
347
|
+
/**
|
|
348
|
+
* Create a where group with the specified operator
|
|
349
|
+
*/
|
|
350
|
+
private whereGroup;
|
|
351
|
+
/**
|
|
352
|
+
* Add a where exists clause using a subquery
|
|
353
|
+
* @param subqueryBuilder A function that returns a configured query builder for the subquery
|
|
354
|
+
* @returns The query builder instance
|
|
355
|
+
* @example
|
|
356
|
+
* db.table<User>("users")
|
|
357
|
+
* .whereExists((subquery) =>
|
|
358
|
+
* subquery.table("orders")
|
|
359
|
+
* .where("orders.user_id", "=", "users.id")
|
|
360
|
+
* .where("total", ">", 1000)
|
|
361
|
+
* )
|
|
362
|
+
* .execute();
|
|
363
|
+
*/
|
|
364
|
+
whereExists(subqueryBuilder: (qb: DatabaseSDK) => QueryBuilder<any>): this;
|
|
365
|
+
/**
|
|
366
|
+
* Add a where exists clause with join conditions
|
|
367
|
+
* @param tableName The table to check for existence
|
|
368
|
+
* @param leftField The field from the main table
|
|
369
|
+
* @param rightField The field from the subquery table
|
|
370
|
+
* @param additionalConditions Additional conditions for the subquery
|
|
371
|
+
* @returns The query builder instance
|
|
372
|
+
* @example
|
|
373
|
+
* db.table<User>("users")
|
|
374
|
+
* .whereExistsJoin("orders", "id", "user_id", (qb) =>
|
|
375
|
+
* qb.where("total", ">", 1000)
|
|
376
|
+
* )
|
|
377
|
+
* .execute();
|
|
378
|
+
*/
|
|
379
|
+
whereExistsJoin(tableName: string, leftField: FieldKeys<T>, rightField: string, additionalConditions?: (qb: QueryBuilder<any>) => void): this;
|
|
380
|
+
getTableName(): string;
|
|
381
|
+
getParams(): QueryParams<T>;
|
|
382
|
+
/**
|
|
383
|
+
* Group by clause
|
|
384
|
+
*/
|
|
385
|
+
groupBy(...fields: string[]): this;
|
|
386
|
+
/**
|
|
387
|
+
* Having clause for grouped queries
|
|
388
|
+
*/
|
|
389
|
+
having(field: string, operator: WhereOperator, value: any): this;
|
|
390
|
+
/**
|
|
391
|
+
* Add an aggregate function
|
|
392
|
+
*/
|
|
393
|
+
aggregate(type: AggregateOptions<T>['type'], field: FieldKeys<T>, alias?: string): this;
|
|
394
|
+
/**
|
|
395
|
+
* Shorthand for count aggregate
|
|
396
|
+
*/
|
|
397
|
+
count(field?: FieldKeys<T>, alias?: string): this;
|
|
398
|
+
/**
|
|
399
|
+
* Shorthand for sum aggregate
|
|
400
|
+
*/
|
|
401
|
+
sum(field: FieldKeys<T>, alias?: string): this;
|
|
402
|
+
/**
|
|
403
|
+
* Shorthand for average aggregate
|
|
404
|
+
*/
|
|
405
|
+
avg(field: FieldKeys<T>, alias?: string): this;
|
|
406
|
+
/**
|
|
407
|
+
* Shorthand for minimum aggregate
|
|
408
|
+
*/
|
|
409
|
+
min(field: FieldKeys<T>, alias?: string): this;
|
|
410
|
+
/**
|
|
411
|
+
* Shorthand for maximum aggregate
|
|
412
|
+
*/
|
|
413
|
+
max(field: FieldKeys<T>, alias?: string): this;
|
|
414
|
+
toParams(): Promise<QueryParams<T>>;
|
|
415
|
+
/**
|
|
416
|
+
* Execute with transformations
|
|
417
|
+
* @param axiosConfig Optional axios config to be used for this request
|
|
418
|
+
* @returns Promise with the query results
|
|
419
|
+
*/
|
|
420
|
+
query(axiosConfig?: AxiosRequestConfig): Promise<ApiResponse<T>>;
|
|
421
|
+
/**
|
|
422
|
+
* Create a record in the table
|
|
423
|
+
* @param data The data to create
|
|
424
|
+
* @param axiosConfig Optional axios config to be used for this request
|
|
425
|
+
* @returns Promise with the created record
|
|
426
|
+
*/
|
|
427
|
+
create(data: T, axiosConfig?: AxiosRequestConfig): Promise<ApiResponse<T>>;
|
|
428
|
+
/**
|
|
429
|
+
* Update a record by ID
|
|
430
|
+
* @param id The ID of the record to update
|
|
431
|
+
* @param data The data to update
|
|
432
|
+
* @param axiosConfig Optional axios config to be used for this request
|
|
433
|
+
* @returns Promise with the updated record
|
|
434
|
+
*/
|
|
435
|
+
update(id: number | string, data: Partial<T>, axiosConfig?: AxiosRequestConfig): Promise<ApiResponse<T>>;
|
|
436
|
+
/**
|
|
437
|
+
* Update records by Complex query
|
|
438
|
+
* @param data The data to update
|
|
439
|
+
* @param axiosConfig Optional axios config to be used for this request
|
|
440
|
+
* @returns Promise with the deletion result
|
|
441
|
+
*/
|
|
442
|
+
advanceUpdate(data: Partial<T>, axiosConfig?: AxiosRequestConfig): Promise<ApiResponse<any>>;
|
|
443
|
+
/**
|
|
444
|
+
* Delete a record by ID
|
|
445
|
+
* @param id The ID of the record to delete
|
|
446
|
+
* @param axiosConfig Optional axios config to be used for this request
|
|
447
|
+
* @returns Promise with the deletion result
|
|
448
|
+
*/
|
|
449
|
+
delete(id: number | string, axiosConfig?: AxiosRequestConfig): Promise<ApiResponse<any>>;
|
|
450
|
+
/**
|
|
451
|
+
* Delete records by Complex query
|
|
452
|
+
* @param axiosConfig Optional axios config to be used for this request
|
|
453
|
+
* @returns Promise with the deletion result
|
|
454
|
+
*/
|
|
455
|
+
advanceDelete(axiosConfig?: AxiosRequestConfig): Promise<ApiResponse<any>>;
|
|
456
|
+
private applyTransformations;
|
|
457
|
+
private groupResults;
|
|
458
|
+
private pivotResults;
|
|
459
|
+
/**
|
|
460
|
+
* Select specific fields from the table
|
|
461
|
+
* @param fields Fields to select
|
|
462
|
+
* @example
|
|
463
|
+
* db.table("users")
|
|
464
|
+
* .select("id", "name", "email")
|
|
465
|
+
* .execute();
|
|
466
|
+
*/
|
|
467
|
+
select(...fields: string[]): this;
|
|
468
|
+
}
|
|
469
|
+
export {};
|
|
470
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/database/client/client.ts"],"names":[],"mappings":"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"}
|