Skip to content

Commit 378c00c

Browse files
committed
refactor: Table -> Row
`Table` naming isn't quite accurate in some places. Hierarchy should be: Table > Row > Column
1 parent 7a36bdb commit 378c00c

File tree

3 files changed

+43
-43
lines changed

3 files changed

+43
-43
lines changed

src/PostgrestFilterBuilder.ts

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,20 @@ type FilterOperator =
2929
| 'wfts'
3030

3131
export default class PostgrestFilterBuilder<
32-
Table extends Record<string, unknown>,
32+
Row extends Record<string, unknown>,
3333
Result
34-
> extends PostgrestTransformBuilder<Table, Result> {
34+
> extends PostgrestTransformBuilder<Row, Result> {
3535
/**
3636
* Finds all rows which doesn't satisfy the filter.
3737
*
3838
* @param column The column to filter on.
3939
* @param operator The operator to filter with.
4040
* @param value The value to filter with.
4141
*/
42-
not<ColumnName extends string & keyof Table>(
42+
not<ColumnName extends string & keyof Row>(
4343
column: ColumnName,
4444
operator: FilterOperator,
45-
value: Table[ColumnName]
45+
value: Row[ColumnName]
4646
): this
4747
not(column: string, operator: string, value: unknown): this
4848
not(column: string, operator: string, value: unknown): this {
@@ -69,7 +69,7 @@ export default class PostgrestFilterBuilder<
6969
* @param column The column to filter on.
7070
* @param value The value to filter with.
7171
*/
72-
eq<ColumnName extends string & keyof Table>(column: ColumnName, value: Table[ColumnName]): this
72+
eq<ColumnName extends string & keyof Row>(column: ColumnName, value: Row[ColumnName]): this
7373
eq(column: string, value: unknown): this
7474
eq(column: string, value: unknown): this {
7575
this.url.searchParams.append(column, `eq.${value}`)
@@ -83,7 +83,7 @@ export default class PostgrestFilterBuilder<
8383
* @param column The column to filter on.
8484
* @param value The value to filter with.
8585
*/
86-
neq<ColumnName extends string & keyof Table>(column: ColumnName, value: Table[ColumnName]): this
86+
neq<ColumnName extends string & keyof Row>(column: ColumnName, value: Row[ColumnName]): this
8787
neq(column: string, value: unknown): this
8888
neq(column: string, value: unknown): this {
8989
this.url.searchParams.append(column, `neq.${value}`)
@@ -97,7 +97,7 @@ export default class PostgrestFilterBuilder<
9797
* @param column The column to filter on.
9898
* @param value The value to filter with.
9999
*/
100-
gt<ColumnName extends string & keyof Table>(column: ColumnName, value: Table[ColumnName]): this
100+
gt<ColumnName extends string & keyof Row>(column: ColumnName, value: Row[ColumnName]): this
101101
gt(column: string, value: unknown): this
102102
gt(column: string, value: unknown): this {
103103
this.url.searchParams.append(column, `gt.${value}`)
@@ -111,7 +111,7 @@ export default class PostgrestFilterBuilder<
111111
* @param column The column to filter on.
112112
* @param value The value to filter with.
113113
*/
114-
gte<ColumnName extends string & keyof Table>(column: ColumnName, value: Table[ColumnName]): this
114+
gte<ColumnName extends string & keyof Row>(column: ColumnName, value: Row[ColumnName]): this
115115
gte(column: string, value: unknown): this
116116
gte(column: string, value: unknown): this {
117117
this.url.searchParams.append(column, `gte.${value}`)
@@ -125,7 +125,7 @@ export default class PostgrestFilterBuilder<
125125
* @param column The column to filter on.
126126
* @param value The value to filter with.
127127
*/
128-
lt<ColumnName extends string & keyof Table>(column: ColumnName, value: Table[ColumnName]): this
128+
lt<ColumnName extends string & keyof Row>(column: ColumnName, value: Row[ColumnName]): this
129129
lt(column: string, value: unknown): this
130130
lt(column: string, value: unknown): this {
131131
this.url.searchParams.append(column, `lt.${value}`)
@@ -139,7 +139,7 @@ export default class PostgrestFilterBuilder<
139139
* @param column The column to filter on.
140140
* @param value The value to filter with.
141141
*/
142-
lte<ColumnName extends string & keyof Table>(column: ColumnName, value: Table[ColumnName]): this
142+
lte<ColumnName extends string & keyof Row>(column: ColumnName, value: Row[ColumnName]): this
143143
lte(column: string, value: unknown): this
144144
lte(column: string, value: unknown): this {
145145
this.url.searchParams.append(column, `lte.${value}`)
@@ -153,7 +153,7 @@ export default class PostgrestFilterBuilder<
153153
* @param column The column to filter on.
154154
* @param pattern The pattern to filter with.
155155
*/
156-
like<ColumnName extends string & keyof Table>(column: ColumnName, pattern: string): this
156+
like<ColumnName extends string & keyof Row>(column: ColumnName, pattern: string): this
157157
like(column: string, pattern: string): this
158158
like(column: string, pattern: string): this {
159159
this.url.searchParams.append(column, `like.${pattern}`)
@@ -167,7 +167,7 @@ export default class PostgrestFilterBuilder<
167167
* @param column The column to filter on.
168168
* @param pattern The pattern to filter with.
169169
*/
170-
ilike<ColumnName extends string & keyof Table>(column: ColumnName, pattern: string): this
170+
ilike<ColumnName extends string & keyof Row>(column: ColumnName, pattern: string): this
171171
ilike(column: string, pattern: string): this
172172
ilike(column: string, pattern: string): this {
173173
this.url.searchParams.append(column, `ilike.${pattern}`)
@@ -181,9 +181,9 @@ export default class PostgrestFilterBuilder<
181181
* @param column The column to filter on.
182182
* @param value The value to filter with.
183183
*/
184-
is<ColumnName extends string & keyof Table>(
184+
is<ColumnName extends string & keyof Row>(
185185
column: ColumnName,
186-
value: Table[ColumnName] & (boolean | null)
186+
value: Row[ColumnName] & (boolean | null)
187187
): this
188188
is(column: string, value: boolean | null): this
189189
is(column: string, value: boolean | null): this {
@@ -198,7 +198,7 @@ export default class PostgrestFilterBuilder<
198198
* @param column The column to filter on.
199199
* @param values The values to filter with.
200200
*/
201-
in<ColumnName extends string & keyof Table>(column: ColumnName, values: Table[ColumnName][]): this
201+
in<ColumnName extends string & keyof Row>(column: ColumnName, values: Row[ColumnName][]): this
202202
in(column: string, values: unknown[]): this
203203
in(column: string, values: unknown[]): this {
204204
const cleanedValues = values
@@ -220,9 +220,9 @@ export default class PostgrestFilterBuilder<
220220
* @param column The column to filter on.
221221
* @param value The value to filter with.
222222
*/
223-
contains<ColumnName extends string & keyof Table>(
223+
contains<ColumnName extends string & keyof Row>(
224224
column: ColumnName,
225-
value: string | Table[ColumnName][] | Record<string, unknown>
225+
value: string | Row[ColumnName][] | Record<string, unknown>
226226
): this
227227
contains(column: string, value: string | unknown[] | Record<string, unknown>): this
228228
contains(column: string, value: string | unknown[] | Record<string, unknown>): this {
@@ -247,9 +247,9 @@ export default class PostgrestFilterBuilder<
247247
* @param column The column to filter on.
248248
* @param value The value to filter with.
249249
*/
250-
containedBy<ColumnName extends string & keyof Table>(
250+
containedBy<ColumnName extends string & keyof Row>(
251251
column: ColumnName,
252-
value: string | Table[ColumnName][] | Record<string, unknown>
252+
value: string | Row[ColumnName][] | Record<string, unknown>
253253
): this
254254
containedBy(column: string, value: string | unknown[] | Record<string, unknown>): this
255255
containedBy(column: string, value: string | unknown[] | Record<string, unknown>): this {
@@ -273,7 +273,7 @@ export default class PostgrestFilterBuilder<
273273
* @param column The column to filter on.
274274
* @param range The range to filter with.
275275
*/
276-
rangeLt<ColumnName extends string & keyof Table>(column: ColumnName, range: string): this
276+
rangeLt<ColumnName extends string & keyof Row>(column: ColumnName, range: string): this
277277
rangeLt(column: string, range: string): this
278278
rangeLt(column: string, range: string): this {
279279
this.url.searchParams.append(column, `sl.${range}`)
@@ -287,7 +287,7 @@ export default class PostgrestFilterBuilder<
287287
* @param column The column to filter on.
288288
* @param range The range to filter with.
289289
*/
290-
rangeGt<ColumnName extends string & keyof Table>(column: ColumnName, range: string): this
290+
rangeGt<ColumnName extends string & keyof Row>(column: ColumnName, range: string): this
291291
rangeGt(column: string, range: string): this
292292
rangeGt(column: string, range: string): this {
293293
this.url.searchParams.append(column, `sr.${range}`)
@@ -301,7 +301,7 @@ export default class PostgrestFilterBuilder<
301301
* @param column The column to filter on.
302302
* @param range The range to filter with.
303303
*/
304-
rangeGte<ColumnName extends string & keyof Table>(column: ColumnName, range: string): this
304+
rangeGte<ColumnName extends string & keyof Row>(column: ColumnName, range: string): this
305305
rangeGte(column: string, range: string): this
306306
rangeGte(column: string, range: string): this {
307307
this.url.searchParams.append(column, `nxl.${range}`)
@@ -315,7 +315,7 @@ export default class PostgrestFilterBuilder<
315315
* @param column The column to filter on.
316316
* @param range The range to filter with.
317317
*/
318-
rangeLte<ColumnName extends string & keyof Table>(column: ColumnName, range: string): this
318+
rangeLte<ColumnName extends string & keyof Row>(column: ColumnName, range: string): this
319319
rangeLte(column: string, range: string): this
320320
rangeLte(column: string, range: string): this {
321321
this.url.searchParams.append(column, `nxr.${range}`)
@@ -329,7 +329,7 @@ export default class PostgrestFilterBuilder<
329329
* @param column The column to filter on.
330330
* @param range The range to filter with.
331331
*/
332-
rangeAdjacent<ColumnName extends string & keyof Table>(column: ColumnName, range: string): this
332+
rangeAdjacent<ColumnName extends string & keyof Row>(column: ColumnName, range: string): this
333333
rangeAdjacent(column: string, range: string): this
334334
rangeAdjacent(column: string, range: string): this {
335335
this.url.searchParams.append(column, `adj.${range}`)
@@ -343,9 +343,9 @@ export default class PostgrestFilterBuilder<
343343
* @param column The column to filter on.
344344
* @param value The value to filter with.
345345
*/
346-
overlaps<ColumnName extends string & keyof Table>(
346+
overlaps<ColumnName extends string & keyof Row>(
347347
column: ColumnName,
348-
value: string | Table[ColumnName][]
348+
value: string | Row[ColumnName][]
349349
): this
350350
overlaps(column: string, value: string | unknown[]): this
351351
overlaps(column: string, value: string | unknown[]): this {
@@ -368,7 +368,7 @@ export default class PostgrestFilterBuilder<
368368
* @param config The text search configuration to use.
369369
* @param type The type of tsquery conversion to use on `query`.
370370
*/
371-
textSearch<ColumnName extends string & keyof Table>(
371+
textSearch<ColumnName extends string & keyof Row>(
372372
column: ColumnName,
373373
query: string,
374374
options?: { config?: string; type?: 'plain' | 'phrase' | 'websearch' }
@@ -403,7 +403,7 @@ export default class PostgrestFilterBuilder<
403403
* @param operator The operator to filter with.
404404
* @param value The value to filter with.
405405
*/
406-
filter<ColumnName extends string & keyof Table>(
406+
filter<ColumnName extends string & keyof Row>(
407407
column: ColumnName,
408408
operator: `${'' | 'not.'}${FilterOperator}`,
409409
value: unknown
@@ -420,7 +420,7 @@ export default class PostgrestFilterBuilder<
420420
* @param query The object to filter with, with column names as keys mapped
421421
* to their filter values.
422422
*/
423-
match<ColumnName extends string & keyof Table>(query: Record<ColumnName, Table[ColumnName]>): this
423+
match<ColumnName extends string & keyof Row>(query: Record<ColumnName, Row[ColumnName]>): this
424424
match(query: Record<string, unknown>): this
425425
match(query: Record<string, unknown>): this {
426426
Object.entries(query).forEach(([column, value]) => {

src/PostgrestTransformBuilder.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@ import { PostgrestMaybeSingleResponse, PostgrestResponse, PostgrestSingleRespons
77
*/
88

99
export default class PostgrestTransformBuilder<
10-
Table extends Record<string, unknown>,
10+
Row extends Record<string, unknown>,
1111
Result
1212
> extends PostgrestBuilder<Result> {
1313
/**
1414
* Performs vertical filtering with SELECT.
1515
*
1616
* @param columns The columns to retrieve, separated by commas.
1717
*/
18-
select<Query extends string = '*', NewResult = GetResult<Table, Query extends '*' ? '*' : Query>>(
18+
select<Query extends string = '*', NewResult = GetResult<Row, Query extends '*' ? '*' : Query>>(
1919
columns?: Query
20-
): PostgrestTransformBuilder<Table, NewResult> {
20+
): PostgrestTransformBuilder<Row, NewResult> {
2121
// Remove whitespaces except when quoted
2222
let quoted = false
2323
const cleanedColumns = (columns ?? '*')
@@ -37,7 +37,7 @@ export default class PostgrestTransformBuilder<
3737
this.headers['Prefer'] += ','
3838
}
3939
this.headers['Prefer'] += 'return=representation'
40-
return this as unknown as PostgrestTransformBuilder<Table, NewResult>
40+
return this as unknown as PostgrestTransformBuilder<Row, NewResult>
4141
}
4242

4343
/**
@@ -48,7 +48,7 @@ export default class PostgrestTransformBuilder<
4848
* @param nullsFirst If `true`, `null`s appear first.
4949
* @param foreignTable The foreign table to use (if `column` is a foreign column).
5050
*/
51-
order<ColumnName extends string & keyof Table>(
51+
order<ColumnName extends string & keyof Row>(
5252
column: ColumnName,
5353
options?: { ascending?: boolean; nullsFirst?: boolean; foreignTable?: undefined }
5454
): this

src/select-query-parser.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,14 @@ type EatWhitespace<Input extends string> = string extends Input
6767
* @param Name Name of the table being queried.
6868
* @param Field Single field parsed by `ParseQuery`.
6969
*/
70-
type ConstructFieldDefinition<Table extends Record<string, unknown>, Field> = Field extends {
70+
type ConstructFieldDefinition<Row extends Record<string, unknown>, Field> = Field extends {
7171
star: true
7272
}
73-
? Table
73+
? Row
7474
: Field extends { name: string; foreignTable: true }
7575
? { [K in Field['name']]: unknown }
7676
: Field extends { name: string; original: string }
77-
? { [K in Field['name']]: Table[Field['original']] }
77+
? { [K in Field['name']]: Row[Field['original']] }
7878
: Record<string, unknown>
7979

8080
/**
@@ -274,24 +274,24 @@ type ParseQuery<Query extends string> = string extends Query
274274
: ParseNodes<EatWhitespace<Query>>
275275

276276
type GetResultHelper<
277-
Table extends Record<string, unknown>,
277+
Row extends Record<string, unknown>,
278278
Fields extends unknown[],
279279
Acc
280280
> = Fields extends [infer R]
281-
? GetResultHelper<Table, [], ConstructFieldDefinition<Table, R> & Acc>
281+
? GetResultHelper<Row, [], ConstructFieldDefinition<Row, R> & Acc>
282282
: Fields extends [infer R, ...infer Rest]
283-
? GetResultHelper<Table, Rest, ConstructFieldDefinition<Table, R> & Acc>
283+
? GetResultHelper<Row, Rest, ConstructFieldDefinition<Row, R> & Acc>
284284
: Acc
285285

286286
/**
287287
* Constructs a type definition for an object based on a given PostgREST query.
288288
*
289-
* @param Table Record<string, unknown>.
289+
* @param Row Record<string, unknown>.
290290
* @param Query Select query string literal to parse.
291291
*/
292292
export type GetResult<
293-
Table extends Record<string, unknown>,
293+
Row extends Record<string, unknown>,
294294
Query extends string
295295
> = ParseQuery<Query> extends unknown[]
296-
? GetResultHelper<Table, ParseQuery<Query>, unknown>
296+
? GetResultHelper<Row, ParseQuery<Query>, unknown>
297297
: ParseQuery<Query>

0 commit comments

Comments
 (0)