@supabase/postgrest-js 1.15.2 → 1.15.3
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/{main → cjs}/index.d.ts.map +1 -1
- package/dist/{main → cjs}/index.js +1 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/version.d.ts +2 -0
- package/dist/{main → cjs}/version.js +1 -1
- package/dist/esm/wrapper.mjs +5 -0
- package/package.json +13 -8
- package/src/index.ts +1 -0
- package/src/version.ts +1 -1
- package/dist/main/index.js.map +0 -1
- package/dist/main/version.d.ts +0 -2
- package/dist/module/PostgrestBuilder.d.ts +0 -22
- package/dist/module/PostgrestBuilder.d.ts.map +0 -1
- package/dist/module/PostgrestBuilder.js +0 -172
- package/dist/module/PostgrestBuilder.js.map +0 -1
- package/dist/module/PostgrestClient.d.ts +0 -72
- package/dist/module/PostgrestClient.d.ts.map +0 -1
- package/dist/module/PostgrestClient.js +0 -116
- package/dist/module/PostgrestClient.js.map +0 -1
- package/dist/module/PostgrestError.d.ts +0 -8
- package/dist/module/PostgrestError.d.ts.map +0 -1
- package/dist/module/PostgrestError.js +0 -10
- package/dist/module/PostgrestError.js.map +0 -1
- package/dist/module/PostgrestFilterBuilder.d.ts +0 -84
- package/dist/module/PostgrestFilterBuilder.d.ts.map +0 -1
- package/dist/module/PostgrestFilterBuilder.js +0 -375
- package/dist/module/PostgrestFilterBuilder.js.map +0 -1
- package/dist/module/PostgrestQueryBuilder.d.ts +0 -117
- package/dist/module/PostgrestQueryBuilder.d.ts.map +0 -1
- package/dist/module/PostgrestQueryBuilder.js +0 -265
- package/dist/module/PostgrestQueryBuilder.js.map +0 -1
- package/dist/module/PostgrestTransformBuilder.d.ts +0 -148
- package/dist/module/PostgrestTransformBuilder.d.ts.map +0 -1
- package/dist/module/PostgrestTransformBuilder.js +0 -215
- package/dist/module/PostgrestTransformBuilder.js.map +0 -1
- package/dist/module/constants.d.ts +0 -4
- package/dist/module/constants.d.ts.map +0 -1
- package/dist/module/constants.js +0 -3
- package/dist/module/constants.js.map +0 -1
- package/dist/module/index.d.ts +0 -7
- package/dist/module/index.d.ts.map +0 -1
- package/dist/module/index.js +0 -6
- package/dist/module/index.js.map +0 -1
- package/dist/module/select-query-parser.d.ts +0 -347
- package/dist/module/select-query-parser.d.ts.map +0 -1
- package/dist/module/select-query-parser.js +0 -4
- package/dist/module/select-query-parser.js.map +0 -1
- package/dist/module/types.d.ts +0 -62
- package/dist/module/types.d.ts.map +0 -1
- package/dist/module/types.js +0 -2
- package/dist/module/types.js.map +0 -1
- package/dist/module/version.d.ts +0 -2
- package/dist/module/version.d.ts.map +0 -1
- package/dist/module/version.js +0 -2
- package/dist/module/version.js.map +0 -1
- /package/dist/{main → cjs}/PostgrestBuilder.d.ts +0 -0
- /package/dist/{main → cjs}/PostgrestBuilder.d.ts.map +0 -0
- /package/dist/{main → cjs}/PostgrestBuilder.js +0 -0
- /package/dist/{main → cjs}/PostgrestBuilder.js.map +0 -0
- /package/dist/{main → cjs}/PostgrestClient.d.ts +0 -0
- /package/dist/{main → cjs}/PostgrestClient.d.ts.map +0 -0
- /package/dist/{main → cjs}/PostgrestClient.js +0 -0
- /package/dist/{main → cjs}/PostgrestClient.js.map +0 -0
- /package/dist/{main → cjs}/PostgrestError.d.ts +0 -0
- /package/dist/{main → cjs}/PostgrestError.d.ts.map +0 -0
- /package/dist/{main → cjs}/PostgrestError.js +0 -0
- /package/dist/{main → cjs}/PostgrestError.js.map +0 -0
- /package/dist/{main → cjs}/PostgrestFilterBuilder.d.ts +0 -0
- /package/dist/{main → cjs}/PostgrestFilterBuilder.d.ts.map +0 -0
- /package/dist/{main → cjs}/PostgrestFilterBuilder.js +0 -0
- /package/dist/{main → cjs}/PostgrestFilterBuilder.js.map +0 -0
- /package/dist/{main → cjs}/PostgrestQueryBuilder.d.ts +0 -0
- /package/dist/{main → cjs}/PostgrestQueryBuilder.d.ts.map +0 -0
- /package/dist/{main → cjs}/PostgrestQueryBuilder.js +0 -0
- /package/dist/{main → cjs}/PostgrestQueryBuilder.js.map +0 -0
- /package/dist/{main → cjs}/PostgrestTransformBuilder.d.ts +0 -0
- /package/dist/{main → cjs}/PostgrestTransformBuilder.d.ts.map +0 -0
- /package/dist/{main → cjs}/PostgrestTransformBuilder.js +0 -0
- /package/dist/{main → cjs}/PostgrestTransformBuilder.js.map +0 -0
- /package/dist/{main → cjs}/constants.d.ts +0 -0
- /package/dist/{main → cjs}/constants.d.ts.map +0 -0
- /package/dist/{main → cjs}/constants.js +0 -0
- /package/dist/{main → cjs}/constants.js.map +0 -0
- /package/dist/{main → cjs}/index.d.ts +0 -0
- /package/dist/{main → cjs}/select-query-parser.d.ts +0 -0
- /package/dist/{main → cjs}/select-query-parser.d.ts.map +0 -0
- /package/dist/{main → cjs}/select-query-parser.js +0 -0
- /package/dist/{main → cjs}/select-query-parser.js.map +0 -0
- /package/dist/{main → cjs}/types.d.ts +0 -0
- /package/dist/{main → cjs}/types.d.ts.map +0 -0
- /package/dist/{main → cjs}/types.js +0 -0
- /package/dist/{main → cjs}/types.js.map +0 -0
- /package/dist/{main → cjs}/version.d.ts.map +0 -0
- /package/dist/{main → cjs}/version.js.map +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,4BAA4B,EAC5B,cAAc,GACf,MAAM,SAAS,CAAA"}
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.PostgrestBuilder = exports.PostgrestTransformBuilder = exports.PostgrestFilterBuilder = exports.PostgrestQueryBuilder = exports.PostgrestClient = void 0;
|
|
7
|
+
// Always update wrapper.mjs when updating this file.
|
|
7
8
|
var PostgrestClient_1 = require("./PostgrestClient");
|
|
8
9
|
Object.defineProperty(exports, "PostgrestClient", { enumerable: true, get: function () { return __importDefault(PostgrestClient_1).default; } });
|
|
9
10
|
var PostgrestQueryBuilder_1 = require("./PostgrestQueryBuilder");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,qDAAqD;AACrD,qDAA8D;AAArD,mIAAA,OAAO,OAAmB;AACnC,iEAA0E;AAAjE,+IAAA,OAAO,OAAyB;AACzC,mEAA4E;AAAnE,iJAAA,OAAO,OAA0B;AAC1C,yEAAkF;AAAzE,uJAAA,OAAO,OAA6B;AAC7C,uDAAgE;AAAvD,qIAAA,OAAO,OAAoB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default as PostgrestClient } from '../cjs/PostgrestClient.js'
|
|
2
|
+
export { default as PostgrestQueryBuilder } from '../cjs/PostgrestQueryBuilder.js'
|
|
3
|
+
export { default as PostgrestFilterBuilder } from '../cjs/PostgrestFilterBuilder.js'
|
|
4
|
+
export { default as PostgrestTransformBuilder } from '../cjs/PostgrestTransformBuilder.js'
|
|
5
|
+
export { default as PostgrestBuilder } from '../cjs/PostgrestBuilder.js'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@supabase/postgrest-js",
|
|
3
|
-
"version": "1.15.
|
|
3
|
+
"version": "1.15.3",
|
|
4
4
|
"description": "Isomorphic PostgREST client",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"postgrest",
|
|
@@ -14,23 +14,27 @@
|
|
|
14
14
|
"dist",
|
|
15
15
|
"src"
|
|
16
16
|
],
|
|
17
|
-
"main": "dist/
|
|
18
|
-
"module": "dist/
|
|
19
|
-
"
|
|
17
|
+
"main": "dist/cjs/index.js",
|
|
18
|
+
"module": "dist/esm/wrapper.mjs",
|
|
19
|
+
"exports": {
|
|
20
|
+
"import": "./dist/esm/wrapper.mjs",
|
|
21
|
+
"require": "./dist/cjs/index.js"
|
|
22
|
+
},
|
|
23
|
+
"types": "dist/cjs/index.d.ts",
|
|
20
24
|
"repository": "supabase/postgrest-js",
|
|
21
25
|
"scripts": {
|
|
22
26
|
"clean": "rimraf dist docs/v2",
|
|
23
|
-
"format": "prettier --write \"{src,test}/**/*.ts\"",
|
|
27
|
+
"format": "prettier --write \"{src,test}/**/*.ts\" wrapper.mjs",
|
|
24
28
|
"format:check": "prettier --check \"{src,test}/**/*.ts\"",
|
|
25
29
|
"build": "run-s clean format build:*",
|
|
26
|
-
"build:
|
|
27
|
-
"build:
|
|
30
|
+
"build:cjs": "tsc -p tsconfig.json",
|
|
31
|
+
"build:esm": "cpy wrapper.mjs dist/esm/",
|
|
28
32
|
"docs": "typedoc src/index.ts --out docs/v2",
|
|
29
33
|
"docs:json": "typedoc --json docs/v2/spec.json --excludeExternals src/index.ts",
|
|
30
34
|
"test": "run-s format:check test:types db:clean db:run test:run db:clean",
|
|
31
35
|
"test:run": "jest --runInBand",
|
|
32
36
|
"test:update": "run-s db:clean db:run && jest --runInBand --updateSnapshot && run-s db:clean",
|
|
33
|
-
"test:types": "run-s build
|
|
37
|
+
"test:types": "run-s build && tsd --files test/*.test-d.ts",
|
|
34
38
|
"db:clean": "cd test/db && docker-compose down --volumes",
|
|
35
39
|
"db:run": "cd test/db && docker-compose up --detach && wait-for-localhost 3000"
|
|
36
40
|
},
|
|
@@ -39,6 +43,7 @@
|
|
|
39
43
|
},
|
|
40
44
|
"devDependencies": {
|
|
41
45
|
"@types/jest": "^27.5.1",
|
|
46
|
+
"cpy-cli": "^5.0.0",
|
|
42
47
|
"jest": "^28.1.0",
|
|
43
48
|
"node-abort-controller": "^3.0.1",
|
|
44
49
|
"npm-run-all": "^4.1.5",
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// Always update wrapper.mjs when updating this file.
|
|
1
2
|
export { default as PostgrestClient } from './PostgrestClient'
|
|
2
3
|
export { default as PostgrestQueryBuilder } from './PostgrestQueryBuilder'
|
|
3
4
|
export { default as PostgrestFilterBuilder } from './PostgrestFilterBuilder'
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '1.15.
|
|
1
|
+
export const version = '1.15.3'
|
package/dist/main/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,qDAA8D;AAArD,mIAAA,OAAO,OAAmB;AACnC,iEAA0E;AAAjE,+IAAA,OAAO,OAAyB;AACzC,mEAA4E;AAAnE,iJAAA,OAAO,OAA0B;AAC1C,yEAAkF;AAAzE,uJAAA,OAAO,OAA6B;AAC7C,uDAAgE;AAAvD,qIAAA,OAAO,OAAoB"}
|
package/dist/main/version.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { Fetch, PostgrestSingleResponse } from './types';
|
|
2
|
-
export default abstract class PostgrestBuilder<Result> implements PromiseLike<PostgrestSingleResponse<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 isMaybeSingle: 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
|
-
throwOnError(): this;
|
|
20
|
-
then<TResult1 = PostgrestSingleResponse<Result>, TResult2 = never>(onfulfilled?: ((value: PostgrestSingleResponse<Result>) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=PostgrestBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PostgrestBuilder.d.ts","sourceRoot":"","sources":["../../src/PostgrestBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAG7D,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,gBAAgB,CAAC,MAAM,CACnD,YAAW,WAAW,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEvD,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;IAKpB,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC/D,WAAW,CAAC,EACR,CAAC,CAAC,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAC9E,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;CAuIpC"}
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
// @ts-ignore
|
|
2
|
-
import nodeFetch from '@supabase/node-fetch';
|
|
3
|
-
import PostgrestError from './PostgrestError';
|
|
4
|
-
export default class PostgrestBuilder {
|
|
5
|
-
constructor(builder) {
|
|
6
|
-
this.shouldThrowOnError = false;
|
|
7
|
-
this.method = builder.method;
|
|
8
|
-
this.url = builder.url;
|
|
9
|
-
this.headers = builder.headers;
|
|
10
|
-
this.schema = builder.schema;
|
|
11
|
-
this.body = builder.body;
|
|
12
|
-
this.shouldThrowOnError = builder.shouldThrowOnError;
|
|
13
|
-
this.signal = builder.signal;
|
|
14
|
-
this.isMaybeSingle = builder.isMaybeSingle;
|
|
15
|
-
if (builder.fetch) {
|
|
16
|
-
this.fetch = builder.fetch;
|
|
17
|
-
}
|
|
18
|
-
else if (typeof fetch === 'undefined') {
|
|
19
|
-
this.fetch = nodeFetch;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
this.fetch = fetch;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* If there's an error with the query, throwOnError will reject the promise by
|
|
27
|
-
* throwing the error instead of returning it as part of a successful response.
|
|
28
|
-
*
|
|
29
|
-
* {@link https://github.com/supabase/supabase-js/issues/92}
|
|
30
|
-
*/
|
|
31
|
-
throwOnError() {
|
|
32
|
-
this.shouldThrowOnError = true;
|
|
33
|
-
return this;
|
|
34
|
-
}
|
|
35
|
-
then(onfulfilled, onrejected) {
|
|
36
|
-
// https://postgrest.org/en/stable/api.html#switching-schemas
|
|
37
|
-
if (this.schema === undefined) {
|
|
38
|
-
// skip
|
|
39
|
-
}
|
|
40
|
-
else if (['GET', 'HEAD'].includes(this.method)) {
|
|
41
|
-
this.headers['Accept-Profile'] = this.schema;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
this.headers['Content-Profile'] = this.schema;
|
|
45
|
-
}
|
|
46
|
-
if (this.method !== 'GET' && this.method !== 'HEAD') {
|
|
47
|
-
this.headers['Content-Type'] = 'application/json';
|
|
48
|
-
}
|
|
49
|
-
// NOTE: Invoke w/o `this` to avoid illegal invocation error.
|
|
50
|
-
// https://github.com/supabase/postgrest-js/pull/247
|
|
51
|
-
const _fetch = this.fetch;
|
|
52
|
-
let res = _fetch(this.url.toString(), {
|
|
53
|
-
method: this.method,
|
|
54
|
-
headers: this.headers,
|
|
55
|
-
body: JSON.stringify(this.body),
|
|
56
|
-
signal: this.signal,
|
|
57
|
-
}).then(async (res) => {
|
|
58
|
-
var _a, _b, _c;
|
|
59
|
-
let error = null;
|
|
60
|
-
let data = null;
|
|
61
|
-
let count = null;
|
|
62
|
-
let status = res.status;
|
|
63
|
-
let statusText = res.statusText;
|
|
64
|
-
if (res.ok) {
|
|
65
|
-
if (this.method !== 'HEAD') {
|
|
66
|
-
const body = await res.text();
|
|
67
|
-
if (body === '') {
|
|
68
|
-
// Prefer: return=minimal
|
|
69
|
-
}
|
|
70
|
-
else if (this.headers['Accept'] === 'text/csv') {
|
|
71
|
-
data = body;
|
|
72
|
-
}
|
|
73
|
-
else if (this.headers['Accept'] &&
|
|
74
|
-
this.headers['Accept'].includes('application/vnd.pgrst.plan+text')) {
|
|
75
|
-
data = body;
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
data = JSON.parse(body);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
const countHeader = (_a = this.headers['Prefer']) === null || _a === void 0 ? void 0 : _a.match(/count=(exact|planned|estimated)/);
|
|
82
|
-
const contentRange = (_b = res.headers.get('content-range')) === null || _b === void 0 ? void 0 : _b.split('/');
|
|
83
|
-
if (countHeader && contentRange && contentRange.length > 1) {
|
|
84
|
-
count = parseInt(contentRange[1]);
|
|
85
|
-
}
|
|
86
|
-
// Temporary partial fix for https://github.com/supabase/postgrest-js/issues/361
|
|
87
|
-
// Issue persists e.g. for `.insert([...]).select().maybeSingle()`
|
|
88
|
-
if (this.isMaybeSingle && this.method === 'GET' && Array.isArray(data)) {
|
|
89
|
-
if (data.length > 1) {
|
|
90
|
-
error = {
|
|
91
|
-
// https://github.com/PostgREST/postgrest/blob/a867d79c42419af16c18c3fb019eba8df992626f/src/PostgREST/Error.hs#L553
|
|
92
|
-
code: 'PGRST116',
|
|
93
|
-
details: `Results contain ${data.length} rows, application/vnd.pgrst.object+json requires 1 row`,
|
|
94
|
-
hint: null,
|
|
95
|
-
message: 'JSON object requested, multiple (or no) rows returned',
|
|
96
|
-
};
|
|
97
|
-
data = null;
|
|
98
|
-
count = null;
|
|
99
|
-
status = 406;
|
|
100
|
-
statusText = 'Not Acceptable';
|
|
101
|
-
}
|
|
102
|
-
else if (data.length === 1) {
|
|
103
|
-
data = data[0];
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
data = null;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
const body = await res.text();
|
|
112
|
-
try {
|
|
113
|
-
error = JSON.parse(body);
|
|
114
|
-
// Workaround for https://github.com/supabase/postgrest-js/issues/295
|
|
115
|
-
if (Array.isArray(error) && res.status === 404) {
|
|
116
|
-
data = [];
|
|
117
|
-
error = null;
|
|
118
|
-
status = 200;
|
|
119
|
-
statusText = 'OK';
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
catch (_d) {
|
|
123
|
-
// Workaround for https://github.com/supabase/postgrest-js/issues/295
|
|
124
|
-
if (res.status === 404 && body === '') {
|
|
125
|
-
status = 204;
|
|
126
|
-
statusText = 'No Content';
|
|
127
|
-
}
|
|
128
|
-
else {
|
|
129
|
-
error = {
|
|
130
|
-
message: body,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
if (error && this.isMaybeSingle && ((_c = error === null || error === void 0 ? void 0 : error.details) === null || _c === void 0 ? void 0 : _c.includes('0 rows'))) {
|
|
135
|
-
error = null;
|
|
136
|
-
status = 200;
|
|
137
|
-
statusText = 'OK';
|
|
138
|
-
}
|
|
139
|
-
if (error && this.shouldThrowOnError) {
|
|
140
|
-
throw new PostgrestError(error);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
const postgrestResponse = {
|
|
144
|
-
error,
|
|
145
|
-
data,
|
|
146
|
-
count,
|
|
147
|
-
status,
|
|
148
|
-
statusText,
|
|
149
|
-
};
|
|
150
|
-
return postgrestResponse;
|
|
151
|
-
});
|
|
152
|
-
if (!this.shouldThrowOnError) {
|
|
153
|
-
res = res.catch((fetchError) => {
|
|
154
|
-
var _a, _b, _c;
|
|
155
|
-
return ({
|
|
156
|
-
error: {
|
|
157
|
-
message: `${(_a = fetchError === null || fetchError === void 0 ? void 0 : fetchError.name) !== null && _a !== void 0 ? _a : 'FetchError'}: ${fetchError === null || fetchError === void 0 ? void 0 : fetchError.message}`,
|
|
158
|
-
details: `${(_b = fetchError === null || fetchError === void 0 ? void 0 : fetchError.stack) !== null && _b !== void 0 ? _b : ''}`,
|
|
159
|
-
hint: '',
|
|
160
|
-
code: `${(_c = fetchError === null || fetchError === void 0 ? void 0 : fetchError.code) !== null && _c !== void 0 ? _c : ''}`,
|
|
161
|
-
},
|
|
162
|
-
data: null,
|
|
163
|
-
count: null,
|
|
164
|
-
status: 0,
|
|
165
|
-
statusText: '',
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
return res.then(onfulfilled, onrejected);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
//# sourceMappingURL=PostgrestBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PostgrestBuilder.js","sourceRoot":"","sources":["../../src/PostgrestBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import PostgrestQueryBuilder from './PostgrestQueryBuilder';
|
|
2
|
-
import PostgrestFilterBuilder from './PostgrestFilterBuilder';
|
|
3
|
-
import { Fetch, GenericSchema } from './types';
|
|
4
|
-
/**
|
|
5
|
-
* PostgREST client.
|
|
6
|
-
*
|
|
7
|
-
* @typeParam Database - Types for the schema from the [type
|
|
8
|
-
* generator](https://supabase.com/docs/reference/javascript/next/typescript-support)
|
|
9
|
-
*
|
|
10
|
-
* @typeParam SchemaName - Postgres schema to switch to. Must be a string
|
|
11
|
-
* literal, the same one passed to the constructor. If the schema is not
|
|
12
|
-
* `"public"`, this must be supplied manually.
|
|
13
|
-
*/
|
|
14
|
-
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> {
|
|
15
|
-
url: string;
|
|
16
|
-
headers: Record<string, string>;
|
|
17
|
-
schemaName?: SchemaName;
|
|
18
|
-
fetch?: Fetch;
|
|
19
|
-
/**
|
|
20
|
-
* Creates a PostgREST client.
|
|
21
|
-
*
|
|
22
|
-
* @param url - URL of the PostgREST endpoint
|
|
23
|
-
* @param options - Named parameters
|
|
24
|
-
* @param options.headers - Custom headers
|
|
25
|
-
* @param options.schema - Postgres schema to switch to
|
|
26
|
-
* @param options.fetch - Custom fetch
|
|
27
|
-
*/
|
|
28
|
-
constructor(url: string, { headers, schema, fetch, }?: {
|
|
29
|
-
headers?: Record<string, string>;
|
|
30
|
-
schema?: SchemaName;
|
|
31
|
-
fetch?: Fetch;
|
|
32
|
-
});
|
|
33
|
-
from<TableName extends string & keyof Schema['Tables'], Table extends Schema['Tables'][TableName]>(relation: TableName): PostgrestQueryBuilder<Schema, Table, TableName>;
|
|
34
|
-
from<ViewName extends string & keyof Schema['Views'], View extends Schema['Views'][ViewName]>(relation: ViewName): PostgrestQueryBuilder<Schema, View, ViewName>;
|
|
35
|
-
/**
|
|
36
|
-
* Select a schema to query or perform an function (rpc) call.
|
|
37
|
-
*
|
|
38
|
-
* The schema needs to be on the list of exposed schemas inside Supabase.
|
|
39
|
-
*
|
|
40
|
-
* @param schema - The schema to query
|
|
41
|
-
*/
|
|
42
|
-
schema<DynamicSchema extends string & keyof Database>(schema: DynamicSchema): PostgrestClient<Database, DynamicSchema, Database[DynamicSchema] extends GenericSchema ? Database[DynamicSchema] : any>;
|
|
43
|
-
/**
|
|
44
|
-
* Perform a function call.
|
|
45
|
-
*
|
|
46
|
-
* @param fn - The function name to call
|
|
47
|
-
* @param args - The arguments to pass to the function call
|
|
48
|
-
* @param options - Named parameters
|
|
49
|
-
* @param options.head - When set to `true`, `data` will not be returned.
|
|
50
|
-
* Useful if you only need the count.
|
|
51
|
-
* @param options.get - When set to `true`, the function will be called with
|
|
52
|
-
* read-only access mode.
|
|
53
|
-
* @param options.count - Count algorithm to use to count rows returned by the
|
|
54
|
-
* function. Only applicable for [set-returning
|
|
55
|
-
* functions](https://www.postgresql.org/docs/current/functions-srf.html).
|
|
56
|
-
*
|
|
57
|
-
* `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the
|
|
58
|
-
* hood.
|
|
59
|
-
*
|
|
60
|
-
* `"planned"`: Approximated but fast count algorithm. Uses the Postgres
|
|
61
|
-
* statistics under the hood.
|
|
62
|
-
*
|
|
63
|
-
* `"estimated"`: Uses exact count for low numbers and planned count for high
|
|
64
|
-
* numbers.
|
|
65
|
-
*/
|
|
66
|
-
rpc<FnName extends string & keyof Schema['Functions'], Fn extends Schema['Functions'][FnName]>(fn: FnName, args?: Fn['Args'], { head, get, count, }?: {
|
|
67
|
-
head?: boolean;
|
|
68
|
-
get?: boolean;
|
|
69
|
-
count?: 'exact' | 'planned' | 'estimated';
|
|
70
|
-
}): PostgrestFilterBuilder<Schema, Fn['Returns'] extends any[] ? Fn['Returns'][number] extends Record<string, unknown> ? Fn['Returns'][number] : never : never, Fn['Returns']>;
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=PostgrestClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;;;;;;;;;GASG;AACH,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,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,KAAK,CAAC,EAAE,KAAK,CAAA;IAGb;;;;;;;;OAQG;gBAED,GAAG,EAAE,MAAM,EACX,EACE,OAAY,EACZ,MAAM,EACN,KAAK,GACN,GAAE;QACD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChC,MAAM,CAAC,EAAE,UAAU,CAAA;QACnB,KAAK,CAAC,EAAE,KAAK,CAAA;KACT;IAQR,IAAI,CACF,SAAS,SAAS,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EACjD,KAAK,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EACzC,QAAQ,EAAE,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;IACvE,IAAI,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,SAAS,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAC1F,QAAQ,EAAE,QAAQ,GACjB,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;IAehD;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,SAAS,MAAM,GAAG,MAAM,QAAQ,EAClD,MAAM,EAAE,aAAa,GACpB,eAAe,CAChB,QAAQ,EACR,aAAa,EACb,QAAQ,CAAC,aAAa,CAAC,SAAS,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,GAAG,CAC9E;IAQD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,GAAG,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAC3F,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,EAAE,CAAC,MAAM,CAAM,EACrB,EACE,IAAY,EACZ,GAAW,EACX,KAAK,GACN,GAAE;QACD,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,GAAG,CAAC,EAAE,OAAO,CAAA;QACb,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;KACrC,GACL,sBAAsB,CACvB,MAAM,EACN,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE,GACvB,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnD,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GACrB,KAAK,GACP,KAAK,EACT,EAAE,CAAC,SAAS,CAAC,CACd;CAmCF"}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import PostgrestQueryBuilder from './PostgrestQueryBuilder';
|
|
2
|
-
import PostgrestFilterBuilder from './PostgrestFilterBuilder';
|
|
3
|
-
import { DEFAULT_HEADERS } from './constants';
|
|
4
|
-
/**
|
|
5
|
-
* PostgREST client.
|
|
6
|
-
*
|
|
7
|
-
* @typeParam Database - Types for the schema from the [type
|
|
8
|
-
* generator](https://supabase.com/docs/reference/javascript/next/typescript-support)
|
|
9
|
-
*
|
|
10
|
-
* @typeParam SchemaName - Postgres schema to switch to. Must be a string
|
|
11
|
-
* literal, the same one passed to the constructor. If the schema is not
|
|
12
|
-
* `"public"`, this must be supplied manually.
|
|
13
|
-
*/
|
|
14
|
-
export default class PostgrestClient {
|
|
15
|
-
// TODO: Add back shouldThrowOnError once we figure out the typings
|
|
16
|
-
/**
|
|
17
|
-
* Creates a PostgREST client.
|
|
18
|
-
*
|
|
19
|
-
* @param url - URL of the PostgREST endpoint
|
|
20
|
-
* @param options - Named parameters
|
|
21
|
-
* @param options.headers - Custom headers
|
|
22
|
-
* @param options.schema - Postgres schema to switch to
|
|
23
|
-
* @param options.fetch - Custom fetch
|
|
24
|
-
*/
|
|
25
|
-
constructor(url, { headers = {}, schema, fetch, } = {}) {
|
|
26
|
-
this.url = url;
|
|
27
|
-
this.headers = Object.assign(Object.assign({}, DEFAULT_HEADERS), headers);
|
|
28
|
-
this.schemaName = schema;
|
|
29
|
-
this.fetch = fetch;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Perform a query on a table or a view.
|
|
33
|
-
*
|
|
34
|
-
* @param relation - The table or view name to query
|
|
35
|
-
*/
|
|
36
|
-
from(relation) {
|
|
37
|
-
const url = new URL(`${this.url}/${relation}`);
|
|
38
|
-
return new PostgrestQueryBuilder(url, {
|
|
39
|
-
headers: Object.assign({}, this.headers),
|
|
40
|
-
schema: this.schemaName,
|
|
41
|
-
fetch: this.fetch,
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Select a schema to query or perform an function (rpc) call.
|
|
46
|
-
*
|
|
47
|
-
* The schema needs to be on the list of exposed schemas inside Supabase.
|
|
48
|
-
*
|
|
49
|
-
* @param schema - The schema to query
|
|
50
|
-
*/
|
|
51
|
-
schema(schema) {
|
|
52
|
-
return new PostgrestClient(this.url, {
|
|
53
|
-
headers: this.headers,
|
|
54
|
-
schema,
|
|
55
|
-
fetch: this.fetch,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Perform a function call.
|
|
60
|
-
*
|
|
61
|
-
* @param fn - The function name to call
|
|
62
|
-
* @param args - The arguments to pass to the function call
|
|
63
|
-
* @param options - Named parameters
|
|
64
|
-
* @param options.head - When set to `true`, `data` will not be returned.
|
|
65
|
-
* Useful if you only need the count.
|
|
66
|
-
* @param options.get - When set to `true`, the function will be called with
|
|
67
|
-
* read-only access mode.
|
|
68
|
-
* @param options.count - Count algorithm to use to count rows returned by the
|
|
69
|
-
* function. Only applicable for [set-returning
|
|
70
|
-
* functions](https://www.postgresql.org/docs/current/functions-srf.html).
|
|
71
|
-
*
|
|
72
|
-
* `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the
|
|
73
|
-
* hood.
|
|
74
|
-
*
|
|
75
|
-
* `"planned"`: Approximated but fast count algorithm. Uses the Postgres
|
|
76
|
-
* statistics under the hood.
|
|
77
|
-
*
|
|
78
|
-
* `"estimated"`: Uses exact count for low numbers and planned count for high
|
|
79
|
-
* numbers.
|
|
80
|
-
*/
|
|
81
|
-
rpc(fn, args = {}, { head = false, get = false, count, } = {}) {
|
|
82
|
-
let method;
|
|
83
|
-
const url = new URL(`${this.url}/rpc/${fn}`);
|
|
84
|
-
let body;
|
|
85
|
-
if (head || get) {
|
|
86
|
-
method = head ? 'HEAD' : 'GET';
|
|
87
|
-
Object.entries(args)
|
|
88
|
-
// params with undefined value needs to be filtered out, otherwise it'll
|
|
89
|
-
// show up as `?param=undefined`
|
|
90
|
-
.filter(([_, value]) => value !== undefined)
|
|
91
|
-
// array values need special syntax
|
|
92
|
-
.map(([name, value]) => [name, Array.isArray(value) ? `{${value.join(',')}}` : `${value}`])
|
|
93
|
-
.forEach(([name, value]) => {
|
|
94
|
-
url.searchParams.append(name, value);
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
method = 'POST';
|
|
99
|
-
body = args;
|
|
100
|
-
}
|
|
101
|
-
const headers = Object.assign({}, this.headers);
|
|
102
|
-
if (count) {
|
|
103
|
-
headers['Prefer'] = `count=${count}`;
|
|
104
|
-
}
|
|
105
|
-
return new PostgrestFilterBuilder({
|
|
106
|
-
method,
|
|
107
|
-
url,
|
|
108
|
-
headers,
|
|
109
|
-
schema: this.schemaName,
|
|
110
|
-
body,
|
|
111
|
-
fetch: this.fetch,
|
|
112
|
-
allowEmpty: false,
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=PostgrestClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PostgrestClient.js","sourceRoot":"","sources":["../../src/PostgrestClient.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,sBAAsB,MAAM,0BAA0B,CAAA;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAclC,mEAAmE;IACnE;;;;;;;;OAQG;IACH,YACE,GAAW,EACX,EACE,OAAO,GAAG,EAAE,EACZ,MAAM,EACN,KAAK,MAKH,EAAE;QAEN,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,mCAAQ,eAAe,GAAK,OAAO,CAAE,CAAA;QACjD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IASD;;;;OAIG;IACH,IAAI,CAAC,QAAgB;QACnB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC,CAAA;QAC9C,OAAO,IAAI,qBAAqB,CAAC,GAAG,EAAE;YACpC,OAAO,oBAAO,IAAI,CAAC,OAAO,CAAE;YAC5B,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CACJ,MAAqB;QAMrB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,GAAG,CACD,EAAU,EACV,OAAmB,EAAE,EACrB,EACE,IAAI,GAAG,KAAK,EACZ,GAAG,GAAG,KAAK,EACX,KAAK,MAKH,EAAE;QAUN,IAAI,MAA+B,CAAA;QACnC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAA;QAC5C,IAAI,IAAyB,CAAA;QAC7B,IAAI,IAAI,IAAI,GAAG,EAAE;YACf,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;YAC9B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;gBAClB,wEAAwE;gBACxE,gCAAgC;iBAC/B,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;gBAC5C,mCAAmC;iBAClC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;iBAC1F,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;gBACzB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACtC,CAAC,CAAC,CAAA;SACL;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,sBAAsB,CAAC;YAChC,MAAM;YACN,GAAG;YACH,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,KAAK;SAC4B,CAAC,CAAA;IAClD,CAAC;CACF"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { PostgrestError as IPostgrestError } from './types';
|
|
2
|
-
export default class PostgrestError extends Error implements IPostgrestError {
|
|
3
|
-
details: string;
|
|
4
|
-
hint: string;
|
|
5
|
-
code: string;
|
|
6
|
-
constructor(context: IPostgrestError);
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=PostgrestError.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PostgrestError.d.ts","sourceRoot":"","sources":["../../src/PostgrestError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,IAAI,eAAe,EAAE,MAAM,SAAS,CAAA;AAEhE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAM,YAAW,eAAe;IAC1E,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;gBAEA,OAAO,EAAE,eAAe;CAOrC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export default class PostgrestError extends Error {
|
|
2
|
-
constructor(context) {
|
|
3
|
-
super(context.message);
|
|
4
|
-
this.name = 'PostgrestError';
|
|
5
|
-
this.details = context.details;
|
|
6
|
-
this.hint = context.hint;
|
|
7
|
-
this.code = context.code;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=PostgrestError.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PostgrestError.js","sourceRoot":"","sources":["../../src/PostgrestError.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK;IAK/C,YAAY,OAAwB;QAClC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IAC1B,CAAC;CACF"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import PostgrestTransformBuilder from './PostgrestTransformBuilder';
|
|
2
|
-
import { GenericSchema } from './types';
|
|
3
|
-
declare type FilterOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'ilike' | 'is' | 'in' | 'cs' | 'cd' | 'sl' | 'sr' | 'nxl' | 'nxr' | 'adj' | 'ov' | 'fts' | 'plfts' | 'phfts' | 'wfts';
|
|
4
|
-
export default class PostgrestFilterBuilder<Schema extends GenericSchema, Row extends Record<string, unknown>, Result, RelationName = unknown, Relationships = unknown> extends PostgrestTransformBuilder<Schema, Row, Result, RelationName, Relationships> {
|
|
5
|
-
eq<ColumnName extends string & keyof Row>(column: ColumnName, value: NonNullable<Row[ColumnName]>): this;
|
|
6
|
-
eq<Value extends unknown>(column: string, value: NonNullable<Value>): this;
|
|
7
|
-
neq<ColumnName extends string & keyof Row>(column: ColumnName, value: Row[ColumnName]): this;
|
|
8
|
-
neq(column: string, value: unknown): this;
|
|
9
|
-
gt<ColumnName extends string & keyof Row>(column: ColumnName, value: Row[ColumnName]): this;
|
|
10
|
-
gt(column: string, value: unknown): this;
|
|
11
|
-
gte<ColumnName extends string & keyof Row>(column: ColumnName, value: Row[ColumnName]): this;
|
|
12
|
-
gte(column: string, value: unknown): this;
|
|
13
|
-
lt<ColumnName extends string & keyof Row>(column: ColumnName, value: Row[ColumnName]): this;
|
|
14
|
-
lt(column: string, value: unknown): this;
|
|
15
|
-
lte<ColumnName extends string & keyof Row>(column: ColumnName, value: Row[ColumnName]): this;
|
|
16
|
-
lte(column: string, value: unknown): this;
|
|
17
|
-
like<ColumnName extends string & keyof Row>(column: ColumnName, pattern: string): this;
|
|
18
|
-
like(column: string, pattern: string): this;
|
|
19
|
-
likeAllOf<ColumnName extends string & keyof Row>(column: ColumnName, patterns: readonly string[]): this;
|
|
20
|
-
likeAllOf(column: string, patterns: readonly string[]): this;
|
|
21
|
-
likeAnyOf<ColumnName extends string & keyof Row>(column: ColumnName, patterns: readonly string[]): this;
|
|
22
|
-
likeAnyOf(column: string, patterns: readonly string[]): this;
|
|
23
|
-
ilike<ColumnName extends string & keyof Row>(column: ColumnName, pattern: string): this;
|
|
24
|
-
ilike(column: string, pattern: string): this;
|
|
25
|
-
ilikeAllOf<ColumnName extends string & keyof Row>(column: ColumnName, patterns: readonly string[]): this;
|
|
26
|
-
ilikeAllOf(column: string, patterns: readonly string[]): this;
|
|
27
|
-
ilikeAnyOf<ColumnName extends string & keyof Row>(column: ColumnName, patterns: readonly string[]): this;
|
|
28
|
-
ilikeAnyOf(column: string, patterns: readonly string[]): this;
|
|
29
|
-
is<ColumnName extends string & keyof Row>(column: ColumnName, value: Row[ColumnName] & (boolean | null)): this;
|
|
30
|
-
is(column: string, value: boolean | null): this;
|
|
31
|
-
in<ColumnName extends string & keyof Row>(column: ColumnName, values: ReadonlyArray<Row[ColumnName]>): this;
|
|
32
|
-
in(column: string, values: readonly unknown[]): this;
|
|
33
|
-
contains<ColumnName extends string & keyof Row>(column: ColumnName, value: string | ReadonlyArray<Row[ColumnName]> | Record<string, unknown>): this;
|
|
34
|
-
contains(column: string, value: string | readonly unknown[] | Record<string, unknown>): this;
|
|
35
|
-
containedBy<ColumnName extends string & keyof Row>(column: ColumnName, value: string | ReadonlyArray<Row[ColumnName]> | Record<string, unknown>): this;
|
|
36
|
-
containedBy(column: string, value: string | readonly unknown[] | Record<string, unknown>): this;
|
|
37
|
-
rangeGt<ColumnName extends string & keyof Row>(column: ColumnName, range: string): this;
|
|
38
|
-
rangeGt(column: string, range: string): this;
|
|
39
|
-
rangeGte<ColumnName extends string & keyof Row>(column: ColumnName, range: string): this;
|
|
40
|
-
rangeGte(column: string, range: string): this;
|
|
41
|
-
rangeLt<ColumnName extends string & keyof Row>(column: ColumnName, range: string): this;
|
|
42
|
-
rangeLt(column: string, range: string): this;
|
|
43
|
-
rangeLte<ColumnName extends string & keyof Row>(column: ColumnName, range: string): this;
|
|
44
|
-
rangeLte(column: string, range: string): this;
|
|
45
|
-
rangeAdjacent<ColumnName extends string & keyof Row>(column: ColumnName, range: string): this;
|
|
46
|
-
rangeAdjacent(column: string, range: string): this;
|
|
47
|
-
overlaps<ColumnName extends string & keyof Row>(column: ColumnName, value: string | ReadonlyArray<Row[ColumnName]>): this;
|
|
48
|
-
overlaps(column: string, value: string | readonly unknown[]): this;
|
|
49
|
-
textSearch<ColumnName extends string & keyof Row>(column: ColumnName, query: string, options?: {
|
|
50
|
-
config?: string;
|
|
51
|
-
type?: 'plain' | 'phrase' | 'websearch';
|
|
52
|
-
}): this;
|
|
53
|
-
textSearch(column: string, query: string, options?: {
|
|
54
|
-
config?: string;
|
|
55
|
-
type?: 'plain' | 'phrase' | 'websearch';
|
|
56
|
-
}): this;
|
|
57
|
-
match<ColumnName extends string & keyof Row>(query: Record<ColumnName, Row[ColumnName]>): this;
|
|
58
|
-
match(query: Record<string, unknown>): this;
|
|
59
|
-
not<ColumnName extends string & keyof Row>(column: ColumnName, operator: FilterOperator, value: Row[ColumnName]): this;
|
|
60
|
-
not(column: string, operator: string, value: unknown): this;
|
|
61
|
-
/**
|
|
62
|
-
* Match only rows which satisfy at least one of the filters.
|
|
63
|
-
*
|
|
64
|
-
* Unlike most filters, `filters` is used as-is and needs to follow [PostgREST
|
|
65
|
-
* syntax](https://postgrest.org/en/stable/api.html#operators). You also need
|
|
66
|
-
* to make sure it's properly sanitized.
|
|
67
|
-
*
|
|
68
|
-
* It's currently not possible to do an `.or()` filter across multiple tables.
|
|
69
|
-
*
|
|
70
|
-
* @param filters - The filters to use, following PostgREST syntax
|
|
71
|
-
* @param options - Named parameters
|
|
72
|
-
* @param options.referencedTable - Set this to filter on referenced tables
|
|
73
|
-
* instead of the parent table
|
|
74
|
-
* @param options.foreignTable - Deprecated, use `referencedTable` instead
|
|
75
|
-
*/
|
|
76
|
-
or(filters: string, { foreignTable, referencedTable, }?: {
|
|
77
|
-
foreignTable?: string;
|
|
78
|
-
referencedTable?: string;
|
|
79
|
-
}): this;
|
|
80
|
-
filter<ColumnName extends string & keyof Row>(column: ColumnName, operator: `${'' | 'not.'}${FilterOperator}`, value: unknown): this;
|
|
81
|
-
filter(column: string, operator: string, value: unknown): this;
|
|
82
|
-
}
|
|
83
|
-
export {};
|
|
84
|
-
//# sourceMappingURL=PostgrestFilterBuilder.d.ts.map
|