@@ -124,28 +124,34 @@ export default class PostgrestFilterBuilder<
124
124
return this
125
125
}
126
126
127
- likeAllOf < ColumnName extends string & keyof Row > ( column : ColumnName , patterns : string [ ] ) : this
128
- likeAllOf ( column : string , patterns : string [ ] ) : this
127
+ likeAllOf < ColumnName extends string & keyof Row > (
128
+ column : ColumnName ,
129
+ patterns : readonly string [ ]
130
+ ) : this
131
+ likeAllOf ( column : string , patterns : readonly string [ ] ) : this
129
132
/**
130
133
* Match only rows where `column` matches all of `patterns` case-sensitively.
131
134
*
132
135
* @param column - The column to filter on
133
136
* @param patterns - The patterns to match with
134
137
*/
135
- likeAllOf ( column : string , patterns : string [ ] ) : this {
138
+ likeAllOf ( column : string , patterns : readonly string [ ] ) : this {
136
139
this . url . searchParams . append ( column , `like(all).{${ patterns . join ( ',' ) } }` )
137
140
return this
138
141
}
139
142
140
- likeAnyOf < ColumnName extends string & keyof Row > ( column : ColumnName , patterns : string [ ] ) : this
141
- likeAnyOf ( column : string , patterns : string [ ] ) : this
143
+ likeAnyOf < ColumnName extends string & keyof Row > (
144
+ column : ColumnName ,
145
+ patterns : readonly string [ ]
146
+ ) : this
147
+ likeAnyOf ( column : string , patterns : readonly string [ ] ) : this
142
148
/**
143
149
* Match only rows where `column` matches any of `patterns` case-sensitively.
144
150
*
145
151
* @param column - The column to filter on
146
152
* @param patterns - The patterns to match with
147
153
*/
148
- likeAnyOf ( column : string , patterns : string [ ] ) : this {
154
+ likeAnyOf ( column : string , patterns : readonly string [ ] ) : this {
149
155
this . url . searchParams . append ( column , `like(any).{${ patterns . join ( ',' ) } }` )
150
156
return this
151
157
}
@@ -163,28 +169,34 @@ export default class PostgrestFilterBuilder<
163
169
return this
164
170
}
165
171
166
- ilikeAllOf < ColumnName extends string & keyof Row > ( column : ColumnName , patterns : string [ ] ) : this
167
- ilikeAllOf ( column : string , patterns : string [ ] ) : this
172
+ ilikeAllOf < ColumnName extends string & keyof Row > (
173
+ column : ColumnName ,
174
+ patterns : readonly string [ ]
175
+ ) : this
176
+ ilikeAllOf ( column : string , patterns : readonly string [ ] ) : this
168
177
/**
169
178
* Match only rows where `column` matches all of `patterns` case-insensitively.
170
179
*
171
180
* @param column - The column to filter on
172
181
* @param patterns - The patterns to match with
173
182
*/
174
- ilikeAllOf ( column : string , patterns : string [ ] ) : this {
183
+ ilikeAllOf ( column : string , patterns : readonly string [ ] ) : this {
175
184
this . url . searchParams . append ( column , `ilike(all).{${ patterns . join ( ',' ) } }` )
176
185
return this
177
186
}
178
187
179
- ilikeAnyOf < ColumnName extends string & keyof Row > ( column : ColumnName , patterns : string [ ] ) : this
180
- ilikeAnyOf ( column : string , patterns : string [ ] ) : this
188
+ ilikeAnyOf < ColumnName extends string & keyof Row > (
189
+ column : ColumnName ,
190
+ patterns : readonly string [ ]
191
+ ) : this
192
+ ilikeAnyOf ( column : string , patterns : readonly string [ ] ) : this
181
193
/**
182
194
* Match only rows where `column` matches any of `patterns` case-insensitively.
183
195
*
184
196
* @param column - The column to filter on
185
197
* @param patterns - The patterns to match with
186
198
*/
187
- ilikeAnyOf ( column : string , patterns : string [ ] ) : this {
199
+ ilikeAnyOf ( column : string , patterns : readonly string [ ] ) : this {
188
200
this . url . searchParams . append ( column , `ilike(any).{${ patterns . join ( ',' ) } }` )
189
201
return this
190
202
}
@@ -211,15 +223,18 @@ export default class PostgrestFilterBuilder<
211
223
return this
212
224
}
213
225
214
- in < ColumnName extends string & keyof Row > ( column : ColumnName , values : Row [ ColumnName ] [ ] ) : this
215
- in ( column : string , values : unknown [ ] ) : this
226
+ in < ColumnName extends string & keyof Row > (
227
+ column : ColumnName ,
228
+ values : ReadonlyArray < Row [ ColumnName ] >
229
+ ) : this
230
+ in ( column : string , values : readonly unknown [ ] ) : this
216
231
/**
217
232
* Match only rows where `column` is included in the `values` array.
218
233
*
219
234
* @param column - The column to filter on
220
235
* @param values - The values array to filter with
221
236
*/
222
- in ( column : string , values : unknown [ ] ) : this {
237
+ in ( column : string , values : readonly unknown [ ] ) : this {
223
238
const cleanedValues = values
224
239
. map ( ( s ) => {
225
240
// handle postgrest reserved characters
@@ -234,17 +249,17 @@ export default class PostgrestFilterBuilder<
234
249
235
250
contains < ColumnName extends string & keyof Row > (
236
251
column : ColumnName ,
237
- value : string | Row [ ColumnName ] [ ] | Record < string , unknown >
252
+ value : string | ReadonlyArray < Row [ ColumnName ] > | Record < string , unknown >
238
253
) : this
239
- contains ( column : string , value : string | unknown [ ] | Record < string , unknown > ) : this
254
+ contains ( column : string , value : string | readonly unknown [ ] | Record < string , unknown > ) : this
240
255
/**
241
256
* Only relevant for jsonb, array, and range columns. Match only rows where
242
257
* `column` contains every element appearing in `value`.
243
258
*
244
259
* @param column - The jsonb, array, or range column to filter on
245
260
* @param value - The jsonb, array, or range value to filter with
246
261
*/
247
- contains ( column : string , value : string | unknown [ ] | Record < string , unknown > ) : this {
262
+ contains ( column : string , value : string | readonly unknown [ ] | Record < string , unknown > ) : this {
248
263
if ( typeof value === 'string' ) {
249
264
// range types can be inclusive '[', ']' or exclusive '(', ')' so just
250
265
// keep it simple and accept a string
@@ -261,17 +276,17 @@ export default class PostgrestFilterBuilder<
261
276
262
277
containedBy < ColumnName extends string & keyof Row > (
263
278
column : ColumnName ,
264
- value : string | Row [ ColumnName ] [ ] | Record < string , unknown >
279
+ value : string | ReadonlyArray < Row [ ColumnName ] > | Record < string , unknown >
265
280
) : this
266
- containedBy ( column : string , value : string | unknown [ ] | Record < string , unknown > ) : this
281
+ containedBy ( column : string , value : string | readonly unknown [ ] | Record < string , unknown > ) : this
267
282
/**
268
283
* Only relevant for jsonb, array, and range columns. Match only rows where
269
284
* every element appearing in `column` is contained by `value`.
270
285
*
271
286
* @param column - The jsonb, array, or range column to filter on
272
287
* @param value - The jsonb, array, or range value to filter with
273
288
*/
274
- containedBy ( column : string , value : string | unknown [ ] | Record < string , unknown > ) : this {
289
+ containedBy ( column : string , value : string | readonly unknown [ ] | Record < string , unknown > ) : this {
275
290
if ( typeof value === 'string' ) {
276
291
// range
277
292
this . url . searchParams . append ( column , `cd.${ value } ` )
@@ -360,17 +375,17 @@ export default class PostgrestFilterBuilder<
360
375
361
376
overlaps < ColumnName extends string & keyof Row > (
362
377
column : ColumnName ,
363
- value : string | Row [ ColumnName ] [ ]
378
+ value : string | ReadonlyArray < Row [ ColumnName ] >
364
379
) : this
365
- overlaps ( column : string , value : string | unknown [ ] ) : this
380
+ overlaps ( column : string , value : string | readonly unknown [ ] ) : this
366
381
/**
367
382
* Only relevant for array and range columns. Match only rows where
368
383
* `column` and `value` have an element in common.
369
384
*
370
385
* @param column - The array or range column to filter on
371
386
* @param value - The array or range value to filter with
372
387
*/
373
- overlaps ( column : string , value : string | unknown [ ] ) : this {
388
+ overlaps ( column : string , value : string | readonly unknown [ ] ) : this {
374
389
if ( typeof value === 'string' ) {
375
390
// range
376
391
this . url . searchParams . append ( column , `ov.${ value } ` )
0 commit comments