@juit/pgproxy-persister 1.4.2 → 1.4.4
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/search.cjs.map +1 -1
- package/dist/search.d.ts +8 -8
- package/dist/search.mjs.map +1 -1
- package/package.json +4 -4
- package/src/search.ts +13 -12
package/dist/search.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/search.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAuB;AAEvB,mBAA4C;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["evalue", "sql", "params", "result", "total"]
|
|
6
6
|
}
|
package/dist/search.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { Connection, Persister } from './persister';
|
|
|
4
4
|
/**
|
|
5
5
|
* An object to perform searches on a given table.
|
|
6
6
|
*/
|
|
7
|
-
export interface Search<Schema, Table extends string & keyof Schema, Joins extends SearchJoins<Schema
|
|
7
|
+
export interface Search<Schema, Table extends string & keyof Schema, Joins extends SearchJoins<Schema>, TextSearch extends boolean> {
|
|
8
8
|
/**
|
|
9
9
|
* Return the first result (if any) matching the specified query.
|
|
10
10
|
*
|
|
@@ -14,7 +14,7 @@ export interface Search<Schema, Table extends string & keyof Schema, Joins exten
|
|
|
14
14
|
* @param where Optional extra SQL `WHERE` clauses to customize the search
|
|
15
15
|
* @returns The first matching result, or `undefined` if no results matched
|
|
16
16
|
*/
|
|
17
|
-
find(query: SearchQuery<Schema, Table, Joins>, where?: PGQuery): Promise<SearchResult<Schema, Table, Joins> | undefined>;
|
|
17
|
+
find(query: SearchQuery<Schema, Table, Joins, TextSearch>, where?: PGQuery): Promise<SearchResult<Schema, Table, Joins> | undefined>;
|
|
18
18
|
/**
|
|
19
19
|
* Return the raw SQL query and parameters for the specified options.
|
|
20
20
|
*
|
|
@@ -22,7 +22,7 @@ export interface Search<Schema, Table extends string & keyof Schema, Joins exten
|
|
|
22
22
|
* @param where Optional extra SQL `WHERE` clauses to customize the search
|
|
23
23
|
* @returns A tuple containing the SQL string and its parameters
|
|
24
24
|
*/
|
|
25
|
-
query(options: SearchOptions<Schema, Table, Joins>, where?: PGQuery): [sql: string, params: any[]];
|
|
25
|
+
query(options: SearchOptions<Schema, Table, Joins, TextSearch>, where?: PGQuery): [sql: string, params: any[]];
|
|
26
26
|
/**
|
|
27
27
|
* Perform a search with the specified options.
|
|
28
28
|
*
|
|
@@ -30,7 +30,7 @@ export interface Search<Schema, Table extends string & keyof Schema, Joins exten
|
|
|
30
30
|
* @param where Optional extra SQL `WHERE` clauses to customize the search
|
|
31
31
|
* @returns The search results
|
|
32
32
|
*/
|
|
33
|
-
search(options: SearchOptions<Schema, Table, Joins>, where?: PGQuery): Promise<SearchResults<Schema, Table, Joins>>;
|
|
33
|
+
search(options: SearchOptions<Schema, Table, Joins, TextSearch>, where?: PGQuery): Promise<SearchResults<Schema, Table, Joins>>;
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* A query provider for models
|
|
@@ -48,7 +48,7 @@ export interface SearchConstructor {
|
|
|
48
48
|
* @param provider The {@link SearchProvider} instance to use
|
|
49
49
|
* @param table The table to perform searches on
|
|
50
50
|
*/
|
|
51
|
-
new <P extends SearchProvider, T extends string & (P extends SearchProvider<infer S> ? keyof S : never)>(provider: P, table: T): Search<P extends SearchProvider<infer S> ? S : never, T, {}>;
|
|
51
|
+
new <P extends SearchProvider, T extends string & (P extends SearchProvider<infer S> ? keyof S : never)>(provider: P, table: T): Search<P extends SearchProvider<infer S> ? S : never, T, {}, false>;
|
|
52
52
|
/**
|
|
53
53
|
* Construct a {@link Search} object using the specified
|
|
54
54
|
* {@link SearchProvider} (a `Persister`, `Connection`, ...) operating on the
|
|
@@ -59,7 +59,7 @@ export interface SearchConstructor {
|
|
|
59
59
|
* @param table The table to perform searches on
|
|
60
60
|
* @param fullTextSearchColumn The column to use for full-text searches
|
|
61
61
|
*/
|
|
62
|
-
new <P extends SearchProvider, T extends string & (P extends SearchProvider<infer S> ? keyof S : never)>(provider: P, table: T, fullTextSearchColumn: string): Search<P extends SearchProvider<infer S> ? S : never, T, {}>;
|
|
62
|
+
new <P extends SearchProvider, T extends string & (P extends SearchProvider<infer S> ? keyof S : never)>(provider: P, table: T, fullTextSearchColumn: string): Search<P extends SearchProvider<infer S> ? S : never, T, {}, true>;
|
|
63
63
|
/**
|
|
64
64
|
* Construct a {@link Search} object using the specified
|
|
65
65
|
* {@link SearchProvider} (a `Persister`, `Connection`, ...) operating on the
|
|
@@ -69,7 +69,7 @@ export interface SearchConstructor {
|
|
|
69
69
|
* @param table The table to perform searches on
|
|
70
70
|
* @param joins The joins to perform
|
|
71
71
|
*/
|
|
72
|
-
new <P extends SearchProvider, T extends string & (P extends SearchProvider<infer S> ? keyof S : never), J extends SearchJoins<P extends SearchProvider<infer S> ? S : never>>(provider: P, table: T, joins: J): Search<P extends SearchProvider<infer S> ? S : never, T, J>;
|
|
72
|
+
new <P extends SearchProvider, T extends string & (P extends SearchProvider<infer S> ? keyof S : never), J extends SearchJoins<P extends SearchProvider<infer S> ? S : never>>(provider: P, table: T, joins: J): Search<P extends SearchProvider<infer S> ? S : never, T, J, false>;
|
|
73
73
|
/**
|
|
74
74
|
* Construct a {@link Search} object using the specified
|
|
75
75
|
* {@link SearchProvider} (a `Persister`, `Connection`, ...) operating on the
|
|
@@ -81,7 +81,7 @@ export interface SearchConstructor {
|
|
|
81
81
|
* @param joins The joins to perform
|
|
82
82
|
* @param fullTextSearchColumn The column to use for full-text searches
|
|
83
83
|
*/
|
|
84
|
-
new <P extends SearchProvider, T extends string & (P extends SearchProvider<infer S> ? keyof S : never), J extends SearchJoins<P extends SearchProvider<infer S> ? S : never>>(provider: P, table: T, joins: J, fullTextSearchColumn: string): Search<P extends SearchProvider<infer S> ? S : never, T, J>;
|
|
84
|
+
new <P extends SearchProvider, T extends string & (P extends SearchProvider<infer S> ? keyof S : never), J extends SearchJoins<P extends SearchProvider<infer S> ? S : never>>(provider: P, table: T, joins: J, fullTextSearchColumn: string): Search<P extends SearchProvider<infer S> ? S : never, T, J, true>;
|
|
85
85
|
}
|
|
86
86
|
/** Revive a JSON, parsing ISO dates as {@link Date} objects */
|
|
87
87
|
export declare function reviver(_key: string, data: any): any;
|
package/dist/search.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/search.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,cAAc;AAEvB,SAAS,QAAQ,2BAA2B;
|
|
4
|
+
"mappings": ";AAAA,SAAS,cAAc;AAEvB,SAAS,QAAQ,2BAA2B;AAmJ5C,IAAM,SAAS;AAGR,SAAS,QAAQ,MAAc,MAAgB;AACpD,MAAK,OAAO,SAAS,YAAa,OAAO,KAAK,IAAI,EAAG,QAAO,IAAI,KAAK,IAAI;AACzE,SAAO;AACT;AAEA,IAAM,aAAN,MAIgD;AAAA;AAAA,EAE9C;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA,EAOA,YACI,UACA,OACA,6BACA,2BACF;AACA,SAAK,YAAY;AACjB,SAAK,UAAU,oBAAoB,KAAK;AAExC,QAAI,QAAe,CAAC;AACpB,QAAI,uBAA2C;AAE/C,QAAI,OAAO,gCAAgC,UAAU;AACnD,6BAAuB;AAAA,IACzB,WAAW,6BAA6B;AACtC,cAAQ;AACR,6BAAuB;AAAA,IACzB;AAEA,SAAK,wBAAwB,wBAAwB;AAErD,SAAK,UAAU,OAAO,YAAY,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAE,KAAK,GAAI,MAAM;AAC5E,aAAO,CAAE,KAAK;AAAA,QACZ,QAAQ,OAAO,IAAI,MAAM;AAAA,QACzB,UAAU,oBAAoB,IAAI,QAAQ;AAAA,QAC1C,WAAW,OAAO,IAAI,SAAS;AAAA,QAC/B,YAAY,IAAI,aAAa,OAAO,IAAI,UAAU,IAAI;AAAA,MACxD,CAAwB;AAAA,IAC1B,CAAC,CAAC;AAAA,EACJ;AAAA,EAEA,OACI,OACA,SACA,OAC8B;AAChC,UAAM;AAAA,MACJ,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU,CAAC;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AAEJ,UAAM,SAAS,KAAK;AACpB,UAAM,SAAS,KAAK;AAEpB,UAAM,SAAmB,CAAC;AAC1B,UAAM,QAAkB,CAAC;AACzB,UAAM,UAAoB,CAAC;AAC3B,UAAM,SAAgB,CAAC;AAIvB,QAAI,OAAO;AACT,YAAM,KAAK,MAAM,KAAK;AACtB,UAAI,MAAM,OAAQ,QAAO,KAAK,GAAG,MAAM,MAAM;AAAA,IAC/C;AAEA,QAAI,UAAU;AACd,QAAI,UAAU,QAAQ;AACpB,UAAI,KAAK,sBAAuB,WAAU,OAAO,KAAK,qBAAqB;AAAA,IAC7E,WAAW,KAAK,uBAAuB;AACrC,aAAO,KAAK,aAAa,MAAM,UAAU,OAAO,KAAK,KAAK,qBAAqB,CAAC,GAAG;AACnF,gBAAU,OAAO,KAAK,qBAAqB;AAAA,IAC7C,OAAO;AACL,aAAO,KAAM,YAAY,MAAM,KAAK;AAAA,IACtC;AAGA,UAAM,OAAiB,CAAE,MAAO;AAGhC,QAAI,YAAY;AAChB,UAAM,eAAuC,CAAC;AAC9C,WAAO,QAAQ,MAAM,EAAE,QAAQ,CAAC,CAAE,IAAI,EAAE,QAAQ,UAAU,UAAU,CAAE,MAAM;AAC1E,YAAM,SAAS,OAAO,OAAO,EAAG,WAAW,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,KAAK;AAE7E,mBAAa,EAAE,MAAM;AAErB,UAAI,UAAU,QAAQ;AACpB,cAAM,QAAQ,OAAO,KAAK,EAAE;AAC5B,eAAO,KAAK,uBAAuB,KAAK,oBAAoB,MAAM,IAAI;AAAA,MACxE;AACA,WAAK,KAAK,aAAa,QAAQ,IAAI,MAAM,OAAO,MAAM,IAAI,MAAM,MAAM,MAAM,IAAI,SAAS,EAAE;AAAA,IAC7F,CAAC;AAID,QAAI,MAAM;AACR,YAAM,cAAc,OAAO,kBAAkB,MAAM,SAAS,UAAU;AAGtE,UAAI,OAAO,IAAI,GAAG;AAChB,eAAO,OAAO,IAAI,EAAE,YAAY,iCAAiC,IAAI,eAAe;AACpF,cAAM,mBAAmB,aAAa,IAAI;AAC1C,cAAM,eAAe,OAAO,IAAI,EAAE;AAClC,gBAAQ,KAAK,GAAG,gBAAgB,IAAI,YAAY,GAAG,WAAW,aAAa;AAAA,MAC7E,OAAO;AACL,gBAAQ,KAAK,GAAG,MAAM,IAAI,OAAO,IAAI,CAAC,GAAG,WAAW,EAAE;AAAA,MACxD;AAAA,IACF;AAGA,QAAI,GAAG;AACL,aAAO,SAAS,qCAAqC;AAIrD,UAAI,EAAE,MAAM,eAAe,GAAG;AAC5B,aAAK,KAAK,kCAAkC,OAAO,KAAK,IAAI,IAAI,CAAC,4BAA4B;AAAA,MAG/F,OAAO;AACL,aAAK,KAAK,4CAA4C,OAAO,KAAK,CAAC,CAAC,gBAAgB;AAAA,MACtF;AAGA,cAAQ,KAAK,WAAW,MAAM,IAAI,OAAO,mBAAmB;AAC5D,YAAM,KAAK,gBAAgB,MAAM,IAAI,OAAO,EAAE;AAAA,IAChD;AAGA,eAAW,EAAE,MAAM,OAAO,KAAK,KAAK,MAAM,KAAK,SAAS;AAWtD,YAAM,CAAE,SAAS,MAAO,IACrB,SAAS,CAAE,QAAQ,SAAS,GAAI,EAAE,SAAS,EAAE,IAC1C,CAAE,GAAG,OAAO,IAAI,CAAC,OAAO,OAAO,KAAK,KAAK,CAAC,IAAI,KAAM,IACpD,QACE,CAAE,GAAG,OAAO,IAAI,CAAC,MAAM,OAAO,KAAK,KAAK,CAAC,IAAI,KAAK,UAAU,KAAK,CAAE,IACnE,CAAE,OAAO,IAAI,GAAG,KAAM;AAI9B,UAAI,OAAO,MAAM;AACf,cAAMA,UAAU,SAAS,MAAM,QAAQ,KAAK,IAAK,MAAM,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,IAAI;AACvF,cAAM,KAAK,GAAG,MAAM,IAAI,OAAO,WAAW,OAAO,KAAKA,OAAM,CAAC,GAAG;AAChE;AAAA,MAGF,WAAW,OAAO,UAAU;AAC1B,cAAMA,UAAU,SAAS,MAAM,QAAQ,KAAK,IAAK,MAAM,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,IAAI;AACvF,cAAM,KAAK,GAAG,MAAM,IAAI,OAAO,YAAY,OAAO,KAAKA,OAAM,CAAC,GAAG;AACjE;AAAA,MAGF,WAAY,OAAO,QAAU,OAAO,MAAO;AACzC,eAAO,CAAC,OAAO,UAAU,KAAK,oDAAoD,EAAE,iBAAiB,IAAI,GAAG;AAC5G,cAAM,KAAK,GAAG,MAAM,IAAI,OAAO,IAAI,EAAE,MAAM,OAAO,KAAK,KAAK,UAAU,KAAK,CAAC,CAAC,UAAU;AACvF;AAAA,MACF;AAGA,UAAI;AACJ,cAAQ,IAAI;AAAA,QACV,KAAK;AAAK,qBAAW;AAAK;AAAA,QAC1B,KAAK;AAAM,qBAAW;AAAM;AAAA,QAC5B,KAAK;AAAK,qBAAW;AAAK;AAAA,QAC1B,KAAK;AAAM,qBAAW;AAAM;AAAA,QAC5B,KAAK;AAAQ,qBAAW;AAAQ;AAAA,QAChC,KAAK;AAAS,qBAAW;AAAS;AAAA,QAClC,KAAK;AAAK,qBAAW;AAAS;AAAA,QAC9B,KAAK;AAAM,qBAAW;AAAoB;AAAA,QAC1C,KAAK;AAAK,qBAAW;AAAwB;AAAA,QAC7C;AAAS,gBAAM,IAAI,MAAM,yBAAyB,EAAE,iBAAiB,IAAI,GAAG;AAAA,MAC9E;AAGA,YAAM,KAAK,GAAG,MAAM,IAAI,OAAO,IAAI,QAAQ,KAAK,OAAO,KAAK,MAAM,CAAC,EAAE;AAAA,IACvE;AAGA,UAAM,SAAS,IAAI,OAAO,KAAK,MAAM,CAAC;AACtC,UAAM,UACJ,UAAU,SAAS,wBACnB,QAAQ,+BAA+B,MAAM,KAC7C;AAEF,QAAI,MAAM,UAAU,OAAO,SAAS,KAAK,KAAK,GAAG,CAAC;AAClD,QAAI,MAAM,OAAQ,QAAO,UAAU,MAAM,KAAK,OAAO,CAAC;AACtD,QAAI,QAAQ,UAAW,UAAU,OAAS,QAAO,aAAa,QAAQ,KAAK,IAAI,CAAC;AAGhF,QAAI,OAAQ,QAAO,YAAY,OAAO,KAAK,MAAM,CAAC;AAClD,QAAI,MAAO,QAAO,WAAW,OAAO,KAAK,KAAK,CAAC;AAC/C,WAAO,CAAE,KAAK,MAAO;AAAA,EACvB;AAAA,EAEA,MAAM,SAAoD,OAAiD;AACzG,WAAO,KAAK,OAAO,OAAO,SAAS,KAAK;AAAA,EAC1C;AAAA,EAEA,MAAM,KAAK,SAAkD,OAA0E;AACrI,UAAM,CAAE,KAAK,MAAO,IAAI,KAAK,OAAO,OAAO,EAAE,GAAG,SAAS,QAAQ,GAAG,OAAO,EAAE,GAAG,KAAK;AAErF,UAAM,SAAS,MAAM,KAAK,UAAU,MAA0C,KAAK,MAAM;AACzF,QAAI,OAAO,KAAK,CAAC,EAAG,QAAO,KAAK,MAAM,OAAO,KAAK,CAAC,EAAE,QAAQ,OAAO;AACpE,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,SAAoD,OAA+D;AAC9H,UAAM,CAAE,KAAK,MAAO,IAAI,KAAK,OAAO,MAAM,SAAS,KAAK;AAExD,UAAM,SAAS,MAAM,KAAK,UAAU,MAAyC,KAAK,MAAM,EAAE,MAAM,CAAC,UAAU;AACzG,YAAM,IAAI,MAAM,iCAAiC,MAAM,OAAO,IAAI,EAAE,OAAO,EAAE,KAAK,QAAQ,MAAM,EAAE,CAAC;AAAA,IACrG,CAAC;AAED,QAAK,OAAO,KAAK,WAAW,MAAQ,QAAQ,UAAU,KAAK,GAAI;AAC7D,YAAM,CAAEC,MAAKC,OAAO,IAAI,KAAK,OAAO,QAAQ,EAAE,GAAG,SAAS,QAAQ,GAAG,OAAO,OAAU,GAAG,KAAK;AAC9F,YAAMC,UAAS,MAAM,KAAK,UAAU,MAAyBF,MAAKC,OAAM;AACxE,aAAOC,QAAO,KAAK,CAAC,GAAG,mCAAmC;AAC1D,YAAMC,SAAQ,OAAOD,QAAO,KAAK,CAAC,EAAE,KAAK;AACzC,aAAO,EAAE,OAAAC,QAAO,MAAM,CAAC,EAAE;AAAA,IAC3B;AAEA,UAAM,OAAO,OAAO,KAAK,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,QAAQ,OAAO,CAAC;AACrE,UAAM,QAAQ,OAAO,OAAO,KAAK,CAAC,GAAG,KAAK,KAAK;AAE/C,WAAO,EAAE,OAAO,KAAK;AAAA,EACvB;AACF;AAOO,IAAM,SAA4B;",
|
|
5
5
|
"names": ["evalue", "sql", "params", "result", "total"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juit/pgproxy-persister",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.4",
|
|
4
4
|
"main": "./dist/index.cjs",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
"src/"
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@juit/pgproxy-client": "1.4.
|
|
47
|
-
"@juit/pgproxy-model": "1.4.
|
|
48
|
-
"@juit/pgproxy-types": "1.4.
|
|
46
|
+
"@juit/pgproxy-client": "1.4.4",
|
|
47
|
+
"@juit/pgproxy-model": "1.4.4",
|
|
48
|
+
"@juit/pgproxy-types": "1.4.4"
|
|
49
49
|
}
|
|
50
50
|
}
|
package/src/search.ts
CHANGED
|
@@ -24,6 +24,7 @@ export interface Search<
|
|
|
24
24
|
Schema,
|
|
25
25
|
Table extends string & keyof Schema,
|
|
26
26
|
Joins extends SearchJoins<Schema>,
|
|
27
|
+
TextSearch extends boolean,
|
|
27
28
|
> {
|
|
28
29
|
/**
|
|
29
30
|
* Return the first result (if any) matching the specified query.
|
|
@@ -34,7 +35,7 @@ export interface Search<
|
|
|
34
35
|
* @param where Optional extra SQL `WHERE` clauses to customize the search
|
|
35
36
|
* @returns The first matching result, or `undefined` if no results matched
|
|
36
37
|
*/
|
|
37
|
-
find(query: SearchQuery<Schema, Table, Joins>, where?: PGQuery): Promise<SearchResult<Schema, Table, Joins> | undefined>
|
|
38
|
+
find(query: SearchQuery<Schema, Table, Joins, TextSearch>, where?: PGQuery): Promise<SearchResult<Schema, Table, Joins> | undefined>
|
|
38
39
|
|
|
39
40
|
/**
|
|
40
41
|
* Return the raw SQL query and parameters for the specified options.
|
|
@@ -43,7 +44,7 @@ export interface Search<
|
|
|
43
44
|
* @param where Optional extra SQL `WHERE` clauses to customize the search
|
|
44
45
|
* @returns A tuple containing the SQL string and its parameters
|
|
45
46
|
*/
|
|
46
|
-
query(options: SearchOptions<Schema, Table, Joins>, where?: PGQuery): [ sql: string, params: any[] ]
|
|
47
|
+
query(options: SearchOptions<Schema, Table, Joins, TextSearch>, where?: PGQuery): [ sql: string, params: any[] ]
|
|
47
48
|
|
|
48
49
|
/**
|
|
49
50
|
* Perform a search with the specified options.
|
|
@@ -52,7 +53,7 @@ export interface Search<
|
|
|
52
53
|
* @param where Optional extra SQL `WHERE` clauses to customize the search
|
|
53
54
|
* @returns The search results
|
|
54
55
|
*/
|
|
55
|
-
search(options: SearchOptions<Schema, Table, Joins>, where?: PGQuery): Promise<SearchResults<Schema, Table, Joins>>
|
|
56
|
+
search(options: SearchOptions<Schema, Table, Joins, TextSearch>, where?: PGQuery): Promise<SearchResults<Schema, Table, Joins>>
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
/**
|
|
@@ -78,7 +79,7 @@ export interface SearchConstructor {
|
|
|
78
79
|
>(
|
|
79
80
|
provider: P,
|
|
80
81
|
table: T,
|
|
81
|
-
): Search<P extends SearchProvider<infer S> ? S : never, T, {}>;
|
|
82
|
+
): Search<P extends SearchProvider<infer S> ? S : never, T, {}, false>;
|
|
82
83
|
|
|
83
84
|
/**
|
|
84
85
|
* Construct a {@link Search} object using the specified
|
|
@@ -97,7 +98,7 @@ export interface SearchConstructor {
|
|
|
97
98
|
provider: P,
|
|
98
99
|
table: T,
|
|
99
100
|
fullTextSearchColumn: string,
|
|
100
|
-
): Search<P extends SearchProvider<infer S> ? S : never, T, {}>;
|
|
101
|
+
): Search<P extends SearchProvider<infer S> ? S : never, T, {}, true>;
|
|
101
102
|
|
|
102
103
|
/**
|
|
103
104
|
* Construct a {@link Search} object using the specified
|
|
@@ -116,7 +117,7 @@ export interface SearchConstructor {
|
|
|
116
117
|
provider: P,
|
|
117
118
|
table: T,
|
|
118
119
|
joins: J,
|
|
119
|
-
): Search<P extends SearchProvider<infer S> ? S : never, T, J>;
|
|
120
|
+
): Search<P extends SearchProvider<infer S> ? S : never, T, J, false>;
|
|
120
121
|
|
|
121
122
|
/**
|
|
122
123
|
* Construct a {@link Search} object using the specified
|
|
@@ -138,7 +139,7 @@ export interface SearchConstructor {
|
|
|
138
139
|
table: T,
|
|
139
140
|
joins: J,
|
|
140
141
|
fullTextSearchColumn: string,
|
|
141
|
-
): Search<P extends SearchProvider<infer S> ? S : never, T, J>;
|
|
142
|
+
): Search<P extends SearchProvider<infer S> ? S : never, T, J, true>;
|
|
142
143
|
}
|
|
143
144
|
|
|
144
145
|
/* ========================================================================== *
|
|
@@ -158,7 +159,7 @@ class SearchImpl<
|
|
|
158
159
|
Schema,
|
|
159
160
|
Table extends string & keyof Schema,
|
|
160
161
|
Joins extends SearchJoins<Schema> = {},
|
|
161
|
-
> implements Search<Schema, Table, Joins> {
|
|
162
|
+
> implements Search<Schema, Table, Joins, true> {
|
|
162
163
|
/** Our search provider instance */
|
|
163
164
|
#provider: SearchProvider<Schema>
|
|
164
165
|
/** The escaped table name */
|
|
@@ -206,7 +207,7 @@ class SearchImpl<
|
|
|
206
207
|
|
|
207
208
|
#query(
|
|
208
209
|
count: boolean | 'only',
|
|
209
|
-
options: SearchOptions<Schema, Table, Joins>,
|
|
210
|
+
options: SearchOptions<Schema, Table, Joins, true>,
|
|
210
211
|
extra?: PGQuery,
|
|
211
212
|
): [ sql: string, params: any[] ] {
|
|
212
213
|
const {
|
|
@@ -371,11 +372,11 @@ class SearchImpl<
|
|
|
371
372
|
return [ sql, params ]
|
|
372
373
|
}
|
|
373
374
|
|
|
374
|
-
query(options: SearchOptions<Schema, Table, Joins>, where?: PGQuery): [ sql: string, params: any[] ] {
|
|
375
|
+
query(options: SearchOptions<Schema, Table, Joins, true>, where?: PGQuery): [ sql: string, params: any[] ] {
|
|
375
376
|
return this.#query(false, options, where)
|
|
376
377
|
}
|
|
377
378
|
|
|
378
|
-
async find(options: SearchQuery<Schema, Table, Joins>, where?: PGQuery): Promise<SearchResult<Schema, Table, Joins> | undefined> {
|
|
379
|
+
async find(options: SearchQuery<Schema, Table, Joins, true>, where?: PGQuery): Promise<SearchResult<Schema, Table, Joins> | undefined> {
|
|
379
380
|
const [ sql, params ] = this.#query(false, { ...options, offset: 0, limit: 1 }, where)
|
|
380
381
|
|
|
381
382
|
const result = await this.#provider.query<{ total?: number, result: string }>(sql, params)
|
|
@@ -383,7 +384,7 @@ class SearchImpl<
|
|
|
383
384
|
return undefined
|
|
384
385
|
}
|
|
385
386
|
|
|
386
|
-
async search(options: SearchOptions<Schema, Table, Joins>, where?: PGQuery): Promise<SearchResults<Schema, Table, Joins>> {
|
|
387
|
+
async search(options: SearchOptions<Schema, Table, Joins, true>, where?: PGQuery): Promise<SearchResults<Schema, Table, Joins>> {
|
|
387
388
|
const [ sql, params ] = this.#query(true, options, where)
|
|
388
389
|
|
|
389
390
|
const result = await this.#provider.query<{ total: number, result: string }>(sql, params).catch((error) => {
|