@supabase/postgrest-js 1.17.0-rc.2 → 1.17.0-rc.4
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/dist/cjs/select-query-parser/result.d.ts +3 -3
- package/dist/cjs/select-query-parser/result.d.ts.map +1 -1
- package/dist/cjs/select-query-parser/utils.d.ts +43 -14
- package/dist/cjs/select-query-parser/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/select-query-parser/result.ts +6 -9
- package/src/select-query-parser/utils.ts +59 -31
- package/src/version.ts +1 -1
|
@@ -2,7 +2,7 @@ import { GenericTable } from '../types';
|
|
|
2
2
|
import { ContainsNull, GenericRelationship, PostgreSQLTypes } from './types';
|
|
3
3
|
import { Ast, ParseQuery } from './parser';
|
|
4
4
|
import { AggregateFunctions, ExtractFirstProperty, GenericSchema, IsNonEmptyArray, Prettify, TablesAndViews, TypeScriptTypes } from './types';
|
|
5
|
-
import { CheckDuplicateEmbededReference, GetFieldNodeResultName, IsRelationNullable, ResolveRelationship, SelectQueryError
|
|
5
|
+
import { CheckDuplicateEmbededReference, GetFieldNodeResultName, IsRelationNullable, ResolveRelationship, SelectQueryError } from './utils';
|
|
6
6
|
/**
|
|
7
7
|
* Main entry point for constructing the result type of a PostgREST query.
|
|
8
8
|
*
|
|
@@ -12,7 +12,7 @@ import { CheckDuplicateEmbededReference, GetFieldNodeResultName, IsRelationNulla
|
|
|
12
12
|
* @param Relationships - Relationships of the current table.
|
|
13
13
|
* @param Query - The select query string literal to parse.
|
|
14
14
|
*/
|
|
15
|
-
export declare type GetResult<Schema extends GenericSchema, Row extends Record<string, unknown>, RelationName, Relationships, Query extends string> = Relationships extends null ? ParseQuery<Query> extends infer ParsedQuery extends Ast.Node[] ?
|
|
15
|
+
export declare type GetResult<Schema extends GenericSchema, Row extends Record<string, unknown>, RelationName, Relationships, Query extends string> = Relationships extends null ? ParseQuery<Query> extends infer ParsedQuery extends Ast.Node[] ? RPCCallNodes<ParsedQuery, RelationName extends string ? RelationName : 'rpc_call', Row> : Row : ParseQuery<Query> extends infer ParsedQuery ? ParsedQuery extends Ast.Node[] ? RelationName extends string ? Relationships extends GenericRelationship[] ? ProcessNodes<Schema, Row, RelationName, Relationships, ParsedQuery> : SelectQueryError<'Invalid Relationships cannot infer result type'> : SelectQueryError<'Invalid RelationName cannot infer result type'> : ParsedQuery : never;
|
|
16
16
|
/**
|
|
17
17
|
* Processes a single Node from a select chained after a rpc call
|
|
18
18
|
*
|
|
@@ -77,7 +77,7 @@ declare type ProcessSimpleField<Row extends Record<string, unknown>, RelationNam
|
|
|
77
77
|
* @param Relationships - Relationships of the current table.
|
|
78
78
|
* @param Field - The FieldNode to process.
|
|
79
79
|
*/
|
|
80
|
-
export declare type ProcessEmbeddedResource<Schema extends GenericSchema, Relationships extends GenericRelationship[], Field extends Ast.FieldNode, CurrentTableOrView extends keyof TablesAndViews<Schema
|
|
80
|
+
export declare type ProcessEmbeddedResource<Schema extends GenericSchema, Relationships extends GenericRelationship[], Field extends Ast.FieldNode, CurrentTableOrView extends keyof TablesAndViews<Schema> & string> = ResolveRelationship<Schema, Relationships, Field, CurrentTableOrView> extends infer Resolved ? Resolved extends {
|
|
81
81
|
referencedTable: Pick<GenericTable, 'Row' | 'Relationships'>;
|
|
82
82
|
relation: GenericRelationship & {
|
|
83
83
|
match: 'refrel' | 'col' | 'fkname';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../src/select-query-parser/result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,cAAc,EACd,eAAe,EAChB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../src/select-query-parser/result.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,6 @@ import { AggregateFunctions, ContainsNull, GenericRelationship, GenericSchema, G
|
|
|
3
3
|
export declare type SelectQueryError<Message extends string> = {
|
|
4
4
|
error: true;
|
|
5
5
|
} & Message;
|
|
6
|
-
declare type RequireHintingSelectQueryError<DistantName extends string, RelationName extends string> = SelectQueryError<`Could not embed because more than one relationship was found for '${DistantName}' and '${RelationName}' you need to hint the column with ${DistantName}!<columnName> ?`>;
|
|
7
|
-
export declare type UnwrapErrorMessages<T> = T extends SelectQueryError<infer M> ? M : T extends SelectQueryError<infer M>[] ? M[] : T extends (infer U)[] ? UnwrapErrorMessages<U>[] : T extends Record<string, unknown> ? {
|
|
8
|
-
[K in keyof T]: UnwrapErrorMessages<T[K]>;
|
|
9
|
-
} : T;
|
|
10
6
|
export declare type GetFieldNodeResultName<Field extends Ast.FieldNode> = Field['alias'] extends string ? Field['alias'] : Field['aggregateFunction'] extends AggregateFunctions ? Field['aggregateFunction'] : Field['name'];
|
|
11
7
|
declare type FilterRelationNodes<Nodes extends Ast.Node[]> = UnionToArray<{
|
|
12
8
|
[K in keyof Nodes]: Nodes[K] extends Ast.SpreadNode ? Nodes[K]['target'] : Nodes[K] extends Ast.FieldNode ? IsNonEmptyArray<Nodes[K]['children']> extends true ? Nodes[K] : never : never;
|
|
@@ -68,28 +64,28 @@ declare type HasMultipleFKeysToFRel<FRelName, Relationships> = Relationships ext
|
|
|
68
64
|
] ? R extends {
|
|
69
65
|
referencedRelation: FRelName;
|
|
70
66
|
} ? HasFKeyToFRel<FRelName, Rest> extends true ? true : HasMultipleFKeysToFRel<FRelName, Rest> : HasMultipleFKeysToFRel<FRelName, Rest> : false;
|
|
71
|
-
declare type CheckRelationshipError<Schema extends GenericSchema, Relationships extends GenericRelationship[], CurrentTableOrView extends keyof TablesAndViews<Schema
|
|
67
|
+
declare type CheckRelationshipError<Schema extends GenericSchema, Relationships extends GenericRelationship[], CurrentTableOrView extends keyof TablesAndViews<Schema> & string, FoundRelation> = FoundRelation extends SelectQueryError<string> ? FoundRelation : FoundRelation extends {
|
|
72
68
|
relation: {
|
|
73
69
|
referencedRelation: infer RelatedRelationName extends string;
|
|
74
70
|
name: string;
|
|
75
71
|
};
|
|
76
72
|
direction: 'reverse';
|
|
77
|
-
} ? HasMultipleFKeysToFRel<RelatedRelationName, Relationships> extends true ?
|
|
73
|
+
} ? HasMultipleFKeysToFRel<RelatedRelationName, Relationships> extends true ? SelectQueryError<`Could not embed because more than one relationship was found for '${RelatedRelationName}' and '${CurrentTableOrView}' you need to hint the column with ${RelatedRelationName}!<columnName> ?`> : FoundRelation : FoundRelation extends {
|
|
78
74
|
relation: {
|
|
79
75
|
referencedRelation: infer RelatedRelationName extends string;
|
|
80
76
|
name: string;
|
|
81
77
|
};
|
|
82
78
|
direction: 'forward';
|
|
83
|
-
from: infer From extends keyof TablesAndViews<Schema
|
|
84
|
-
} ? HasMultipleFKeysToFRel<RelatedRelationName, TablesAndViews<Schema>[From]['Relationships']> extends true ?
|
|
79
|
+
from: infer From extends keyof TablesAndViews<Schema> & string;
|
|
80
|
+
} ? HasMultipleFKeysToFRel<RelatedRelationName, TablesAndViews<Schema>[From]['Relationships']> extends true ? SelectQueryError<`Could not embed because more than one relationship was found for '${From}' and '${RelatedRelationName}' you need to hint the column with ${From}!<columnName> ?`> : FoundRelation : FoundRelation;
|
|
85
81
|
/**
|
|
86
82
|
* Resolves relationships for embedded resources and retrieves the referenced Table
|
|
87
83
|
*/
|
|
88
|
-
export declare type ResolveRelationship<Schema extends GenericSchema, Relationships extends GenericRelationship[], Field extends Ast.FieldNode, CurrentTableOrView extends keyof TablesAndViews<Schema
|
|
84
|
+
export declare type ResolveRelationship<Schema extends GenericSchema, Relationships extends GenericRelationship[], Field extends Ast.FieldNode, CurrentTableOrView extends keyof TablesAndViews<Schema> & string> = ResolveReverseRelationship<Schema, Relationships, Field, CurrentTableOrView> extends infer ReverseRelationship ? ReverseRelationship extends false ? CheckRelationshipError<Schema, Relationships, CurrentTableOrView, ResolveForwardRelationship<Schema, Field, CurrentTableOrView>> : CheckRelationshipError<Schema, Relationships, CurrentTableOrView, ReverseRelationship> : never;
|
|
89
85
|
/**
|
|
90
86
|
* Resolves reverse relationships (from children to parent)
|
|
91
87
|
*/
|
|
92
|
-
declare type ResolveReverseRelationship<Schema extends GenericSchema, Relationships extends GenericRelationship[], Field extends Ast.FieldNode, CurrentTableOrView extends keyof TablesAndViews<Schema
|
|
88
|
+
declare type ResolveReverseRelationship<Schema extends GenericSchema, Relationships extends GenericRelationship[], Field extends Ast.FieldNode, CurrentTableOrView extends keyof TablesAndViews<Schema> & string> = FindFieldMatchingRelationships<Schema, Relationships, Field> extends infer FoundRelation ? FoundRelation extends never ? false : FoundRelation extends {
|
|
93
89
|
referencedRelation: infer RelatedRelationName extends string;
|
|
94
90
|
} ? RelatedRelationName extends keyof TablesAndViews<Schema> ? FoundRelation extends {
|
|
95
91
|
hint: string;
|
|
@@ -98,7 +94,7 @@ declare type ResolveReverseRelationship<Schema extends GenericSchema, Relationsh
|
|
|
98
94
|
relation: FoundRelation;
|
|
99
95
|
direction: 'reverse';
|
|
100
96
|
from: CurrentTableOrView;
|
|
101
|
-
} : HasMultipleFKeysToFRel<RelatedRelationName, Relationships> extends true ?
|
|
97
|
+
} : HasMultipleFKeysToFRel<RelatedRelationName, Relationships> extends true ? SelectQueryError<`Could not embed because more than one relationship was found for '${RelatedRelationName}' and '${CurrentTableOrView}' you need to hint the column with ${RelatedRelationName}!<columnName> ?`> : {
|
|
102
98
|
referencedTable: TablesAndViews<Schema>[RelatedRelationName];
|
|
103
99
|
relation: FoundRelation;
|
|
104
100
|
direction: 'reverse';
|
|
@@ -175,7 +171,7 @@ declare type FilterRelationships<R, TName, From> = R extends readonly (infer Rel
|
|
|
175
171
|
} ? Rel & {
|
|
176
172
|
from: From;
|
|
177
173
|
} : never : never;
|
|
178
|
-
declare type ResolveForwardRelationship<Schema extends GenericSchema, Field extends Ast.FieldNode, CurrentTableOrView extends keyof TablesAndViews<Schema
|
|
174
|
+
declare type ResolveForwardRelationship<Schema extends GenericSchema, Field extends Ast.FieldNode, CurrentTableOrView extends keyof TablesAndViews<Schema> & string> = FindFieldMatchingRelationships<Schema, TablesAndViews<Schema>[Field['name']]['Relationships'], Ast.FieldNode & {
|
|
179
175
|
name: CurrentTableOrView;
|
|
180
176
|
hint: Field['hint'];
|
|
181
177
|
}> extends infer FoundByName extends GenericRelationship ? {
|
|
@@ -191,8 +187,41 @@ declare type ResolveForwardRelationship<Schema extends GenericSchema, Field exte
|
|
|
191
187
|
relation: FoundByMatch;
|
|
192
188
|
direction: 'forward';
|
|
193
189
|
from: CurrentTableOrView;
|
|
194
|
-
type: 'found-
|
|
195
|
-
} :
|
|
190
|
+
type: 'found-by-match';
|
|
191
|
+
} : FindJoinTableRelationship<Schema, CurrentTableOrView, Field['name']> extends infer FoundByJoinTable extends GenericRelationship ? {
|
|
192
|
+
referencedTable: TablesAndViews<Schema>[FoundByJoinTable['referencedRelation']];
|
|
193
|
+
relation: FoundByJoinTable & {
|
|
194
|
+
match: 'refrel';
|
|
195
|
+
};
|
|
196
|
+
direction: 'forward';
|
|
197
|
+
from: CurrentTableOrView;
|
|
198
|
+
type: 'found-by-join-table';
|
|
199
|
+
} : SelectQueryError<`could not find the relation between ${CurrentTableOrView} and ${Field['name']}`>;
|
|
200
|
+
/**
|
|
201
|
+
* Given a CurrentTableOrView, finds all join tables to this relation.
|
|
202
|
+
* For example, if products and categories are linked via product_categories table:
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* Given:
|
|
206
|
+
* - CurrentTableView = 'products'
|
|
207
|
+
* - FieldName = "categories"
|
|
208
|
+
*
|
|
209
|
+
* It should return this relationship from product_categories:
|
|
210
|
+
* {
|
|
211
|
+
* foreignKeyName: "product_categories_category_id_fkey",
|
|
212
|
+
* columns: ["category_id"],
|
|
213
|
+
* isOneToOne: false,
|
|
214
|
+
* referencedRelation: "categories",
|
|
215
|
+
* referencedColumns: ["id"]
|
|
216
|
+
* }
|
|
217
|
+
*/
|
|
218
|
+
export declare type FindJoinTableRelationship<Schema extends GenericSchema, CurrentTableOrView extends keyof TablesAndViews<Schema> & string, FieldName extends string> = {
|
|
219
|
+
[TableName in keyof TablesAndViews<Schema>]: TablesAndViews<Schema>[TableName]['Relationships'] extends readonly (infer Rel)[] ? Rel extends {
|
|
220
|
+
referencedRelation: CurrentTableOrView;
|
|
221
|
+
} ? TablesAndViews<Schema>[TableName]['Relationships'] extends readonly (infer OtherRel)[] ? OtherRel extends {
|
|
222
|
+
referencedRelation: FieldName;
|
|
223
|
+
} ? OtherRel : never : never : never : never;
|
|
224
|
+
}[keyof TablesAndViews<Schema>];
|
|
196
225
|
/**
|
|
197
226
|
* Finds a matching relationship based on the FieldNode's name and optional hint.
|
|
198
227
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/select-query-parser/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/select-query-parser/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -16,7 +16,6 @@ import {
|
|
|
16
16
|
IsRelationNullable,
|
|
17
17
|
ResolveRelationship,
|
|
18
18
|
SelectQueryError,
|
|
19
|
-
UnwrapErrorMessages,
|
|
20
19
|
} from './utils'
|
|
21
20
|
|
|
22
21
|
/**
|
|
@@ -36,18 +35,16 @@ export type GetResult<
|
|
|
36
35
|
Query extends string
|
|
37
36
|
> = Relationships extends null // For .rpc calls the passed relationships will be null in that case, the result will always be the function return type
|
|
38
37
|
? ParseQuery<Query> extends infer ParsedQuery extends Ast.Node[]
|
|
39
|
-
?
|
|
40
|
-
RPCCallNodes<ParsedQuery, RelationName extends string ? RelationName : 'rpc_call', Row>
|
|
41
|
-
>
|
|
38
|
+
? RPCCallNodes<ParsedQuery, RelationName extends string ? RelationName : 'rpc_call', Row>
|
|
42
39
|
: Row
|
|
43
40
|
: ParseQuery<Query> extends infer ParsedQuery
|
|
44
41
|
? ParsedQuery extends Ast.Node[]
|
|
45
42
|
? RelationName extends string
|
|
46
43
|
? Relationships extends GenericRelationship[]
|
|
47
|
-
?
|
|
48
|
-
:
|
|
49
|
-
:
|
|
50
|
-
:
|
|
44
|
+
? ProcessNodes<Schema, Row, RelationName, Relationships, ParsedQuery>
|
|
45
|
+
: SelectQueryError<'Invalid Relationships cannot infer result type'>
|
|
46
|
+
: SelectQueryError<'Invalid RelationName cannot infer result type'>
|
|
47
|
+
: ParsedQuery
|
|
51
48
|
: never
|
|
52
49
|
|
|
53
50
|
/**
|
|
@@ -198,7 +195,7 @@ export type ProcessEmbeddedResource<
|
|
|
198
195
|
Schema extends GenericSchema,
|
|
199
196
|
Relationships extends GenericRelationship[],
|
|
200
197
|
Field extends Ast.FieldNode,
|
|
201
|
-
CurrentTableOrView extends keyof TablesAndViews<Schema>
|
|
198
|
+
CurrentTableOrView extends keyof TablesAndViews<Schema> & string
|
|
202
199
|
> = ResolveRelationship<Schema, Relationships, Field, CurrentTableOrView> extends infer Resolved
|
|
203
200
|
? Resolved extends {
|
|
204
201
|
referencedTable: Pick<GenericTable, 'Row' | 'Relationships'>
|
|
@@ -12,21 +12,6 @@ import {
|
|
|
12
12
|
|
|
13
13
|
export type SelectQueryError<Message extends string> = { error: true } & Message
|
|
14
14
|
|
|
15
|
-
type RequireHintingSelectQueryError<
|
|
16
|
-
DistantName extends string,
|
|
17
|
-
RelationName extends string
|
|
18
|
-
> = SelectQueryError<`Could not embed because more than one relationship was found for '${DistantName}' and '${RelationName}' you need to hint the column with ${DistantName}!<columnName> ?`>
|
|
19
|
-
|
|
20
|
-
export type UnwrapErrorMessages<T> = T extends SelectQueryError<infer M>
|
|
21
|
-
? M
|
|
22
|
-
: T extends SelectQueryError<infer M>[]
|
|
23
|
-
? M[]
|
|
24
|
-
: T extends (infer U)[]
|
|
25
|
-
? UnwrapErrorMessages<U>[]
|
|
26
|
-
: T extends Record<string, unknown>
|
|
27
|
-
? { [K in keyof T]: UnwrapErrorMessages<T[K]> }
|
|
28
|
-
: T
|
|
29
|
-
|
|
30
15
|
export type GetFieldNodeResultName<Field extends Ast.FieldNode> = Field['alias'] extends string
|
|
31
16
|
? Field['alias']
|
|
32
17
|
: Field['aggregateFunction'] extends AggregateFunctions
|
|
@@ -161,7 +146,7 @@ type HasMultipleFKeysToFRel<FRelName, Relationships> = Relationships extends [
|
|
|
161
146
|
type CheckRelationshipError<
|
|
162
147
|
Schema extends GenericSchema,
|
|
163
148
|
Relationships extends GenericRelationship[],
|
|
164
|
-
CurrentTableOrView extends keyof TablesAndViews<Schema
|
|
149
|
+
CurrentTableOrView extends keyof TablesAndViews<Schema> & string,
|
|
165
150
|
FoundRelation
|
|
166
151
|
> = FoundRelation extends SelectQueryError<string>
|
|
167
152
|
? FoundRelation
|
|
@@ -176,10 +161,7 @@ type CheckRelationshipError<
|
|
|
176
161
|
? // We check if there is possible confusion with other relations with this table
|
|
177
162
|
HasMultipleFKeysToFRel<RelatedRelationName, Relationships> extends true
|
|
178
163
|
? // If there is, postgrest will fail at runtime, and require desambiguation via hinting
|
|
179
|
-
|
|
180
|
-
RelatedRelationName,
|
|
181
|
-
CurrentTableOrView extends string ? CurrentTableOrView : 'unknown'
|
|
182
|
-
>
|
|
164
|
+
SelectQueryError<`Could not embed because more than one relationship was found for '${RelatedRelationName}' and '${CurrentTableOrView}' you need to hint the column with ${RelatedRelationName}!<columnName> ?`>
|
|
183
165
|
: FoundRelation
|
|
184
166
|
: // Same check for forward relationships, but we must gather the relationships from the found relation
|
|
185
167
|
FoundRelation extends {
|
|
@@ -188,13 +170,13 @@ type CheckRelationshipError<
|
|
|
188
170
|
name: string
|
|
189
171
|
}
|
|
190
172
|
direction: 'forward'
|
|
191
|
-
from: infer From extends keyof TablesAndViews<Schema>
|
|
173
|
+
from: infer From extends keyof TablesAndViews<Schema> & string
|
|
192
174
|
}
|
|
193
175
|
? HasMultipleFKeysToFRel<
|
|
194
176
|
RelatedRelationName,
|
|
195
177
|
TablesAndViews<Schema>[From]['Relationships']
|
|
196
178
|
> extends true
|
|
197
|
-
?
|
|
179
|
+
? SelectQueryError<`Could not embed because more than one relationship was found for '${From}' and '${RelatedRelationName}' you need to hint the column with ${From}!<columnName> ?`>
|
|
198
180
|
: FoundRelation
|
|
199
181
|
: FoundRelation
|
|
200
182
|
|
|
@@ -205,7 +187,7 @@ export type ResolveRelationship<
|
|
|
205
187
|
Schema extends GenericSchema,
|
|
206
188
|
Relationships extends GenericRelationship[],
|
|
207
189
|
Field extends Ast.FieldNode,
|
|
208
|
-
CurrentTableOrView extends keyof TablesAndViews<Schema>
|
|
190
|
+
CurrentTableOrView extends keyof TablesAndViews<Schema> & string
|
|
209
191
|
> = ResolveReverseRelationship<
|
|
210
192
|
Schema,
|
|
211
193
|
Relationships,
|
|
@@ -229,7 +211,7 @@ type ResolveReverseRelationship<
|
|
|
229
211
|
Schema extends GenericSchema,
|
|
230
212
|
Relationships extends GenericRelationship[],
|
|
231
213
|
Field extends Ast.FieldNode,
|
|
232
|
-
CurrentTableOrView extends keyof TablesAndViews<Schema>
|
|
214
|
+
CurrentTableOrView extends keyof TablesAndViews<Schema> & string
|
|
233
215
|
> = FindFieldMatchingRelationships<Schema, Relationships, Field> extends infer FoundRelation
|
|
234
216
|
? FoundRelation extends never
|
|
235
217
|
? false
|
|
@@ -245,10 +227,7 @@ type ResolveReverseRelationship<
|
|
|
245
227
|
}
|
|
246
228
|
: // If the relation was found via implicit relation naming, we must ensure there is no conflicting matches
|
|
247
229
|
HasMultipleFKeysToFRel<RelatedRelationName, Relationships> extends true
|
|
248
|
-
?
|
|
249
|
-
RelatedRelationName,
|
|
250
|
-
CurrentTableOrView extends string ? CurrentTableOrView : 'unknown'
|
|
251
|
-
>
|
|
230
|
+
? SelectQueryError<`Could not embed because more than one relationship was found for '${RelatedRelationName}' and '${CurrentTableOrView}' you need to hint the column with ${RelatedRelationName}!<columnName> ?`>
|
|
252
231
|
: {
|
|
253
232
|
referencedTable: TablesAndViews<Schema>[RelatedRelationName]
|
|
254
233
|
relation: FoundRelation
|
|
@@ -385,7 +364,7 @@ type FilterRelationships<R, TName, From> = R extends readonly (infer Rel)[]
|
|
|
385
364
|
type ResolveForwardRelationship<
|
|
386
365
|
Schema extends GenericSchema,
|
|
387
366
|
Field extends Ast.FieldNode,
|
|
388
|
-
CurrentTableOrView extends keyof TablesAndViews<Schema>
|
|
367
|
+
CurrentTableOrView extends keyof TablesAndViews<Schema> & string
|
|
389
368
|
> = FindFieldMatchingRelationships<
|
|
390
369
|
Schema,
|
|
391
370
|
TablesAndViews<Schema>[Field['name']]['Relationships'],
|
|
@@ -413,9 +392,58 @@ type ResolveForwardRelationship<
|
|
|
413
392
|
relation: FoundByMatch
|
|
414
393
|
direction: 'forward'
|
|
415
394
|
from: CurrentTableOrView
|
|
416
|
-
type: 'found-
|
|
395
|
+
type: 'found-by-match'
|
|
396
|
+
}
|
|
397
|
+
: // Forward relations can also alias other tables via tables joins relationships
|
|
398
|
+
// in such cases we crawl all the tables looking for a join table between our current table
|
|
399
|
+
// and the Field['name'] desired desitnation
|
|
400
|
+
FindJoinTableRelationship<
|
|
401
|
+
Schema,
|
|
402
|
+
CurrentTableOrView,
|
|
403
|
+
Field['name']
|
|
404
|
+
> extends infer FoundByJoinTable extends GenericRelationship
|
|
405
|
+
? {
|
|
406
|
+
referencedTable: TablesAndViews<Schema>[FoundByJoinTable['referencedRelation']]
|
|
407
|
+
relation: FoundByJoinTable & { match: 'refrel' }
|
|
408
|
+
direction: 'forward'
|
|
409
|
+
from: CurrentTableOrView
|
|
410
|
+
type: 'found-by-join-table'
|
|
417
411
|
}
|
|
418
|
-
: SelectQueryError
|
|
412
|
+
: SelectQueryError<`could not find the relation between ${CurrentTableOrView} and ${Field['name']}`>
|
|
413
|
+
|
|
414
|
+
/**
|
|
415
|
+
* Given a CurrentTableOrView, finds all join tables to this relation.
|
|
416
|
+
* For example, if products and categories are linked via product_categories table:
|
|
417
|
+
*
|
|
418
|
+
* @example
|
|
419
|
+
* Given:
|
|
420
|
+
* - CurrentTableView = 'products'
|
|
421
|
+
* - FieldName = "categories"
|
|
422
|
+
*
|
|
423
|
+
* It should return this relationship from product_categories:
|
|
424
|
+
* {
|
|
425
|
+
* foreignKeyName: "product_categories_category_id_fkey",
|
|
426
|
+
* columns: ["category_id"],
|
|
427
|
+
* isOneToOne: false,
|
|
428
|
+
* referencedRelation: "categories",
|
|
429
|
+
* referencedColumns: ["id"]
|
|
430
|
+
* }
|
|
431
|
+
*/
|
|
432
|
+
export type FindJoinTableRelationship<
|
|
433
|
+
Schema extends GenericSchema,
|
|
434
|
+
CurrentTableOrView extends keyof TablesAndViews<Schema> & string,
|
|
435
|
+
FieldName extends string
|
|
436
|
+
> = {
|
|
437
|
+
[TableName in keyof TablesAndViews<Schema>]: TablesAndViews<Schema>[TableName]['Relationships'] extends readonly (infer Rel)[]
|
|
438
|
+
? Rel extends { referencedRelation: CurrentTableOrView }
|
|
439
|
+
? TablesAndViews<Schema>[TableName]['Relationships'] extends readonly (infer OtherRel)[]
|
|
440
|
+
? OtherRel extends { referencedRelation: FieldName }
|
|
441
|
+
? OtherRel
|
|
442
|
+
: never
|
|
443
|
+
: never
|
|
444
|
+
: never
|
|
445
|
+
: never
|
|
446
|
+
}[keyof TablesAndViews<Schema>]
|
|
419
447
|
|
|
420
448
|
/**
|
|
421
449
|
* Finds a matching relationship based on the FieldNode's name and optional hint.
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '1.17.0-rc.
|
|
1
|
+
export const version = '1.17.0-rc.4'
|