@@ -43,7 +43,9 @@ export default class PostgrestFilterBuilder<
43
43
column : ColumnName ,
44
44
operator : FilterOperator ,
45
45
value : Table [ ColumnName ]
46
- ) : this {
46
+ ) : this
47
+ not ( column : string , operator : string , value : unknown ) : this
48
+ not ( column : string , operator : string , value : unknown ) : this {
47
49
this . url . searchParams . append ( column , `not.${ operator } .${ value } ` )
48
50
return this
49
51
}
@@ -55,7 +57,7 @@ export default class PostgrestFilterBuilder<
55
57
* @param foreignTable The foreign table to use (if `column` is a foreign column).
56
58
*/
57
59
or ( filters : string , { foreignTable } : { foreignTable ?: string } = { } ) : this {
58
- const key = typeof foreignTable === 'undefined' ? 'or' : `${ foreignTable } .or`
60
+ const key = foreignTable ? `${ foreignTable } .or` : 'or'
59
61
this . url . searchParams . append ( key , `(${ filters } )` )
60
62
return this
61
63
}
@@ -67,7 +69,9 @@ export default class PostgrestFilterBuilder<
67
69
* @param column The column to filter on.
68
70
* @param value The value to filter with.
69
71
*/
70
- eq < ColumnName extends string & keyof Table > ( column : ColumnName , value : Table [ ColumnName ] ) : this {
72
+ eq < ColumnName extends string & keyof Table > ( column : ColumnName , value : Table [ ColumnName ] ) : this
73
+ eq ( column : string , value : unknown ) : this
74
+ eq ( column : string , value : unknown ) : this {
71
75
this . url . searchParams . append ( column , `eq.${ value } ` )
72
76
return this
73
77
}
@@ -79,7 +83,9 @@ export default class PostgrestFilterBuilder<
79
83
* @param column The column to filter on.
80
84
* @param value The value to filter with.
81
85
*/
82
- neq < ColumnName extends string & keyof Table > ( column : ColumnName , value : Table [ ColumnName ] ) : this {
86
+ neq < ColumnName extends string & keyof Table > ( column : ColumnName , value : Table [ ColumnName ] ) : this
87
+ neq ( column : string , value : unknown ) : this
88
+ neq ( column : string , value : unknown ) : this {
83
89
this . url . searchParams . append ( column , `neq.${ value } ` )
84
90
return this
85
91
}
@@ -91,7 +97,9 @@ export default class PostgrestFilterBuilder<
91
97
* @param column The column to filter on.
92
98
* @param value The value to filter with.
93
99
*/
94
- gt < ColumnName extends string & keyof Table > ( column : ColumnName , value : Table [ ColumnName ] ) : this {
100
+ gt < ColumnName extends string & keyof Table > ( column : ColumnName , value : Table [ ColumnName ] ) : this
101
+ gt ( column : string , value : unknown ) : this
102
+ gt ( column : string , value : unknown ) : this {
95
103
this . url . searchParams . append ( column , `gt.${ value } ` )
96
104
return this
97
105
}
@@ -103,7 +111,9 @@ export default class PostgrestFilterBuilder<
103
111
* @param column The column to filter on.
104
112
* @param value The value to filter with.
105
113
*/
106
- gte < ColumnName extends string & keyof Table > ( column : ColumnName , value : Table [ ColumnName ] ) : this {
114
+ gte < ColumnName extends string & keyof Table > ( column : ColumnName , value : Table [ ColumnName ] ) : this
115
+ gte ( column : string , value : unknown ) : this
116
+ gte ( column : string , value : unknown ) : this {
107
117
this . url . searchParams . append ( column , `gte.${ value } ` )
108
118
return this
109
119
}
@@ -115,7 +125,9 @@ export default class PostgrestFilterBuilder<
115
125
* @param column The column to filter on.
116
126
* @param value The value to filter with.
117
127
*/
118
- lt < ColumnName extends string & keyof Table > ( column : ColumnName , value : Table [ ColumnName ] ) : this {
128
+ lt < ColumnName extends string & keyof Table > ( column : ColumnName , value : Table [ ColumnName ] ) : this
129
+ lt ( column : string , value : unknown ) : this
130
+ lt ( column : string , value : unknown ) : this {
119
131
this . url . searchParams . append ( column , `lt.${ value } ` )
120
132
return this
121
133
}
@@ -127,7 +139,9 @@ export default class PostgrestFilterBuilder<
127
139
* @param column The column to filter on.
128
140
* @param value The value to filter with.
129
141
*/
130
- lte < ColumnName extends string & keyof Table > ( column : ColumnName , value : Table [ ColumnName ] ) : this {
142
+ lte < ColumnName extends string & keyof Table > ( column : ColumnName , value : Table [ ColumnName ] ) : this
143
+ lte ( column : string , value : unknown ) : this
144
+ lte ( column : string , value : unknown ) : this {
131
145
this . url . searchParams . append ( column , `lte.${ value } ` )
132
146
return this
133
147
}
@@ -139,7 +153,9 @@ export default class PostgrestFilterBuilder<
139
153
* @param column The column to filter on.
140
154
* @param pattern The pattern to filter with.
141
155
*/
142
- like < ColumnName extends string & keyof Table > ( column : ColumnName , pattern : string ) : this {
156
+ like < ColumnName extends string & keyof Table > ( column : ColumnName , pattern : string ) : this
157
+ like ( column : string , pattern : string ) : this
158
+ like ( column : string , pattern : string ) : this {
143
159
this . url . searchParams . append ( column , `like.${ pattern } ` )
144
160
return this
145
161
}
@@ -151,7 +167,9 @@ export default class PostgrestFilterBuilder<
151
167
* @param column The column to filter on.
152
168
* @param pattern The pattern to filter with.
153
169
*/
154
- ilike < ColumnName extends string & keyof Table > ( column : ColumnName , pattern : string ) : this {
170
+ ilike < ColumnName extends string & keyof Table > ( column : ColumnName , pattern : string ) : this
171
+ ilike ( column : string , pattern : string ) : this
172
+ ilike ( column : string , pattern : string ) : this {
155
173
this . url . searchParams . append ( column , `ilike.${ pattern } ` )
156
174
return this
157
175
}
@@ -166,7 +184,9 @@ export default class PostgrestFilterBuilder<
166
184
is < ColumnName extends string & keyof Table > (
167
185
column : ColumnName ,
168
186
value : Table [ ColumnName ] & ( boolean | null )
169
- ) : this {
187
+ ) : this
188
+ is ( column : string , value : boolean | null ) : this
189
+ is ( column : string , value : boolean | null ) : this {
170
190
this . url . searchParams . append ( column , `is.${ value } ` )
171
191
return this
172
192
}
@@ -178,10 +198,9 @@ export default class PostgrestFilterBuilder<
178
198
* @param column The column to filter on.
179
199
* @param values The values to filter with.
180
200
*/
181
- in < ColumnName extends string & keyof Table > (
182
- column : ColumnName ,
183
- values : Table [ ColumnName ] [ ]
184
- ) : this {
201
+ in < ColumnName extends string & keyof Table > ( column : ColumnName , values : Table [ ColumnName ] [ ] ) : this
202
+ in ( column : string , values : unknown [ ] ) : this
203
+ in ( column : string , values : unknown [ ] ) : this {
185
204
const cleanedValues = values
186
205
. map ( ( s ) => {
187
206
// handle postgrest reserved characters
@@ -204,7 +223,9 @@ export default class PostgrestFilterBuilder<
204
223
contains < ColumnName extends string & keyof Table > (
205
224
column : ColumnName ,
206
225
value : string | Table [ ColumnName ] [ ] | Record < string , unknown >
207
- ) : this {
226
+ ) : this
227
+ contains ( column : string , value : string | unknown [ ] | Record < string , unknown > ) : this
228
+ contains ( column : string , value : string | unknown [ ] | Record < string , unknown > ) : this {
208
229
if ( typeof value === 'string' ) {
209
230
// range types can be inclusive '[', ']' or exclusive '(', ')' so just
210
231
// keep it simple and accept a string
@@ -229,7 +250,9 @@ export default class PostgrestFilterBuilder<
229
250
containedBy < ColumnName extends string & keyof Table > (
230
251
column : ColumnName ,
231
252
value : string | Table [ ColumnName ] [ ] | Record < string , unknown >
232
- ) : this {
253
+ ) : this
254
+ containedBy ( column : string , value : string | unknown [ ] | Record < string , unknown > ) : this
255
+ containedBy ( column : string , value : string | unknown [ ] | Record < string , unknown > ) : this {
233
256
if ( typeof value === 'string' ) {
234
257
// range
235
258
this . url . searchParams . append ( column , `cd.${ value } ` )
@@ -250,7 +273,9 @@ export default class PostgrestFilterBuilder<
250
273
* @param column The column to filter on.
251
274
* @param range The range to filter with.
252
275
*/
253
- rangeLt < ColumnName extends string & keyof Table > ( column : ColumnName , range : string ) : this {
276
+ rangeLt < ColumnName extends string & keyof Table > ( column : ColumnName , range : string ) : this
277
+ rangeLt ( column : string , range : string ) : this
278
+ rangeLt ( column : string , range : string ) : this {
254
279
this . url . searchParams . append ( column , `sl.${ range } ` )
255
280
return this
256
281
}
@@ -262,7 +287,9 @@ export default class PostgrestFilterBuilder<
262
287
* @param column The column to filter on.
263
288
* @param range The range to filter with.
264
289
*/
265
- rangeGt < ColumnName extends string & keyof Table > ( column : ColumnName , range : string ) : this {
290
+ rangeGt < ColumnName extends string & keyof Table > ( column : ColumnName , range : string ) : this
291
+ rangeGt ( column : string , range : string ) : this
292
+ rangeGt ( column : string , range : string ) : this {
266
293
this . url . searchParams . append ( column , `sr.${ range } ` )
267
294
return this
268
295
}
@@ -274,7 +301,9 @@ export default class PostgrestFilterBuilder<
274
301
* @param column The column to filter on.
275
302
* @param range The range to filter with.
276
303
*/
277
- rangeGte < ColumnName extends string & keyof Table > ( column : ColumnName , range : string ) : this {
304
+ rangeGte < ColumnName extends string & keyof Table > ( column : ColumnName , range : string ) : this
305
+ rangeGte ( column : string , range : string ) : this
306
+ rangeGte ( column : string , range : string ) : this {
278
307
this . url . searchParams . append ( column , `nxl.${ range } ` )
279
308
return this
280
309
}
@@ -286,7 +315,9 @@ export default class PostgrestFilterBuilder<
286
315
* @param column The column to filter on.
287
316
* @param range The range to filter with.
288
317
*/
289
- rangeLte < ColumnName extends string & keyof Table > ( column : ColumnName , range : string ) : this {
318
+ rangeLte < ColumnName extends string & keyof Table > ( column : ColumnName , range : string ) : this
319
+ rangeLte ( column : string , range : string ) : this
320
+ rangeLte ( column : string , range : string ) : this {
290
321
this . url . searchParams . append ( column , `nxr.${ range } ` )
291
322
return this
292
323
}
@@ -298,7 +329,9 @@ export default class PostgrestFilterBuilder<
298
329
* @param column The column to filter on.
299
330
* @param range The range to filter with.
300
331
*/
301
- rangeAdjacent < ColumnName extends string & keyof Table > ( column : ColumnName , range : string ) : this {
332
+ rangeAdjacent < ColumnName extends string & keyof Table > ( column : ColumnName , range : string ) : this
333
+ rangeAdjacent ( column : string , range : string ) : this
334
+ rangeAdjacent ( column : string , range : string ) : this {
302
335
this . url . searchParams . append ( column , `adj.${ range } ` )
303
336
return this
304
337
}
@@ -313,7 +346,9 @@ export default class PostgrestFilterBuilder<
313
346
overlaps < ColumnName extends string & keyof Table > (
314
347
column : ColumnName ,
315
348
value : string | Table [ ColumnName ] [ ]
316
- ) : this {
349
+ ) : this
350
+ overlaps ( column : string , value : string | unknown [ ] ) : this
351
+ overlaps ( column : string , value : string | unknown [ ] ) : this {
317
352
if ( typeof value === 'string' ) {
318
353
// range
319
354
this . url . searchParams . append ( column , `ov.${ value } ` )
@@ -336,6 +371,16 @@ export default class PostgrestFilterBuilder<
336
371
textSearch < ColumnName extends string & keyof Table > (
337
372
column : ColumnName ,
338
373
query : string ,
374
+ options ?: { config ?: string ; type ?: 'plain' | 'phrase' | 'websearch' }
375
+ ) : this
376
+ textSearch (
377
+ column : string ,
378
+ query : string ,
379
+ options ?: { config ?: string ; type ?: 'plain' | 'phrase' | 'websearch' }
380
+ ) : this
381
+ textSearch (
382
+ column : string ,
383
+ query : string ,
339
384
{ config, type } : { config ?: string ; type ?: 'plain' | 'phrase' | 'websearch' } = { }
340
385
) : this {
341
386
let typePart = ''
@@ -361,8 +406,10 @@ export default class PostgrestFilterBuilder<
361
406
filter < ColumnName extends string & keyof Table > (
362
407
column : ColumnName ,
363
408
operator : `${'' | 'not.' } ${FilterOperator } `,
364
- value : any
365
- ) : this {
409
+ value : unknown
410
+ ) : this
411
+ filter ( column : string , operator : string , value : unknown ) : this
412
+ filter ( column : string , operator : string , value : unknown ) : this {
366
413
this . url . searchParams . append ( column , `${ operator } .${ value } ` )
367
414
return this
368
415
}
@@ -373,9 +420,9 @@ export default class PostgrestFilterBuilder<
373
420
* @param query The object to filter with, with column names as keys mapped
374
421
* to their filter values.
375
422
*/
376
- match < ColumnName extends string & keyof Table > (
377
- query : Record < ColumnName , Table [ ColumnName ] >
378
- ) : this {
423
+ match < ColumnName extends string & keyof Table > ( query : Record < ColumnName , Table [ ColumnName ] > ) : this
424
+ match ( query : Record < string , unknown > ) : this
425
+ match ( query : Record < string , unknown > ) : this {
379
426
Object . entries ( query ) . forEach ( ( [ column , value ] ) => {
380
427
this . url . searchParams . append ( column , `eq.${ value } ` )
381
428
} )
0 commit comments