@supabase/postgrest-js 0.37.2 → 1.0.0-next.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/README.md +4 -4
- package/dist/main/PostgrestBuilder.d.ts +24 -0
- package/dist/main/PostgrestBuilder.d.ts.map +1 -0
- package/dist/main/{lib/types.js → PostgrestBuilder.js} +36 -26
- package/dist/main/PostgrestBuilder.js.map +1 -0
- package/dist/main/PostgrestClient.d.ts +19 -20
- package/dist/main/PostgrestClient.d.ts.map +1 -1
- package/dist/main/PostgrestClient.js +37 -14
- package/dist/main/PostgrestClient.js.map +1 -1
- package/dist/main/{lib/PostgrestFilterBuilder.d.ts → PostgrestFilterBuilder.d.ts} +47 -90
- package/dist/main/PostgrestFilterBuilder.d.ts.map +1 -0
- package/dist/main/PostgrestFilterBuilder.js +162 -0
- package/dist/main/PostgrestFilterBuilder.js.map +1 -0
- package/dist/main/PostgrestQueryBuilder.d.ts +69 -0
- package/dist/main/PostgrestQueryBuilder.d.ts.map +1 -0
- package/dist/main/{lib/PostgrestQueryBuilder.js → PostgrestQueryBuilder.js} +81 -44
- package/dist/main/PostgrestQueryBuilder.js.map +1 -0
- package/dist/{module/lib → main}/PostgrestTransformBuilder.d.ts +14 -7
- package/dist/main/PostgrestTransformBuilder.d.ts.map +1 -0
- package/dist/main/{lib/PostgrestTransformBuilder.js → PostgrestTransformBuilder.js} +16 -31
- package/dist/main/PostgrestTransformBuilder.js.map +1 -0
- package/dist/main/{lib/constants.d.ts → constants.d.ts} +0 -0
- package/dist/main/constants.d.ts.map +1 -0
- package/dist/main/{lib/constants.js → constants.js} +0 -0
- package/dist/main/constants.js.map +1 -0
- package/dist/main/index.d.ts +6 -5
- package/dist/main/index.d.ts.map +1 -1
- package/dist/main/index.js +11 -9
- package/dist/main/index.js.map +1 -1
- package/dist/main/select-query-parser.d.ts +141 -0
- package/dist/main/select-query-parser.d.ts.map +1 -0
- package/dist/main/select-query-parser.js +4 -0
- package/dist/main/select-query-parser.js.map +1 -0
- package/dist/main/types.d.ts +54 -0
- package/dist/main/types.d.ts.map +1 -0
- package/dist/main/types.js +3 -0
- package/dist/main/types.js.map +1 -0
- package/dist/main/version.d.ts +2 -0
- package/dist/main/version.d.ts.map +1 -0
- package/dist/main/{lib/version.js → version.js} +1 -2
- package/dist/main/version.js.map +1 -0
- package/dist/module/PostgrestBuilder.d.ts +24 -0
- package/dist/module/PostgrestBuilder.d.ts.map +1 -0
- package/dist/module/{lib/types.js → PostgrestBuilder.js} +36 -25
- package/dist/module/PostgrestBuilder.js.map +1 -0
- package/dist/module/PostgrestClient.d.ts +19 -20
- package/dist/module/PostgrestClient.d.ts.map +1 -1
- package/dist/module/PostgrestClient.js +37 -14
- package/dist/module/PostgrestClient.js.map +1 -1
- package/dist/module/{lib/PostgrestFilterBuilder.d.ts → PostgrestFilterBuilder.d.ts} +47 -90
- package/dist/module/PostgrestFilterBuilder.d.ts.map +1 -0
- package/dist/module/PostgrestFilterBuilder.js +156 -0
- package/dist/module/PostgrestFilterBuilder.js.map +1 -0
- package/dist/module/PostgrestQueryBuilder.d.ts +69 -0
- package/dist/module/PostgrestQueryBuilder.d.ts.map +1 -0
- package/dist/module/PostgrestQueryBuilder.js +169 -0
- package/dist/module/PostgrestQueryBuilder.js.map +1 -0
- package/dist/{main/lib → module}/PostgrestTransformBuilder.d.ts +14 -7
- package/dist/module/PostgrestTransformBuilder.d.ts.map +1 -0
- package/dist/module/{lib/PostgrestTransformBuilder.js → PostgrestTransformBuilder.js} +12 -30
- package/dist/module/PostgrestTransformBuilder.js.map +1 -0
- package/dist/module/{lib/constants.d.ts → constants.d.ts} +0 -0
- package/dist/module/constants.d.ts.map +1 -0
- package/dist/module/{lib/constants.js → constants.js} +0 -0
- package/dist/module/constants.js.map +1 -0
- package/dist/module/index.d.ts +6 -5
- package/dist/module/index.d.ts.map +1 -1
- package/dist/module/index.js +5 -5
- package/dist/module/index.js.map +1 -1
- package/dist/module/select-query-parser.d.ts +141 -0
- package/dist/module/select-query-parser.d.ts.map +1 -0
- package/dist/module/select-query-parser.js +3 -0
- package/dist/module/select-query-parser.js.map +1 -0
- package/dist/module/types.d.ts +54 -0
- package/dist/module/types.d.ts.map +1 -0
- package/dist/module/types.js +2 -0
- package/dist/module/types.js.map +1 -0
- package/dist/module/version.d.ts +2 -0
- package/dist/module/version.d.ts.map +1 -0
- package/dist/module/version.js +2 -0
- package/dist/module/version.js.map +1 -0
- package/package.json +19 -20
- package/dist/main/lib/PostgrestFilterBuilder.d.ts.map +0 -1
- package/dist/main/lib/PostgrestFilterBuilder.js +0 -396
- package/dist/main/lib/PostgrestFilterBuilder.js.map +0 -1
- package/dist/main/lib/PostgrestQueryBuilder.d.ts +0 -80
- package/dist/main/lib/PostgrestQueryBuilder.d.ts.map +0 -1
- package/dist/main/lib/PostgrestQueryBuilder.js.map +0 -1
- package/dist/main/lib/PostgrestRpcBuilder.d.ts +0 -20
- package/dist/main/lib/PostgrestRpcBuilder.d.ts.map +0 -1
- package/dist/main/lib/PostgrestRpcBuilder.js +0 -41
- package/dist/main/lib/PostgrestRpcBuilder.js.map +0 -1
- package/dist/main/lib/PostgrestTransformBuilder.d.ts.map +0 -1
- package/dist/main/lib/PostgrestTransformBuilder.js.map +0 -1
- package/dist/main/lib/constants.d.ts.map +0 -1
- package/dist/main/lib/constants.js.map +0 -1
- package/dist/main/lib/types.d.ts +0 -64
- package/dist/main/lib/types.d.ts.map +0 -1
- package/dist/main/lib/types.js.map +0 -1
- package/dist/main/lib/version.d.ts +0 -2
- package/dist/main/lib/version.d.ts.map +0 -1
- package/dist/main/lib/version.js.map +0 -1
- package/dist/module/lib/PostgrestFilterBuilder.d.ts.map +0 -1
- package/dist/module/lib/PostgrestFilterBuilder.js +0 -390
- package/dist/module/lib/PostgrestFilterBuilder.js.map +0 -1
- package/dist/module/lib/PostgrestQueryBuilder.d.ts +0 -80
- package/dist/module/lib/PostgrestQueryBuilder.d.ts.map +0 -1
- package/dist/module/lib/PostgrestQueryBuilder.js +0 -132
- package/dist/module/lib/PostgrestQueryBuilder.js.map +0 -1
- package/dist/module/lib/PostgrestRpcBuilder.d.ts +0 -20
- package/dist/module/lib/PostgrestRpcBuilder.d.ts.map +0 -1
- package/dist/module/lib/PostgrestRpcBuilder.js +0 -35
- package/dist/module/lib/PostgrestRpcBuilder.js.map +0 -1
- package/dist/module/lib/PostgrestTransformBuilder.d.ts.map +0 -1
- package/dist/module/lib/PostgrestTransformBuilder.js.map +0 -1
- package/dist/module/lib/constants.d.ts.map +0 -1
- package/dist/module/lib/constants.js.map +0 -1
- package/dist/module/lib/types.d.ts +0 -64
- package/dist/module/lib/types.d.ts.map +0 -1
- package/dist/module/lib/types.js.map +0 -1
- package/dist/module/lib/version.d.ts +0 -2
- package/dist/module/lib/version.d.ts.map +0 -1
- package/dist/module/lib/version.js +0 -3
- package/dist/module/lib/version.js.map +0 -1
- package/src/PostgrestClient.ts +0 -94
- package/src/index.ts +0 -21
- package/src/lib/PostgrestFilterBuilder.ts +0 -469
- package/src/lib/PostgrestQueryBuilder.ts +0 -230
- package/src/lib/PostgrestRpcBuilder.ts +0 -58
- package/src/lib/PostgrestTransformBuilder.ts +0 -138
- package/src/lib/constants.ts +0 -2
- package/src/lib/types.ts +0 -183
- package/src/lib/version.ts +0 -2
package/README.md
CHANGED
|
@@ -25,10 +25,10 @@ const REST_URL = 'http://localhost:3000'
|
|
|
25
25
|
const postgrest = new PostgrestClient(REST_URL)
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
- select(): https://supabase.
|
|
29
|
-
- insert(): https://supabase.
|
|
30
|
-
- update(): https://supabase.
|
|
31
|
-
- delete(): https://supabase.
|
|
28
|
+
- select(): https://supabase.com/docs/reference/javascript/select
|
|
29
|
+
- insert(): https://supabase.com/docs/reference/javascript/insert
|
|
30
|
+
- update(): https://supabase.com/docs/reference/javascript/update
|
|
31
|
+
- delete(): https://supabase.com/docs/reference/javascript/delete
|
|
32
32
|
|
|
33
33
|
#### Custom `fetch` implementation
|
|
34
34
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Fetch, PostgrestResponse } from './types';
|
|
2
|
+
export default abstract class PostgrestBuilder<Result> implements PromiseLike<PostgrestResponse<Result>> {
|
|
3
|
+
protected method: 'GET' | 'HEAD' | 'POST' | 'PATCH' | 'DELETE';
|
|
4
|
+
protected url: URL;
|
|
5
|
+
protected headers: Record<string, string>;
|
|
6
|
+
protected schema?: string;
|
|
7
|
+
protected body?: unknown;
|
|
8
|
+
protected shouldThrowOnError: boolean;
|
|
9
|
+
protected signal?: AbortSignal;
|
|
10
|
+
protected fetch: Fetch;
|
|
11
|
+
protected allowEmpty: boolean;
|
|
12
|
+
constructor(builder: PostgrestBuilder<Result>);
|
|
13
|
+
/**
|
|
14
|
+
* If there's an error with the query, throwOnError will reject the promise by
|
|
15
|
+
* throwing the error instead of returning it as part of a successful response.
|
|
16
|
+
*
|
|
17
|
+
* {@link https://github.com/supabase/supabase-js/issues/92}
|
|
18
|
+
*
|
|
19
|
+
* @deprecated Use `throwOnError` in the `PostgrestClient` constructor instead.
|
|
20
|
+
*/
|
|
21
|
+
throwOnError(throwOnError?: boolean): this;
|
|
22
|
+
then<TResult1 = PostgrestResponse<Result>, TResult2 = never>(onfulfilled?: ((value: PostgrestResponse<Result>) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=PostgrestBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostgrestBuilder.d.ts","sourceRoot":"","sources":["../../src/PostgrestBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEvD,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,gBAAgB,CAAC,MAAM,CACnD,YAAW,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEjD,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,EAAE,OAAO,CAAA;IACrC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC9B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAA;IACtB,SAAS,CAAC,UAAU,EAAE,OAAO,CAAA;gBAEjB,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAmB7C;;;;;;;OAOG;IACH,YAAY,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAK1C,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,KAAK,EACzD,WAAW,CAAC,EACR,CAAC,CAAC,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GACxE,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;CA+FpC"}
|
|
@@ -12,35 +12,37 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.PostgrestBuilder = void 0;
|
|
16
15
|
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
|
17
16
|
class PostgrestBuilder {
|
|
18
17
|
constructor(builder) {
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
this.method = builder.method;
|
|
19
|
+
this.url = builder.url;
|
|
20
|
+
this.headers = builder.headers;
|
|
21
|
+
this.schema = builder.schema;
|
|
22
|
+
this.body = builder.body;
|
|
23
|
+
this.shouldThrowOnError = builder.shouldThrowOnError;
|
|
24
|
+
this.signal = builder.signal;
|
|
25
|
+
this.allowEmpty = builder.allowEmpty;
|
|
21
26
|
if (builder.fetch) {
|
|
22
|
-
|
|
27
|
+
this.fetch = builder.fetch;
|
|
23
28
|
}
|
|
24
29
|
else if (typeof fetch === 'undefined') {
|
|
25
|
-
|
|
30
|
+
this.fetch = cross_fetch_1.default;
|
|
26
31
|
}
|
|
27
32
|
else {
|
|
28
|
-
|
|
33
|
+
this.fetch = fetch;
|
|
29
34
|
}
|
|
30
|
-
this.fetch = (...args) => _fetch(...args);
|
|
31
|
-
this.shouldThrowOnError = builder.shouldThrowOnError || false;
|
|
32
35
|
}
|
|
33
36
|
/**
|
|
34
37
|
* If there's an error with the query, throwOnError will reject the promise by
|
|
35
38
|
* throwing the error instead of returning it as part of a successful response.
|
|
36
39
|
*
|
|
37
40
|
* {@link https://github.com/supabase/supabase-js/issues/92}
|
|
41
|
+
*
|
|
42
|
+
* @deprecated Use `throwOnError` in the `PostgrestClient` constructor instead.
|
|
38
43
|
*/
|
|
39
44
|
throwOnError(throwOnError) {
|
|
40
|
-
|
|
41
|
-
throwOnError = true;
|
|
42
|
-
}
|
|
43
|
-
this.shouldThrowOnError = throwOnError;
|
|
45
|
+
this.shouldThrowOnError = throwOnError !== null && throwOnError !== void 0 ? throwOnError : true;
|
|
44
46
|
return this;
|
|
45
47
|
}
|
|
46
48
|
then(onfulfilled, onrejected) {
|
|
@@ -57,16 +59,21 @@ class PostgrestBuilder {
|
|
|
57
59
|
if (this.method !== 'GET' && this.method !== 'HEAD') {
|
|
58
60
|
this.headers['Content-Type'] = 'application/json';
|
|
59
61
|
}
|
|
60
|
-
|
|
62
|
+
// NOTE: Invoke w/o `this` to avoid illegal invocation error.
|
|
63
|
+
// https://github.com/supabase/postgrest-js/pull/247
|
|
64
|
+
const _fetch = this.fetch;
|
|
65
|
+
let res = _fetch(this.url.toString(), {
|
|
61
66
|
method: this.method,
|
|
62
67
|
headers: this.headers,
|
|
63
68
|
body: JSON.stringify(this.body),
|
|
64
69
|
signal: this.signal,
|
|
65
70
|
}).then((res) => __awaiter(this, void 0, void 0, function* () {
|
|
66
|
-
var _a, _b, _c;
|
|
67
|
-
let error =
|
|
68
|
-
let data =
|
|
69
|
-
let count =
|
|
71
|
+
var _a, _b, _c, _d;
|
|
72
|
+
let error = undefined;
|
|
73
|
+
let data = undefined;
|
|
74
|
+
let count = undefined;
|
|
75
|
+
let status = res.status;
|
|
76
|
+
let statusText = res.statusText;
|
|
70
77
|
if (res.ok) {
|
|
71
78
|
const isReturnMinimal = (_a = this.headers['Prefer']) === null || _a === void 0 ? void 0 : _a.split(',').includes('return=minimal');
|
|
72
79
|
if (this.method !== 'HEAD' && !isReturnMinimal) {
|
|
@@ -92,11 +99,16 @@ class PostgrestBuilder {
|
|
|
92
99
|
try {
|
|
93
100
|
error = JSON.parse(body);
|
|
94
101
|
}
|
|
95
|
-
catch (
|
|
102
|
+
catch (_e) {
|
|
96
103
|
error = {
|
|
97
104
|
message: body,
|
|
98
105
|
};
|
|
99
106
|
}
|
|
107
|
+
if (error && this.allowEmpty && ((_d = error === null || error === void 0 ? void 0 : error.details) === null || _d === void 0 ? void 0 : _d.includes('Results contain 0 rows'))) {
|
|
108
|
+
error = undefined;
|
|
109
|
+
status = 200;
|
|
110
|
+
statusText = 'OK';
|
|
111
|
+
}
|
|
100
112
|
if (error && this.shouldThrowOnError) {
|
|
101
113
|
throw error;
|
|
102
114
|
}
|
|
@@ -105,9 +117,8 @@ class PostgrestBuilder {
|
|
|
105
117
|
error,
|
|
106
118
|
data,
|
|
107
119
|
count,
|
|
108
|
-
status
|
|
109
|
-
statusText
|
|
110
|
-
body: data,
|
|
120
|
+
status,
|
|
121
|
+
statusText,
|
|
111
122
|
};
|
|
112
123
|
return postgrestResponse;
|
|
113
124
|
}));
|
|
@@ -119,9 +130,8 @@ class PostgrestBuilder {
|
|
|
119
130
|
hint: '',
|
|
120
131
|
code: fetchError.code || '',
|
|
121
132
|
},
|
|
122
|
-
data:
|
|
123
|
-
|
|
124
|
-
count: null,
|
|
133
|
+
data: undefined,
|
|
134
|
+
count: undefined,
|
|
125
135
|
status: 400,
|
|
126
136
|
statusText: 'Bad Request',
|
|
127
137
|
}));
|
|
@@ -129,5 +139,5 @@ class PostgrestBuilder {
|
|
|
129
139
|
return res.then(onfulfilled, onrejected);
|
|
130
140
|
}
|
|
131
141
|
}
|
|
132
|
-
exports.
|
|
133
|
-
//# sourceMappingURL=
|
|
142
|
+
exports.default = PostgrestBuilder;
|
|
143
|
+
//# sourceMappingURL=PostgrestBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostgrestBuilder.js","sourceRoot":"","sources":["../../src/PostgrestBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import PostgrestQueryBuilder from './
|
|
2
|
-
import PostgrestFilterBuilder from './
|
|
3
|
-
import { Fetch } from './
|
|
4
|
-
export default class PostgrestClient {
|
|
1
|
+
import PostgrestQueryBuilder from './PostgrestQueryBuilder';
|
|
2
|
+
import PostgrestFilterBuilder from './PostgrestFilterBuilder';
|
|
3
|
+
import { Fetch, GenericSchema } from './types';
|
|
4
|
+
export default class PostgrestClient<Database = any, SchemaName extends string & keyof Database = 'public' extends keyof Database ? 'public' : string & keyof Database, Schema extends GenericSchema = Database[SchemaName] extends GenericSchema ? Database[SchemaName] : any> {
|
|
5
5
|
url: string;
|
|
6
|
-
headers:
|
|
7
|
-
|
|
8
|
-
};
|
|
9
|
-
schema?: string;
|
|
6
|
+
headers: Record<string, string>;
|
|
7
|
+
schema?: SchemaName;
|
|
10
8
|
fetch?: Fetch;
|
|
11
|
-
shouldThrowOnError
|
|
9
|
+
shouldThrowOnError: boolean;
|
|
12
10
|
/**
|
|
13
11
|
* Creates a PostgREST client.
|
|
14
12
|
*
|
|
@@ -17,10 +15,8 @@ export default class PostgrestClient {
|
|
|
17
15
|
* @param schema Postgres schema to switch to.
|
|
18
16
|
*/
|
|
19
17
|
constructor(url: string, { headers, schema, fetch, throwOnError, }?: {
|
|
20
|
-
headers?:
|
|
21
|
-
|
|
22
|
-
};
|
|
23
|
-
schema?: string;
|
|
18
|
+
headers?: Record<string, string>;
|
|
19
|
+
schema?: SchemaName;
|
|
24
20
|
fetch?: Fetch;
|
|
25
21
|
throwOnError?: boolean;
|
|
26
22
|
});
|
|
@@ -28,6 +24,8 @@ export default class PostgrestClient {
|
|
|
28
24
|
* Authenticates the request with JWT.
|
|
29
25
|
*
|
|
30
26
|
* @param token The JWT token to use.
|
|
27
|
+
*
|
|
28
|
+
* @deprecated Use `headers` in constructor instead.
|
|
31
29
|
*/
|
|
32
30
|
auth(token: string): this;
|
|
33
31
|
/**
|
|
@@ -35,18 +33,19 @@ export default class PostgrestClient {
|
|
|
35
33
|
*
|
|
36
34
|
* @param table The table name to operate on.
|
|
37
35
|
*/
|
|
38
|
-
from<
|
|
36
|
+
from<TableName extends string & keyof Schema['Tables'], Table extends Schema['Tables'][TableName]>(table: TableName): PostgrestQueryBuilder<Table>;
|
|
39
37
|
/**
|
|
40
38
|
* Perform a function call.
|
|
41
39
|
*
|
|
42
40
|
* @param fn The function name to call.
|
|
43
|
-
* @param
|
|
44
|
-
* @param
|
|
45
|
-
* @param
|
|
41
|
+
* @param args The parameters to pass to the function call.
|
|
42
|
+
* @param options Named parameters.
|
|
43
|
+
* @param options.head When set to true, no data will be returned.
|
|
44
|
+
* @param options.count Count algorithm to use to count rows in a table.
|
|
46
45
|
*/
|
|
47
|
-
rpc<
|
|
46
|
+
rpc<FunctionName extends string & keyof Schema['Functions'], Function_ extends Schema['Functions'][FunctionName]>(fn: FunctionName, args?: Function_['Args'], { head, count, }?: {
|
|
48
47
|
head?: boolean;
|
|
49
|
-
count?:
|
|
50
|
-
}): PostgrestFilterBuilder<
|
|
48
|
+
count?: 'exact' | 'planned' | 'estimated';
|
|
49
|
+
}): PostgrestFilterBuilder<Function_['Returns'] extends any[] ? Function_['Returns'][number] extends Record<string, unknown> ? Function_['Returns'][number] : never : never, Function_['Returns']>;
|
|
51
50
|
}
|
|
52
51
|
//# sourceMappingURL=PostgrestClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostgrestClient.d.ts","sourceRoot":"","sources":["../../src/PostgrestClient.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,
|
|
1
|
+
{"version":3,"file":"PostgrestClient.d.ts","sourceRoot":"","sources":["../../src/PostgrestClient.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,sBAAsB,MAAM,0BAA0B,CAAA;AAG7D,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,CAAC,OAAO,OAAO,eAAe,CAClC,QAAQ,GAAG,GAAG,EACd,UAAU,SAAS,MAAM,GAAG,MAAM,QAAQ,GAAG,QAAQ,SAAS,MAAM,QAAQ,GACxE,QAAQ,GACR,MAAM,GAAG,MAAM,QAAQ,EAC3B,MAAM,SAAS,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,aAAa,GACrE,QAAQ,CAAC,UAAU,CAAC,GACpB,GAAG;IAEP,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,kBAAkB,EAAE,OAAO,CAAA;IAE3B;;;;;;OAMG;gBAED,GAAG,EAAE,MAAM,EACX,EACE,OAAY,EACZ,MAAM,EACN,KAAK,EACL,YAAoB,GACrB,GAAE;QACD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChC,MAAM,CAAC,EAAE,UAAU,CAAA;QACnB,KAAK,CAAC,EAAE,KAAK,CAAA;QACb,YAAY,CAAC,EAAE,OAAO,CAAA;KAClB;IASR;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB;;;;OAIG;IACH,IAAI,CACF,SAAS,SAAS,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EACjD,KAAK,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EACzC,KAAK,EAAE,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC;IAUjD;;;;;;;;OAQG;IACH,GAAG,CACD,YAAY,SAAS,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EACvD,SAAS,SAAS,MAAM,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,EAEnD,EAAE,EAAE,YAAY,EAChB,IAAI,GAAE,SAAS,CAAC,MAAM,CAAM,EAC5B,EACE,IAAY,EACZ,KAAK,GACN,GAAE;QACD,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;KACrC,GACL,sBAAsB,CACvB,SAAS,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE,GAC9B,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC1D,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAC5B,KAAK,GACP,KAAK,EACT,SAAS,CAAC,SAAS,CAAC,CACrB;CA8BF"}
|
|
@@ -3,9 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const PostgrestQueryBuilder_1 = __importDefault(require("./
|
|
7
|
-
const
|
|
8
|
-
const constants_1 = require("./
|
|
6
|
+
const PostgrestQueryBuilder_1 = __importDefault(require("./PostgrestQueryBuilder"));
|
|
7
|
+
const PostgrestFilterBuilder_1 = __importDefault(require("./PostgrestFilterBuilder"));
|
|
8
|
+
const constants_1 = require("./constants");
|
|
9
9
|
class PostgrestClient {
|
|
10
10
|
/**
|
|
11
11
|
* Creates a PostgREST client.
|
|
@@ -14,7 +14,7 @@ class PostgrestClient {
|
|
|
14
14
|
* @param headers Custom headers.
|
|
15
15
|
* @param schema Postgres schema to switch to.
|
|
16
16
|
*/
|
|
17
|
-
constructor(url, { headers = {}, schema, fetch, throwOnError, } = {}) {
|
|
17
|
+
constructor(url, { headers = {}, schema, fetch, throwOnError = false, } = {}) {
|
|
18
18
|
this.url = url;
|
|
19
19
|
this.headers = Object.assign(Object.assign({}, constants_1.DEFAULT_HEADERS), headers);
|
|
20
20
|
this.schema = schema;
|
|
@@ -25,6 +25,8 @@ class PostgrestClient {
|
|
|
25
25
|
* Authenticates the request with JWT.
|
|
26
26
|
*
|
|
27
27
|
* @param token The JWT token to use.
|
|
28
|
+
*
|
|
29
|
+
* @deprecated Use `headers` in constructor instead.
|
|
28
30
|
*/
|
|
29
31
|
auth(token) {
|
|
30
32
|
this.headers['Authorization'] = `Bearer ${token}`;
|
|
@@ -36,9 +38,9 @@ class PostgrestClient {
|
|
|
36
38
|
* @param table The table name to operate on.
|
|
37
39
|
*/
|
|
38
40
|
from(table) {
|
|
39
|
-
const url = `${this.url}/${table}
|
|
41
|
+
const url = new URL(`${this.url}/${table}`);
|
|
40
42
|
return new PostgrestQueryBuilder_1.default(url, {
|
|
41
|
-
headers: this.headers,
|
|
43
|
+
headers: Object.assign({}, this.headers),
|
|
42
44
|
schema: this.schema,
|
|
43
45
|
fetch: this.fetch,
|
|
44
46
|
shouldThrowOnError: this.shouldThrowOnError,
|
|
@@ -48,18 +50,39 @@ class PostgrestClient {
|
|
|
48
50
|
* Perform a function call.
|
|
49
51
|
*
|
|
50
52
|
* @param fn The function name to call.
|
|
51
|
-
* @param
|
|
52
|
-
* @param
|
|
53
|
-
* @param
|
|
53
|
+
* @param args The parameters to pass to the function call.
|
|
54
|
+
* @param options Named parameters.
|
|
55
|
+
* @param options.head When set to true, no data will be returned.
|
|
56
|
+
* @param options.count Count algorithm to use to count rows in a table.
|
|
54
57
|
*/
|
|
55
|
-
rpc(fn,
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
rpc(fn, args = {}, { head = false, count, } = {}) {
|
|
59
|
+
let method;
|
|
60
|
+
const url = new URL(`${this.url}/rpc/${fn}`);
|
|
61
|
+
let body;
|
|
62
|
+
if (head) {
|
|
63
|
+
method = 'HEAD';
|
|
64
|
+
Object.entries(args).forEach(([name, value]) => {
|
|
65
|
+
url.searchParams.append(name, `${value}`);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
method = 'POST';
|
|
70
|
+
body = args;
|
|
71
|
+
}
|
|
72
|
+
const headers = Object.assign({}, this.headers);
|
|
73
|
+
if (count) {
|
|
74
|
+
headers['Prefer'] = `count=${count}`;
|
|
75
|
+
}
|
|
76
|
+
return new PostgrestFilterBuilder_1.default({
|
|
77
|
+
method,
|
|
78
|
+
url,
|
|
79
|
+
headers,
|
|
59
80
|
schema: this.schema,
|
|
81
|
+
body,
|
|
60
82
|
fetch: this.fetch,
|
|
61
83
|
shouldThrowOnError: this.shouldThrowOnError,
|
|
62
|
-
|
|
84
|
+
allowEmpty: false,
|
|
85
|
+
});
|
|
63
86
|
}
|
|
64
87
|
}
|
|
65
88
|
exports.default = PostgrestClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostgrestClient.js","sourceRoot":"","sources":["../../src/PostgrestClient.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"PostgrestClient.js","sourceRoot":"","sources":["../../src/PostgrestClient.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2D;AAC3D,sFAA6D;AAE7D,2CAA6C;AAG7C,MAAqB,eAAe;IAelC;;;;;;OAMG;IACH,YACE,GAAW,EACX,EACE,OAAO,GAAG,EAAE,EACZ,MAAM,EACN,KAAK,EACL,YAAY,GAAG,KAAK,MAMlB,EAAE;QAEN,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,mCAAQ,2BAAe,GAAK,OAAO,CAAE,CAAA;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAA;IACxC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAA;QACjD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACH,IAAI,CAGF,KAAgB;QAChB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,CAAA;QAC3C,OAAO,IAAI,+BAAqB,CAAQ,GAAG,EAAE;YAC3C,OAAO,oBAAO,IAAI,CAAC,OAAO,CAAE;YAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;SAC5C,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,GAAG,CAID,EAAgB,EAChB,OAA0B,EAAE,EAC5B,EACE,IAAI,GAAG,KAAK,EACZ,KAAK,MAIH,EAAE;QASN,IAAI,MAAuB,CAAA;QAC3B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAA;QAC5C,IAAI,IAAyB,CAAA;QAC7B,IAAI,IAAI,EAAE;YACR,MAAM,GAAG,MAAM,CAAA;YACf,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC7C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;YAC3C,CAAC,CAAC,CAAA;SACH;aAAM;YACL,MAAM,GAAG,MAAM,CAAA;YACf,IAAI,GAAG,IAAI,CAAA;SACZ;QAED,MAAM,OAAO,qBAAQ,IAAI,CAAC,OAAO,CAAE,CAAA;QACnC,IAAI,KAAK,EAAE;YACT,OAAO,CAAC,QAAQ,CAAC,GAAG,SAAS,KAAK,EAAE,CAAA;SACrC;QAED,OAAO,IAAI,gCAAsB,CAAC;YAChC,MAAM;YACN,GAAG;YACH,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,UAAU,EAAE,KAAK;SACmC,CAAC,CAAA;IACzD,CAAC;CACF;AApID,kCAoIC"}
|