@supabase/postgrest-js 1.0.0 → 1.1.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/README.md +1 -1
- package/dist/main/PostgrestBuilder.d.ts.map +1 -1
- package/dist/main/PostgrestBuilder.js +17 -3
- package/dist/main/PostgrestBuilder.js.map +1 -1
- package/dist/main/PostgrestClient.d.ts +4 -9
- package/dist/main/PostgrestClient.d.ts.map +1 -1
- package/dist/main/PostgrestClient.js +5 -0
- package/dist/main/PostgrestClient.js.map +1 -1
- package/dist/main/PostgrestFilterBuilder.d.ts +2 -171
- package/dist/main/PostgrestFilterBuilder.d.ts.map +1 -1
- package/dist/main/PostgrestFilterBuilder.js +170 -0
- package/dist/main/PostgrestFilterBuilder.js.map +1 -1
- package/dist/main/PostgrestQueryBuilder.d.ts +8 -8
- package/dist/main/PostgrestQueryBuilder.d.ts.map +1 -1
- package/dist/main/PostgrestQueryBuilder.js.map +1 -1
- package/dist/main/PostgrestTransformBuilder.d.ts +9 -19
- package/dist/main/PostgrestTransformBuilder.d.ts.map +1 -1
- package/dist/main/PostgrestTransformBuilder.js +24 -0
- package/dist/main/PostgrestTransformBuilder.js.map +1 -1
- package/dist/main/select-query-parser.d.ts +31 -21
- package/dist/main/select-query-parser.d.ts.map +1 -1
- package/dist/main/version.d.ts +1 -1
- package/dist/main/version.js +1 -1
- package/dist/module/PostgrestBuilder.d.ts.map +1 -1
- package/dist/module/PostgrestBuilder.js +17 -3
- package/dist/module/PostgrestBuilder.js.map +1 -1
- package/dist/module/PostgrestClient.d.ts +4 -9
- package/dist/module/PostgrestClient.d.ts.map +1 -1
- package/dist/module/PostgrestClient.js +5 -0
- package/dist/module/PostgrestClient.js.map +1 -1
- package/dist/module/PostgrestFilterBuilder.d.ts +2 -171
- package/dist/module/PostgrestFilterBuilder.d.ts.map +1 -1
- package/dist/module/PostgrestFilterBuilder.js +170 -0
- package/dist/module/PostgrestFilterBuilder.js.map +1 -1
- package/dist/module/PostgrestQueryBuilder.d.ts +8 -8
- package/dist/module/PostgrestQueryBuilder.d.ts.map +1 -1
- package/dist/module/PostgrestQueryBuilder.js.map +1 -1
- package/dist/module/PostgrestTransformBuilder.d.ts +9 -19
- package/dist/module/PostgrestTransformBuilder.d.ts.map +1 -1
- package/dist/module/PostgrestTransformBuilder.js +24 -0
- package/dist/module/PostgrestTransformBuilder.js.map +1 -1
- package/dist/module/select-query-parser.d.ts +31 -21
- package/dist/module/select-query-parser.d.ts.map +1 -1
- package/dist/module/version.d.ts +1 -1
- package/dist/module/version.js +1 -1
- package/package.json +8 -4
- package/src/PostgrestBuilder.ts +16 -2
- package/src/PostgrestClient.ts +11 -10
- package/src/PostgrestFilterBuilder.ts +75 -73
- package/src/PostgrestQueryBuilder.ts +11 -11
- package/src/PostgrestTransformBuilder.ts +27 -12
- package/src/select-query-parser.ts +40 -22
- package/src/version.ts +1 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// Credits to @bnjmnt4n (https://www.npmjs.com/package/postgrest-query)
|
|
2
2
|
|
|
3
|
+
import { GenericSchema } from './types'
|
|
4
|
+
|
|
3
5
|
type Whitespace = ' ' | '\n' | '\t'
|
|
4
6
|
|
|
5
7
|
type LowerAlphabet =
|
|
@@ -67,12 +69,25 @@ type EatWhitespace<Input extends string> = string extends Input
|
|
|
67
69
|
* @param Name Name of the table being queried.
|
|
68
70
|
* @param Field Single field parsed by `ParseQuery`.
|
|
69
71
|
*/
|
|
70
|
-
type ConstructFieldDefinition<
|
|
72
|
+
type ConstructFieldDefinition<
|
|
73
|
+
Schema extends GenericSchema,
|
|
74
|
+
Row extends Record<string, unknown>,
|
|
75
|
+
Field
|
|
76
|
+
> = Field extends {
|
|
71
77
|
star: true
|
|
72
78
|
}
|
|
73
79
|
? Row
|
|
74
|
-
: Field extends { name: string;
|
|
75
|
-
? {
|
|
80
|
+
: Field extends { name: string; original: string; children: unknown[] }
|
|
81
|
+
? {
|
|
82
|
+
[_ in Field['name']]: GetResultHelper<
|
|
83
|
+
Schema,
|
|
84
|
+
(Schema['Tables'] & Schema['Views'])[Field['original']]['Row'],
|
|
85
|
+
Field['children'],
|
|
86
|
+
unknown
|
|
87
|
+
> extends infer Child
|
|
88
|
+
? Child | Child[] | null
|
|
89
|
+
: never
|
|
90
|
+
}
|
|
76
91
|
: Field extends { name: string; original: string }
|
|
77
92
|
? { [K in Field['name']]: Row[Field['original']] }
|
|
78
93
|
: Record<string, unknown>
|
|
@@ -135,9 +150,9 @@ type ParseNode<Input extends string> = Input extends ''
|
|
|
135
150
|
? [{ star: true }, EatWhitespace<Remainder>]
|
|
136
151
|
: ParseIdentifier<Input> extends [infer Name, `${infer Remainder}`]
|
|
137
152
|
? EatWhitespace<Remainder> extends `!inner${infer Remainder}`
|
|
138
|
-
? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [infer
|
|
153
|
+
? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`]
|
|
139
154
|
? // `field!inner(nodes)`
|
|
140
|
-
[{ name: Name;
|
|
155
|
+
[{ name: Name; original: Name; children: Fields }, EatWhitespace<Remainder>]
|
|
141
156
|
: ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
|
|
142
157
|
? ParseEmbeddedResource<EatWhitespace<Remainder>>
|
|
143
158
|
: ParserError<'Expected embedded resource after `!inner`'>
|
|
@@ -145,20 +160,20 @@ type ParseNode<Input extends string> = Input extends ''
|
|
|
145
160
|
? ParseIdentifier<EatWhitespace<Remainder>> extends [infer _Hint, `${infer Remainder}`]
|
|
146
161
|
? EatWhitespace<Remainder> extends `!inner${infer Remainder}`
|
|
147
162
|
? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
|
|
148
|
-
infer
|
|
163
|
+
infer Fields,
|
|
149
164
|
`${infer Remainder}`
|
|
150
165
|
]
|
|
151
166
|
? // `field!hint!inner(nodes)`
|
|
152
|
-
[{ name: Name;
|
|
167
|
+
[{ name: Name; original: Name; children: Fields }, EatWhitespace<Remainder>]
|
|
153
168
|
: ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
|
|
154
169
|
? ParseEmbeddedResource<EatWhitespace<Remainder>>
|
|
155
170
|
: ParserError<'Expected embedded resource after `!inner`'>
|
|
156
171
|
: ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
|
|
157
|
-
infer
|
|
172
|
+
infer Fields,
|
|
158
173
|
`${infer Remainder}`
|
|
159
174
|
]
|
|
160
175
|
? // `field!hint(nodes)`
|
|
161
|
-
[{ name: Name;
|
|
176
|
+
[{ name: Name; original: Name; children: Fields }, EatWhitespace<Remainder>]
|
|
162
177
|
: ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
|
|
163
178
|
? ParseEmbeddedResource<EatWhitespace<Remainder>>
|
|
164
179
|
: ParserError<'Expected embedded resource after `!hint`'>
|
|
@@ -167,11 +182,11 @@ type ParseNode<Input extends string> = Input extends ''
|
|
|
167
182
|
? ParseIdentifier<EatWhitespace<Remainder>> extends [infer OriginalName, `${infer Remainder}`]
|
|
168
183
|
? EatWhitespace<Remainder> extends `!inner${infer Remainder}`
|
|
169
184
|
? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
|
|
170
|
-
infer
|
|
185
|
+
infer Fields,
|
|
171
186
|
`${infer Remainder}`
|
|
172
187
|
]
|
|
173
188
|
? // `renamed_field:field!inner(nodes)`
|
|
174
|
-
[{ name: Name;
|
|
189
|
+
[{ name: Name; original: OriginalName; children: Fields }, EatWhitespace<Remainder>]
|
|
175
190
|
: ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
|
|
176
191
|
? ParseEmbeddedResource<EatWhitespace<Remainder>>
|
|
177
192
|
: ParserError<'Expected embedded resource after `!inner`'>
|
|
@@ -179,23 +194,24 @@ type ParseNode<Input extends string> = Input extends ''
|
|
|
179
194
|
? ParseIdentifier<EatWhitespace<Remainder>> extends [infer _Hint, `${infer Remainder}`]
|
|
180
195
|
? EatWhitespace<Remainder> extends `!inner${infer Remainder}`
|
|
181
196
|
? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
|
|
182
|
-
infer
|
|
197
|
+
infer Fields,
|
|
183
198
|
`${infer Remainder}`
|
|
184
199
|
]
|
|
185
200
|
? // `renamed_field:field!hint!inner(nodes)`
|
|
186
|
-
[{ name: Name;
|
|
201
|
+
[{ name: Name; original: OriginalName; children: Fields }, EatWhitespace<Remainder>]
|
|
187
202
|
: ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
|
|
188
203
|
? ParseEmbeddedResource<EatWhitespace<Remainder>>
|
|
189
204
|
: ParserError<'Expected embedded resource after `!inner`'>
|
|
190
205
|
: ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
|
|
191
|
-
infer
|
|
206
|
+
infer Fields,
|
|
192
207
|
`${infer Remainder}`
|
|
193
208
|
]
|
|
194
209
|
? // `renamed_field:field!hint(nodes)`
|
|
195
210
|
[
|
|
196
211
|
{
|
|
197
212
|
name: Name
|
|
198
|
-
|
|
213
|
+
original: OriginalName
|
|
214
|
+
children: Fields
|
|
199
215
|
},
|
|
200
216
|
EatWhitespace<Remainder>
|
|
201
217
|
]
|
|
@@ -204,19 +220,19 @@ type ParseNode<Input extends string> = Input extends ''
|
|
|
204
220
|
: ParserError<'Expected embedded resource after `!hint`'>
|
|
205
221
|
: ParserError<'Expected identifier after `!`'>
|
|
206
222
|
: ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
|
|
207
|
-
infer
|
|
223
|
+
infer Fields,
|
|
208
224
|
`${infer Remainder}`
|
|
209
225
|
]
|
|
210
226
|
? // `renamed_field:field(nodes)`
|
|
211
|
-
[{ name: Name;
|
|
227
|
+
[{ name: Name; original: OriginalName; children: Fields }, EatWhitespace<Remainder>]
|
|
212
228
|
: ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
|
|
213
229
|
? ParseEmbeddedResource<EatWhitespace<Remainder>>
|
|
214
230
|
: // `renamed_field:field`
|
|
215
231
|
[{ name: Name; original: OriginalName }, EatWhitespace<Remainder>]
|
|
216
232
|
: ParseIdentifier<EatWhitespace<Remainder>>
|
|
217
|
-
: ParseEmbeddedResource<EatWhitespace<Remainder>> extends [infer
|
|
233
|
+
: ParseEmbeddedResource<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`]
|
|
218
234
|
? // `field(nodes)`
|
|
219
|
-
[{ name: Name;
|
|
235
|
+
[{ name: Name; original: Name; children: Fields }, EatWhitespace<Remainder>]
|
|
220
236
|
: ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
|
|
221
237
|
? ParseEmbeddedResource<EatWhitespace<Remainder>>
|
|
222
238
|
: // `field`
|
|
@@ -274,13 +290,14 @@ type ParseQuery<Query extends string> = string extends Query
|
|
|
274
290
|
: ParseNodes<EatWhitespace<Query>>
|
|
275
291
|
|
|
276
292
|
type GetResultHelper<
|
|
293
|
+
Schema extends GenericSchema,
|
|
277
294
|
Row extends Record<string, unknown>,
|
|
278
295
|
Fields extends unknown[],
|
|
279
296
|
Acc
|
|
280
297
|
> = Fields extends [infer R]
|
|
281
|
-
? GetResultHelper<Row, [], ConstructFieldDefinition<Row, R> & Acc>
|
|
298
|
+
? GetResultHelper<Schema, Row, [], ConstructFieldDefinition<Schema, Row, R> & Acc>
|
|
282
299
|
: Fields extends [infer R, ...infer Rest]
|
|
283
|
-
? GetResultHelper<Row, Rest, ConstructFieldDefinition<Row, R> & Acc>
|
|
300
|
+
? GetResultHelper<Schema, Row, Rest, ConstructFieldDefinition<Schema, Row, R> & Acc>
|
|
284
301
|
: Acc
|
|
285
302
|
|
|
286
303
|
/**
|
|
@@ -290,8 +307,9 @@ type GetResultHelper<
|
|
|
290
307
|
* @param Query Select query string literal to parse.
|
|
291
308
|
*/
|
|
292
309
|
export type GetResult<
|
|
310
|
+
Schema extends GenericSchema,
|
|
293
311
|
Row extends Record<string, unknown>,
|
|
294
312
|
Query extends string
|
|
295
313
|
> = ParseQuery<Query> extends unknown[]
|
|
296
|
-
? GetResultHelper<Row, ParseQuery<Query>, unknown>
|
|
314
|
+
? GetResultHelper<Schema, Row, ParseQuery<Query>, unknown>
|
|
297
315
|
: ParseQuery<Query>
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '1.
|
|
1
|
+
export const version = '1.1.1'
|