@supabase/postgrest-js 1.15.4 → 1.15.6
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}/PostgrestTransformBuilder.d.ts +1 -1
- package/dist/{main → cjs}/PostgrestTransformBuilder.js +1 -1
- package/dist/{main → cjs}/index.d.ts +1 -1
- 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/{main → cjs}/select-query-parser.d.ts +6 -2
- package/dist/cjs/select-query-parser.d.ts.map +1 -0
- package/dist/cjs/version.d.ts +2 -0
- package/dist/{main → cjs}/version.js +1 -1
- package/dist/esm/wrapper.mjs +25 -0
- package/package.json +14 -9
- package/src/PostgrestTransformBuilder.ts +1 -1
- package/src/index.ts +2 -1
- package/src/select-query-parser.ts +6 -2
- package/src/version.ts +1 -1
- package/dist/main/index.js.map +0 -1
- package/dist/main/select-query-parser.d.ts.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.map +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}/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,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":"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"}
|
|
@@ -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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PostgrestFilterBuilder.d.ts","sourceRoot":"","sources":["../../src/PostgrestFilterBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,375 +0,0 @@
|
|
|
1
|
-
import PostgrestTransformBuilder from './PostgrestTransformBuilder';
|
|
2
|
-
export default class PostgrestFilterBuilder extends PostgrestTransformBuilder {
|
|
3
|
-
/**
|
|
4
|
-
* Match only rows where `column` is equal to `value`.
|
|
5
|
-
*
|
|
6
|
-
* To check if the value of `column` is NULL, you should use `.is()` instead.
|
|
7
|
-
*
|
|
8
|
-
* @param column - The column to filter on
|
|
9
|
-
* @param value - The value to filter with
|
|
10
|
-
*/
|
|
11
|
-
eq(column, value) {
|
|
12
|
-
this.url.searchParams.append(column, `eq.${value}`);
|
|
13
|
-
return this;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Match only rows where `column` is not equal to `value`.
|
|
17
|
-
*
|
|
18
|
-
* @param column - The column to filter on
|
|
19
|
-
* @param value - The value to filter with
|
|
20
|
-
*/
|
|
21
|
-
neq(column, value) {
|
|
22
|
-
this.url.searchParams.append(column, `neq.${value}`);
|
|
23
|
-
return this;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Match only rows where `column` is greater than `value`.
|
|
27
|
-
*
|
|
28
|
-
* @param column - The column to filter on
|
|
29
|
-
* @param value - The value to filter with
|
|
30
|
-
*/
|
|
31
|
-
gt(column, value) {
|
|
32
|
-
this.url.searchParams.append(column, `gt.${value}`);
|
|
33
|
-
return this;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Match only rows where `column` is greater than or equal to `value`.
|
|
37
|
-
*
|
|
38
|
-
* @param column - The column to filter on
|
|
39
|
-
* @param value - The value to filter with
|
|
40
|
-
*/
|
|
41
|
-
gte(column, value) {
|
|
42
|
-
this.url.searchParams.append(column, `gte.${value}`);
|
|
43
|
-
return this;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Match only rows where `column` is less than `value`.
|
|
47
|
-
*
|
|
48
|
-
* @param column - The column to filter on
|
|
49
|
-
* @param value - The value to filter with
|
|
50
|
-
*/
|
|
51
|
-
lt(column, value) {
|
|
52
|
-
this.url.searchParams.append(column, `lt.${value}`);
|
|
53
|
-
return this;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Match only rows where `column` is less than or equal to `value`.
|
|
57
|
-
*
|
|
58
|
-
* @param column - The column to filter on
|
|
59
|
-
* @param value - The value to filter with
|
|
60
|
-
*/
|
|
61
|
-
lte(column, value) {
|
|
62
|
-
this.url.searchParams.append(column, `lte.${value}`);
|
|
63
|
-
return this;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Match only rows where `column` matches `pattern` case-sensitively.
|
|
67
|
-
*
|
|
68
|
-
* @param column - The column to filter on
|
|
69
|
-
* @param pattern - The pattern to match with
|
|
70
|
-
*/
|
|
71
|
-
like(column, pattern) {
|
|
72
|
-
this.url.searchParams.append(column, `like.${pattern}`);
|
|
73
|
-
return this;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Match only rows where `column` matches all of `patterns` case-sensitively.
|
|
77
|
-
*
|
|
78
|
-
* @param column - The column to filter on
|
|
79
|
-
* @param patterns - The patterns to match with
|
|
80
|
-
*/
|
|
81
|
-
likeAllOf(column, patterns) {
|
|
82
|
-
this.url.searchParams.append(column, `like(all).{${patterns.join(',')}}`);
|
|
83
|
-
return this;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Match only rows where `column` matches any of `patterns` case-sensitively.
|
|
87
|
-
*
|
|
88
|
-
* @param column - The column to filter on
|
|
89
|
-
* @param patterns - The patterns to match with
|
|
90
|
-
*/
|
|
91
|
-
likeAnyOf(column, patterns) {
|
|
92
|
-
this.url.searchParams.append(column, `like(any).{${patterns.join(',')}}`);
|
|
93
|
-
return this;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Match only rows where `column` matches `pattern` case-insensitively.
|
|
97
|
-
*
|
|
98
|
-
* @param column - The column to filter on
|
|
99
|
-
* @param pattern - The pattern to match with
|
|
100
|
-
*/
|
|
101
|
-
ilike(column, pattern) {
|
|
102
|
-
this.url.searchParams.append(column, `ilike.${pattern}`);
|
|
103
|
-
return this;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Match only rows where `column` matches all of `patterns` case-insensitively.
|
|
107
|
-
*
|
|
108
|
-
* @param column - The column to filter on
|
|
109
|
-
* @param patterns - The patterns to match with
|
|
110
|
-
*/
|
|
111
|
-
ilikeAllOf(column, patterns) {
|
|
112
|
-
this.url.searchParams.append(column, `ilike(all).{${patterns.join(',')}}`);
|
|
113
|
-
return this;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Match only rows where `column` matches any of `patterns` case-insensitively.
|
|
117
|
-
*
|
|
118
|
-
* @param column - The column to filter on
|
|
119
|
-
* @param patterns - The patterns to match with
|
|
120
|
-
*/
|
|
121
|
-
ilikeAnyOf(column, patterns) {
|
|
122
|
-
this.url.searchParams.append(column, `ilike(any).{${patterns.join(',')}}`);
|
|
123
|
-
return this;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Match only rows where `column` IS `value`.
|
|
127
|
-
*
|
|
128
|
-
* For non-boolean columns, this is only relevant for checking if the value of
|
|
129
|
-
* `column` is NULL by setting `value` to `null`.
|
|
130
|
-
*
|
|
131
|
-
* For boolean columns, you can also set `value` to `true` or `false` and it
|
|
132
|
-
* will behave the same way as `.eq()`.
|
|
133
|
-
*
|
|
134
|
-
* @param column - The column to filter on
|
|
135
|
-
* @param value - The value to filter with
|
|
136
|
-
*/
|
|
137
|
-
is(column, value) {
|
|
138
|
-
this.url.searchParams.append(column, `is.${value}`);
|
|
139
|
-
return this;
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Match only rows where `column` is included in the `values` array.
|
|
143
|
-
*
|
|
144
|
-
* @param column - The column to filter on
|
|
145
|
-
* @param values - The values array to filter with
|
|
146
|
-
*/
|
|
147
|
-
in(column, values) {
|
|
148
|
-
const cleanedValues = Array.from(new Set(values))
|
|
149
|
-
.map((s) => {
|
|
150
|
-
// handle postgrest reserved characters
|
|
151
|
-
// https://postgrest.org/en/v7.0.0/api.html#reserved-characters
|
|
152
|
-
if (typeof s === 'string' && new RegExp('[,()]').test(s))
|
|
153
|
-
return `"${s}"`;
|
|
154
|
-
else
|
|
155
|
-
return `${s}`;
|
|
156
|
-
})
|
|
157
|
-
.join(',');
|
|
158
|
-
this.url.searchParams.append(column, `in.(${cleanedValues})`);
|
|
159
|
-
return this;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Only relevant for jsonb, array, and range columns. Match only rows where
|
|
163
|
-
* `column` contains every element appearing in `value`.
|
|
164
|
-
*
|
|
165
|
-
* @param column - The jsonb, array, or range column to filter on
|
|
166
|
-
* @param value - The jsonb, array, or range value to filter with
|
|
167
|
-
*/
|
|
168
|
-
contains(column, value) {
|
|
169
|
-
if (typeof value === 'string') {
|
|
170
|
-
// range types can be inclusive '[', ']' or exclusive '(', ')' so just
|
|
171
|
-
// keep it simple and accept a string
|
|
172
|
-
this.url.searchParams.append(column, `cs.${value}`);
|
|
173
|
-
}
|
|
174
|
-
else if (Array.isArray(value)) {
|
|
175
|
-
// array
|
|
176
|
-
this.url.searchParams.append(column, `cs.{${value.join(',')}}`);
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
// json
|
|
180
|
-
this.url.searchParams.append(column, `cs.${JSON.stringify(value)}`);
|
|
181
|
-
}
|
|
182
|
-
return this;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Only relevant for jsonb, array, and range columns. Match only rows where
|
|
186
|
-
* every element appearing in `column` is contained by `value`.
|
|
187
|
-
*
|
|
188
|
-
* @param column - The jsonb, array, or range column to filter on
|
|
189
|
-
* @param value - The jsonb, array, or range value to filter with
|
|
190
|
-
*/
|
|
191
|
-
containedBy(column, value) {
|
|
192
|
-
if (typeof value === 'string') {
|
|
193
|
-
// range
|
|
194
|
-
this.url.searchParams.append(column, `cd.${value}`);
|
|
195
|
-
}
|
|
196
|
-
else if (Array.isArray(value)) {
|
|
197
|
-
// array
|
|
198
|
-
this.url.searchParams.append(column, `cd.{${value.join(',')}}`);
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
// json
|
|
202
|
-
this.url.searchParams.append(column, `cd.${JSON.stringify(value)}`);
|
|
203
|
-
}
|
|
204
|
-
return this;
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Only relevant for range columns. Match only rows where every element in
|
|
208
|
-
* `column` is greater than any element in `range`.
|
|
209
|
-
*
|
|
210
|
-
* @param column - The range column to filter on
|
|
211
|
-
* @param range - The range to filter with
|
|
212
|
-
*/
|
|
213
|
-
rangeGt(column, range) {
|
|
214
|
-
this.url.searchParams.append(column, `sr.${range}`);
|
|
215
|
-
return this;
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Only relevant for range columns. Match only rows where every element in
|
|
219
|
-
* `column` is either contained in `range` or greater than any element in
|
|
220
|
-
* `range`.
|
|
221
|
-
*
|
|
222
|
-
* @param column - The range column to filter on
|
|
223
|
-
* @param range - The range to filter with
|
|
224
|
-
*/
|
|
225
|
-
rangeGte(column, range) {
|
|
226
|
-
this.url.searchParams.append(column, `nxl.${range}`);
|
|
227
|
-
return this;
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Only relevant for range columns. Match only rows where every element in
|
|
231
|
-
* `column` is less than any element in `range`.
|
|
232
|
-
*
|
|
233
|
-
* @param column - The range column to filter on
|
|
234
|
-
* @param range - The range to filter with
|
|
235
|
-
*/
|
|
236
|
-
rangeLt(column, range) {
|
|
237
|
-
this.url.searchParams.append(column, `sl.${range}`);
|
|
238
|
-
return this;
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Only relevant for range columns. Match only rows where every element in
|
|
242
|
-
* `column` is either contained in `range` or less than any element in
|
|
243
|
-
* `range`.
|
|
244
|
-
*
|
|
245
|
-
* @param column - The range column to filter on
|
|
246
|
-
* @param range - The range to filter with
|
|
247
|
-
*/
|
|
248
|
-
rangeLte(column, range) {
|
|
249
|
-
this.url.searchParams.append(column, `nxr.${range}`);
|
|
250
|
-
return this;
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Only relevant for range columns. Match only rows where `column` is
|
|
254
|
-
* mutually exclusive to `range` and there can be no element between the two
|
|
255
|
-
* ranges.
|
|
256
|
-
*
|
|
257
|
-
* @param column - The range column to filter on
|
|
258
|
-
* @param range - The range to filter with
|
|
259
|
-
*/
|
|
260
|
-
rangeAdjacent(column, range) {
|
|
261
|
-
this.url.searchParams.append(column, `adj.${range}`);
|
|
262
|
-
return this;
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Only relevant for array and range columns. Match only rows where
|
|
266
|
-
* `column` and `value` have an element in common.
|
|
267
|
-
*
|
|
268
|
-
* @param column - The array or range column to filter on
|
|
269
|
-
* @param value - The array or range value to filter with
|
|
270
|
-
*/
|
|
271
|
-
overlaps(column, value) {
|
|
272
|
-
if (typeof value === 'string') {
|
|
273
|
-
// range
|
|
274
|
-
this.url.searchParams.append(column, `ov.${value}`);
|
|
275
|
-
}
|
|
276
|
-
else {
|
|
277
|
-
// array
|
|
278
|
-
this.url.searchParams.append(column, `ov.{${value.join(',')}}`);
|
|
279
|
-
}
|
|
280
|
-
return this;
|
|
281
|
-
}
|
|
282
|
-
/**
|
|
283
|
-
* Only relevant for text and tsvector columns. Match only rows where
|
|
284
|
-
* `column` matches the query string in `query`.
|
|
285
|
-
*
|
|
286
|
-
* @param column - The text or tsvector column to filter on
|
|
287
|
-
* @param query - The query text to match with
|
|
288
|
-
* @param options - Named parameters
|
|
289
|
-
* @param options.config - The text search configuration to use
|
|
290
|
-
* @param options.type - Change how the `query` text is interpreted
|
|
291
|
-
*/
|
|
292
|
-
textSearch(column, query, { config, type } = {}) {
|
|
293
|
-
let typePart = '';
|
|
294
|
-
if (type === 'plain') {
|
|
295
|
-
typePart = 'pl';
|
|
296
|
-
}
|
|
297
|
-
else if (type === 'phrase') {
|
|
298
|
-
typePart = 'ph';
|
|
299
|
-
}
|
|
300
|
-
else if (type === 'websearch') {
|
|
301
|
-
typePart = 'w';
|
|
302
|
-
}
|
|
303
|
-
const configPart = config === undefined ? '' : `(${config})`;
|
|
304
|
-
this.url.searchParams.append(column, `${typePart}fts${configPart}.${query}`);
|
|
305
|
-
return this;
|
|
306
|
-
}
|
|
307
|
-
/**
|
|
308
|
-
* Match only rows where each column in `query` keys is equal to its
|
|
309
|
-
* associated value. Shorthand for multiple `.eq()`s.
|
|
310
|
-
*
|
|
311
|
-
* @param query - The object to filter with, with column names as keys mapped
|
|
312
|
-
* to their filter values
|
|
313
|
-
*/
|
|
314
|
-
match(query) {
|
|
315
|
-
Object.entries(query).forEach(([column, value]) => {
|
|
316
|
-
this.url.searchParams.append(column, `eq.${value}`);
|
|
317
|
-
});
|
|
318
|
-
return this;
|
|
319
|
-
}
|
|
320
|
-
/**
|
|
321
|
-
* Match only rows which doesn't satisfy the filter.
|
|
322
|
-
*
|
|
323
|
-
* Unlike most filters, `opearator` and `value` are used as-is and need to
|
|
324
|
-
* follow [PostgREST
|
|
325
|
-
* syntax](https://postgrest.org/en/stable/api.html#operators). You also need
|
|
326
|
-
* to make sure they are properly sanitized.
|
|
327
|
-
*
|
|
328
|
-
* @param column - The column to filter on
|
|
329
|
-
* @param operator - The operator to be negated to filter with, following
|
|
330
|
-
* PostgREST syntax
|
|
331
|
-
* @param value - The value to filter with, following PostgREST syntax
|
|
332
|
-
*/
|
|
333
|
-
not(column, operator, value) {
|
|
334
|
-
this.url.searchParams.append(column, `not.${operator}.${value}`);
|
|
335
|
-
return this;
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* Match only rows which satisfy at least one of the filters.
|
|
339
|
-
*
|
|
340
|
-
* Unlike most filters, `filters` is used as-is and needs to follow [PostgREST
|
|
341
|
-
* syntax](https://postgrest.org/en/stable/api.html#operators). You also need
|
|
342
|
-
* to make sure it's properly sanitized.
|
|
343
|
-
*
|
|
344
|
-
* It's currently not possible to do an `.or()` filter across multiple tables.
|
|
345
|
-
*
|
|
346
|
-
* @param filters - The filters to use, following PostgREST syntax
|
|
347
|
-
* @param options - Named parameters
|
|
348
|
-
* @param options.referencedTable - Set this to filter on referenced tables
|
|
349
|
-
* instead of the parent table
|
|
350
|
-
* @param options.foreignTable - Deprecated, use `referencedTable` instead
|
|
351
|
-
*/
|
|
352
|
-
or(filters, { foreignTable, referencedTable = foreignTable, } = {}) {
|
|
353
|
-
const key = referencedTable ? `${referencedTable}.or` : 'or';
|
|
354
|
-
this.url.searchParams.append(key, `(${filters})`);
|
|
355
|
-
return this;
|
|
356
|
-
}
|
|
357
|
-
/**
|
|
358
|
-
* Match only rows which satisfy the filter. This is an escape hatch - you
|
|
359
|
-
* should use the specific filter methods wherever possible.
|
|
360
|
-
*
|
|
361
|
-
* Unlike most filters, `opearator` and `value` are used as-is and need to
|
|
362
|
-
* follow [PostgREST
|
|
363
|
-
* syntax](https://postgrest.org/en/stable/api.html#operators). You also need
|
|
364
|
-
* to make sure they are properly sanitized.
|
|
365
|
-
*
|
|
366
|
-
* @param column - The column to filter on
|
|
367
|
-
* @param operator - The operator to filter with, following PostgREST syntax
|
|
368
|
-
* @param value - The value to filter with, following PostgREST syntax
|
|
369
|
-
*/
|
|
370
|
-
filter(column, operator, value) {
|
|
371
|
-
this.url.searchParams.append(column, `${operator}.${value}`);
|
|
372
|
-
return this;
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
//# sourceMappingURL=PostgrestFilterBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PostgrestFilterBuilder.js","sourceRoot":"","sources":["../../src/PostgrestFilterBuilder.ts"],"names":[],"mappings":"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"}
|