@supabase/postgrest-js 1.19.0 → 1.19.2
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/PostgrestBuilder.d.ts +2 -1
- package/dist/cjs/PostgrestBuilder.d.ts.map +1 -1
- package/dist/cjs/PostgrestBuilder.js.map +1 -1
- package/dist/cjs/types.d.ts +12 -5
- package/dist/cjs/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/PostgrestBuilder.ts +11 -4
- package/src/types.ts +52 -20
- package/src/version.ts +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Fetch, PostgrestSingleResponse, PostgrestResponseSuccess, CheckMatchingArrayTypes, MergePartialResult, IsValidResultOverride } from './types';
|
|
2
|
+
import { ContainsNull } from './select-query-parser/types';
|
|
2
3
|
export default abstract class PostgrestBuilder<Result, ThrowOnError extends boolean = false> implements PromiseLike<ThrowOnError extends true ? PostgrestResponseSuccess<Result> : PostgrestSingleResponse<Result>> {
|
|
3
4
|
protected method: 'GET' | 'HEAD' | 'POST' | 'PATCH' | 'DELETE';
|
|
4
5
|
protected url: URL;
|
|
@@ -55,6 +56,6 @@ export default abstract class PostgrestBuilder<Result, ThrowOnError extends bool
|
|
|
55
56
|
merge?: boolean;
|
|
56
57
|
} = {
|
|
57
58
|
merge: true;
|
|
58
|
-
}>(): PostgrestBuilder<IsValidResultOverride<Result, NewResult,
|
|
59
|
+
}>(): PostgrestBuilder<IsValidResultOverride<Result, NewResult, false, false> extends true ? ContainsNull<Result> extends true ? MergePartialResult<NewResult, NonNullable<Result>, Options> | null : MergePartialResult<NewResult, Result, Options> : CheckMatchingArrayTypes<Result, NewResult>, ThrowOnError>;
|
|
59
60
|
}
|
|
60
61
|
//# sourceMappingURL=PostgrestBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostgrestBuilder.d.ts","sourceRoot":"","sources":["../../src/PostgrestBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,KAAK,EACL,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"PostgrestBuilder.d.ts","sourceRoot":"","sources":["../../src/PostgrestBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,KAAK,EACL,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,gBAAgB,CAAC,MAAM,EAAE,YAAY,SAAS,OAAO,GAAG,KAAK,CACzF,YACE,WAAW,CACT,YAAY,SAAS,IAAI,GAAG,wBAAwB,CAAC,MAAM,CAAC,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAC/F;IAEH,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC9D,SAAS,CAAC,GAAG,EAAE,GAAG,CAAA;IAClB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,kBAAkB,UAAQ;IACpC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC9B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAA;IACtB,SAAS,CAAC,aAAa,EAAE,OAAO,CAAA;gBAEpB,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAmB7C;;;;;OAKG;IACH,YAAY,IAAI,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC;IAKrD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5C,IAAI,CACF,QAAQ,GAAG,YAAY,SAAS,IAAI,GAChC,wBAAwB,CAAC,MAAM,CAAC,GAChC,uBAAuB,CAAC,MAAM,CAAC,EACnC,QAAQ,GAAG,KAAK,EAEhB,WAAW,CAAC,EACR,CAAC,CACC,KAAK,EAAE,YAAY,SAAS,IAAI,GAC5B,wBAAwB,CAAC,MAAM,CAAC,GAChC,uBAAuB,CAAC,MAAM,CAAC,KAChC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GACtC,SAAS,GACT,IAAI,EACR,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAClF,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAwInC;;;;;OAKG;IACH,OAAO,CAAC,SAAS,KAAK,gBAAgB,CAAC,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC;IAQhG;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa,CACX,SAAS,EACT,OAAO,SAAS;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,IAAI,CAAA;KAAE,KAClD,gBAAgB,CACnB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,IAAI,GAE/D,YAAY,CAAC,MAAM,CAAC,SAAS,IAAI,GAC/B,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,GAClE,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,GAChD,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,EAC9C,YAAY,CACb;CAWF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostgrestBuilder.js","sourceRoot":"","sources":["../../src/PostgrestBuilder.ts"],"names":[],"mappings":";;;;;AAAA,aAAa;AACb,sEAA4C;AAU5C,sEAA6C;
|
|
1
|
+
{"version":3,"file":"PostgrestBuilder.js","sourceRoot":"","sources":["../../src/PostgrestBuilder.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -67,22 +67,29 @@ declare type ConditionalSimplifyDeep<Type, ExcludeType = never, IncludeType = un
|
|
|
67
67
|
declare type NonRecursiveType = BuiltIns | Function | (new (...arguments_: any[]) => unknown);
|
|
68
68
|
declare type BuiltIns = Primitive | void | Date | RegExp;
|
|
69
69
|
declare type Primitive = null | undefined | string | number | boolean | symbol | bigint;
|
|
70
|
-
export declare type IsValidResultOverride<Result, NewResult,
|
|
70
|
+
export declare type IsValidResultOverride<Result, NewResult, ErrorResult, ErrorNewResult> = Result extends any[] ? NewResult extends any[] ? true : ErrorResult : NewResult extends any[] ? ErrorNewResult : true;
|
|
71
71
|
/**
|
|
72
72
|
* Utility type to check if array types match between Result and NewResult.
|
|
73
73
|
* Returns either the valid NewResult type or an error message type.
|
|
74
74
|
*/
|
|
75
|
-
export declare type CheckMatchingArrayTypes<Result, NewResult> = Result extends SelectQueryError<string> ? NewResult : IsValidResultOverride<Result, NewResult,
|
|
75
|
+
export declare type CheckMatchingArrayTypes<Result, NewResult> = Result extends SelectQueryError<string> ? NewResult : IsValidResultOverride<Result, NewResult, {
|
|
76
76
|
Error: 'Type mismatch: Cannot cast array result to a single object. Use .returns<Array<YourType>> for array results or .single() to convert the result to a single object';
|
|
77
77
|
}, {
|
|
78
78
|
Error: 'Type mismatch: Cannot cast single object to array type. Remove Array wrapper from return type or make sure you are not using .single() up in the calling chain';
|
|
79
|
-
}
|
|
79
|
+
}> extends infer ValidationResult ? ValidationResult extends true ? ContainsNull<Result> extends true ? NewResult | null : NewResult : ValidationResult : never;
|
|
80
80
|
declare type Simplify<T> = T extends object ? {
|
|
81
81
|
[K in keyof T]: T[K];
|
|
82
82
|
} : T;
|
|
83
|
-
declare type
|
|
84
|
-
[K in keyof
|
|
83
|
+
declare type ExplicitKeys<T> = {
|
|
84
|
+
[K in keyof T]: string extends K ? never : K;
|
|
85
|
+
}[keyof T];
|
|
86
|
+
declare type MergeExplicit<New, Row> = {
|
|
87
|
+
[K in ExplicitKeys<New> | ExplicitKeys<Row>]: K extends keyof New ? K extends keyof Row ? Row[K] extends SelectQueryError<string> ? New[K] : New[K] extends any[] ? Row[K] extends any[] ? Array<Simplify<MergeDeep<NonNullable<New[K][number]>, NonNullable<Row[K][number]>>>> : New[K] : IsPlainObject<NonNullable<New[K]>> extends true ? IsPlainObject<NonNullable<Row[K]>> extends true ? ContainsNull<New[K]> extends true ? // If the override wants to preserve optionality
|
|
88
|
+
Simplify<MergeDeep<NonNullable<New[K]>, NonNullable<Row[K]>>> | null : Simplify<MergeDeep<New[K], NonNullable<Row[K]>>> : New[K] : New[K] : New[K] : K extends keyof Row ? Row[K] : never;
|
|
85
89
|
};
|
|
90
|
+
declare type MergeDeep<New, Row> = Simplify<MergeExplicit<New, Row> & (string extends keyof Row ? {
|
|
91
|
+
[K: string]: Row[string];
|
|
92
|
+
} : {})>;
|
|
86
93
|
declare type IsPlainObject<T> = T extends any[] ? false : T extends object ? true : false;
|
|
87
94
|
export declare type MergePartialResult<NewResult, Result, Options> = Options extends {
|
|
88
95
|
merge: true;
|
package/dist/cjs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/PostgrestBuilder.ts
CHANGED
|
@@ -10,6 +10,7 @@ import type {
|
|
|
10
10
|
IsValidResultOverride,
|
|
11
11
|
} from './types'
|
|
12
12
|
import PostgrestError from './PostgrestError'
|
|
13
|
+
import { ContainsNull } from './select-query-parser/types'
|
|
13
14
|
|
|
14
15
|
export default abstract class PostgrestBuilder<Result, ThrowOnError extends boolean = false>
|
|
15
16
|
implements
|
|
@@ -257,14 +258,20 @@ export default abstract class PostgrestBuilder<Result, ThrowOnError extends bool
|
|
|
257
258
|
NewResult,
|
|
258
259
|
Options extends { merge?: boolean } = { merge: true }
|
|
259
260
|
>(): PostgrestBuilder<
|
|
260
|
-
IsValidResultOverride<Result, NewResult,
|
|
261
|
-
?
|
|
261
|
+
IsValidResultOverride<Result, NewResult, false, false> extends true
|
|
262
|
+
? // Preserve the optionality of the result if the overriden type is an object (case of chaining with `maybeSingle`)
|
|
263
|
+
ContainsNull<Result> extends true
|
|
264
|
+
? MergePartialResult<NewResult, NonNullable<Result>, Options> | null
|
|
265
|
+
: MergePartialResult<NewResult, Result, Options>
|
|
262
266
|
: CheckMatchingArrayTypes<Result, NewResult>,
|
|
263
267
|
ThrowOnError
|
|
264
268
|
> {
|
|
265
269
|
return this as unknown as PostgrestBuilder<
|
|
266
|
-
IsValidResultOverride<Result, NewResult,
|
|
267
|
-
?
|
|
270
|
+
IsValidResultOverride<Result, NewResult, false, false> extends true
|
|
271
|
+
? // Preserve the optionality of the result if the overriden type is an object (case of chaining with `maybeSingle`)
|
|
272
|
+
ContainsNull<Result> extends true
|
|
273
|
+
? MergePartialResult<NewResult, NonNullable<Result>, Options> | null
|
|
274
|
+
: MergePartialResult<NewResult, Result, Options>
|
|
268
275
|
: CheckMatchingArrayTypes<Result, NewResult>,
|
|
269
276
|
ThrowOnError
|
|
270
277
|
>
|
package/src/types.ts
CHANGED
|
@@ -92,20 +92,16 @@ type NonRecursiveType = BuiltIns | Function | (new (...arguments_: any[]) => unk
|
|
|
92
92
|
type BuiltIns = Primitive | void | Date | RegExp
|
|
93
93
|
type Primitive = null | undefined | string | number | boolean | symbol | bigint
|
|
94
94
|
|
|
95
|
-
export type IsValidResultOverride<Result, NewResult,
|
|
95
|
+
export type IsValidResultOverride<Result, NewResult, ErrorResult, ErrorNewResult> =
|
|
96
96
|
Result extends any[]
|
|
97
97
|
? NewResult extends any[]
|
|
98
98
|
? // Both are arrays - valid
|
|
99
|
-
|
|
99
|
+
true
|
|
100
100
|
: ErrorResult
|
|
101
101
|
: NewResult extends any[]
|
|
102
102
|
? ErrorNewResult
|
|
103
103
|
: // Neither are arrays - valid
|
|
104
|
-
|
|
105
|
-
ContainsNull<Result> extends true
|
|
106
|
-
? Ok | null
|
|
107
|
-
: Ok
|
|
108
|
-
|
|
104
|
+
true
|
|
109
105
|
/**
|
|
110
106
|
* Utility type to check if array types match between Result and NewResult.
|
|
111
107
|
* Returns either the valid NewResult type or an error message type.
|
|
@@ -117,31 +113,67 @@ export type CheckMatchingArrayTypes<Result, NewResult> =
|
|
|
117
113
|
: IsValidResultOverride<
|
|
118
114
|
Result,
|
|
119
115
|
NewResult,
|
|
120
|
-
NewResult,
|
|
121
116
|
{
|
|
122
117
|
Error: 'Type mismatch: Cannot cast array result to a single object. Use .returns<Array<YourType>> for array results or .single() to convert the result to a single object'
|
|
123
118
|
},
|
|
124
119
|
{
|
|
125
120
|
Error: 'Type mismatch: Cannot cast single object to array type. Remove Array wrapper from return type or make sure you are not using .single() up in the calling chain'
|
|
126
121
|
}
|
|
127
|
-
>
|
|
122
|
+
> extends infer ValidationResult
|
|
123
|
+
? ValidationResult extends true
|
|
124
|
+
? // Preserve the optionality of the result if the overriden type is an object (case of chaining with `maybeSingle`)
|
|
125
|
+
ContainsNull<Result> extends true
|
|
126
|
+
? NewResult | null
|
|
127
|
+
: NewResult
|
|
128
|
+
: // contains the error
|
|
129
|
+
ValidationResult
|
|
130
|
+
: never
|
|
128
131
|
|
|
129
132
|
type Simplify<T> = T extends object ? { [K in keyof T]: T[K] } : T
|
|
130
133
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
134
|
+
// Extract only explicit (non-index-signature) keys.
|
|
135
|
+
type ExplicitKeys<T> = {
|
|
136
|
+
[K in keyof T]: string extends K ? never : K
|
|
137
|
+
}[keyof T]
|
|
138
|
+
|
|
139
|
+
type MergeExplicit<New, Row> = {
|
|
140
|
+
// We merge all the explicit keys which allows merge and override of types like
|
|
141
|
+
// { [key: string]: unknown } and { someSpecificKey: boolean }
|
|
142
|
+
[K in ExplicitKeys<New> | ExplicitKeys<Row>]: K extends keyof New
|
|
143
|
+
? K extends keyof Row
|
|
144
|
+
? Row[K] extends SelectQueryError<string>
|
|
145
|
+
? New[K]
|
|
146
|
+
: // Check if the override is on a embedded relation (array)
|
|
147
|
+
New[K] extends any[]
|
|
148
|
+
? Row[K] extends any[]
|
|
149
|
+
? Array<Simplify<MergeDeep<NonNullable<New[K][number]>, NonNullable<Row[K][number]>>>>
|
|
150
|
+
: New[K]
|
|
151
|
+
: // Check if both properties are objects omitting a potential null union
|
|
152
|
+
IsPlainObject<NonNullable<New[K]>> extends true
|
|
153
|
+
? IsPlainObject<NonNullable<Row[K]>> extends true
|
|
154
|
+
? // If they are, use the new override as source of truth for the optionality
|
|
155
|
+
ContainsNull<New[K]> extends true
|
|
156
|
+
? // If the override wants to preserve optionality
|
|
157
|
+
Simplify<MergeDeep<NonNullable<New[K]>, NonNullable<Row[K]>>> | null
|
|
158
|
+
: // If the override wants to enforce non-null result
|
|
159
|
+
Simplify<MergeDeep<New[K], NonNullable<Row[K]>>>
|
|
160
|
+
: New[K] // Override with New type if Row isn't an object
|
|
161
|
+
: New[K] // Override primitives with New type
|
|
162
|
+
: New[K] // Add new properties from New
|
|
163
|
+
: K extends keyof Row
|
|
164
|
+
? Row[K] // Keep existing properties not in New
|
|
142
165
|
: never
|
|
143
166
|
}
|
|
144
167
|
|
|
168
|
+
type MergeDeep<New, Row> = Simplify<
|
|
169
|
+
MergeExplicit<New, Row> &
|
|
170
|
+
// Intersection here is to restore dynamic keys into the merging result
|
|
171
|
+
// eg:
|
|
172
|
+
// {[key: number]: string}
|
|
173
|
+
// or Record<string, number | null>
|
|
174
|
+
(string extends keyof Row ? { [K: string]: Row[string] } : {})
|
|
175
|
+
>
|
|
176
|
+
|
|
145
177
|
// Helper to check if a type is a plain object (not an array)
|
|
146
178
|
type IsPlainObject<T> = T extends any[] ? false : T extends object ? true : false
|
|
147
179
|
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '1.19.
|
|
1
|
+
export const version = '1.19.2'
|