vsrepo 2.6.0 → 2.7.0
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/CHANGELOG.md +24 -0
- package/README.md +3 -2
- package/README.pt-BR.md +3 -2
- package/dist/VSRepoAdapter.d.ts +12 -0
- package/dist/VSRepoAdapter.js.map +1 -1
- package/dist/VSRepository.d.ts +50 -4
- package/dist/VSRepository.js +57 -28
- package/dist/VSRepository.js.map +1 -1
- package/dist/decorators/query-method.decorator.d.ts +3 -24
- package/dist/decorators/query-method.decorator.js +4 -27
- package/dist/decorators/query-method.decorator.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/resolvers/dynamic-methods.resolver.d.ts +6 -5
- package/dist/internal/resolvers/dynamic-methods.resolver.js +112 -98
- package/dist/internal/resolvers/dynamic-methods.resolver.js.map +1 -1
- package/dist/internal/utils/vs-placeholder-parser.util.d.ts +2 -0
- package/dist/internal/utils/vs-placeholder-parser.util.js +62 -0
- package/dist/internal/utils/vs-placeholder-parser.util.js.map +1 -0
- package/dist/internal/utils/vs-query-builder.util.d.ts +5 -1
- package/dist/internal/utils/vs-query-builder.util.js +1 -13
- package/dist/internal/utils/vs-query-builder.util.js.map +1 -1
- package/dist/internal/utils/vs-raw-query-builder.util.d.ts +238 -0
- package/dist/internal/utils/vs-raw-query-builder.util.js +433 -0
- package/dist/internal/utils/vs-raw-query-builder.util.js.map +1 -0
- package/dist/internal/utils/vs-sql.util.d.ts +100 -0
- package/dist/internal/utils/vs-sql.util.js +151 -0
- package/dist/internal/utils/vs-sql.util.js.map +1 -0
- package/dist/internal/validators/decorators.validator.js +1 -1
- package/dist/internal/validators/decorators.validator.js.map +1 -1
- package/dist/internal/validators/vsrepo.validator.js +1 -0
- package/dist/internal/validators/vsrepo.validator.js.map +1 -1
- package/dist/types/vsrepo/vs-raw-query-builder-cte-query.type.d.ts +8 -0
- package/dist/types/vsrepo/vs-raw-query-builder-cte-query.type.js +3 -0
- package/dist/types/vsrepo/vs-raw-query-builder-cte-query.type.js.map +1 -0
- package/dist/types/vsrepo/vs-raw-query-builder-target.type.d.ts +7 -0
- package/dist/types/vsrepo/vs-raw-query-builder-target.type.js +3 -0
- package/dist/types/vsrepo/vs-raw-query-builder-target.type.js.map +1 -0
- package/dist/types/vsrepo/vsrepo-options.type.d.ts +18 -0
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-methods.resolver.js","sourceRoot":"","sources":["../../../src/internal/resolvers/dynamic-methods.resolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dynamic-methods.resolver.js","sourceRoot":"","sources":["../../../src/internal/resolvers/dynamic-methods.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VSPlaceholdersParser = void 0;
|
|
4
|
+
const VSRepoError_1 = require("../../errors/VSRepoError");
|
|
5
|
+
const vsrepo_error_type_enum_1 = require("../enums/vsrepo-error-type.enum");
|
|
6
|
+
const vs_sql_util_1 = require("./vs-sql.util");
|
|
7
|
+
class VSPlaceholdersParser {
|
|
8
|
+
/**
|
|
9
|
+
* Parses a raw SQL string written with VSRepository's own agnostic,
|
|
10
|
+
* positional placeholders — `?1`, `?2`, ... (1-based, Spring Data JPA style)
|
|
11
|
+
* — into a `VSSql` fragment, so it compiles through `adapter.getPlaceholder()`
|
|
12
|
+
* exactly like any other `VSSql`. Enabled via `vsPlaceholders: true` in the
|
|
13
|
+
* `VSRepository` constructor options.
|
|
14
|
+
*
|
|
15
|
+
* The same index may appear more than once (`?1 ... ?1`) to reuse the same
|
|
16
|
+
* argument — each *occurrence* becomes its own placeholder/value pair in the
|
|
17
|
+
* compiled output (duplicating the value in `args` rather than trying to
|
|
18
|
+
* reference a single bound parameter twice), since not every adapter
|
|
19
|
+
* supports referencing one bound parameter more than once.
|
|
20
|
+
*
|
|
21
|
+
* A `?N` inside a single-quoted string literal (e.g. `'keep ?1 literally'`)
|
|
22
|
+
* is *not* interpreted as a placeholder — it is passed through to the SQL
|
|
23
|
+
* untouched and consumes no `args` entry. Standard SQL escapes are
|
|
24
|
+
* respected: `''` inside a literal does not end it, so a literal like
|
|
25
|
+
* `'it''s ?1'` is fully skipped. There is no escape mechanism outside a
|
|
26
|
+
* literal — if a query needs literal `?` + digits text in an unquoted
|
|
27
|
+
* context, build that part with a `VSSql` fragment instead. Matching only
|
|
28
|
+
* triggers on `?` immediately followed by a digit, so operators like
|
|
29
|
+
* PostgreSQL's `?`, `?|` and `?&` are unaffected.
|
|
30
|
+
*
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
static parse(query, args = []) {
|
|
34
|
+
const placeholderPattern = /\?(\d+)/g;
|
|
35
|
+
// Blank out every single-quoted string literal (`''` escapes a quote,
|
|
36
|
+
// per standard SQL) so a `?N` written as literal text inside one is
|
|
37
|
+
// never mistaken for a placeholder. Whitespace is preserved and every
|
|
38
|
+
// non-whitespace char is replaced 1:1 by a space, so `match.index`
|
|
39
|
+
// still lines up with the original `query` when slicing the chunks.
|
|
40
|
+
const masked = query.replace(/'(?:''|[^'])*'/g, m => m.replace(/\S/g, " "));
|
|
41
|
+
const chunks = [];
|
|
42
|
+
const values = [];
|
|
43
|
+
let lastIndex = 0;
|
|
44
|
+
let match;
|
|
45
|
+
while ((match = placeholderPattern.exec(masked)) !== null) {
|
|
46
|
+
const position = Number(match[1]);
|
|
47
|
+
if (!Number.isInteger(position) || position < 1 || position > args.length) {
|
|
48
|
+
throw new VSRepoError_1.VSRepoError(`Invalid 'vsPlaceholders' reference '?${match[1]}' in query — expected a number between 1 and ${args.length} (the length of 'args').`, vsrepo_error_type_enum_1.VSRepoErrorType.VALIDATOR);
|
|
49
|
+
}
|
|
50
|
+
chunks.push(query.slice(lastIndex, match.index));
|
|
51
|
+
values.push(args[position - 1]);
|
|
52
|
+
lastIndex = match.index + match[0].length;
|
|
53
|
+
}
|
|
54
|
+
chunks.push(query.slice(lastIndex));
|
|
55
|
+
// `VSSql.sql` only ever reads `strings` by index (`strings[0]`, `strings[i + 1]`)
|
|
56
|
+
// and never touches `.raw`, so a plain string array built at runtime works
|
|
57
|
+
// the same as a real tagged-template `TemplateStringsArray` here.
|
|
58
|
+
return vs_sql_util_1.VSSql.sql(chunks, ...values);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.VSPlaceholdersParser = VSPlaceholdersParser;
|
|
62
|
+
//# sourceMappingURL=vs-placeholder-parser.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vs-placeholder-parser.util.js","sourceRoot":"","sources":["../../../src/internal/utils/vs-placeholder-parser.util.ts"],"names":[],"mappings":";;;AAAA,0DAAuD;AACvD,4EAAkE;AAClE,+CAAsC;AAEtC,MAAa,oBAAoB;IAC7B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,CAAC,KAAK,CAAC,KAAa,EAAE,OAA2B,EAAE;QACrD,MAAM,kBAAkB,GAAG,UAAU,CAAC;QAEtC,sEAAsE;QACtE,oEAAoE;QACpE,sEAAsE;QACtE,mEAAmE;QACnE,oEAAoE;QACpE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAE5E,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,KAA6B,CAAC;QAElC,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAElC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxE,MAAM,IAAI,yBAAW,CACjB,wCAAwC,KAAK,CAAC,CAAC,CAAC,gDAAgD,IAAI,CAAC,MAAM,0BAA0B,EACrI,wCAAe,CAAC,SAAS,CAC5B,CAAC;YACN,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;YAChC,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9C,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAEpC,kFAAkF;QAClF,2EAA2E;QAC3E,kEAAkE;QAClE,OAAO,mBAAK,CAAC,GAAG,CAAC,MAAyC,EAAE,GAAG,MAAM,CAAC,CAAC;IAC3E,CAAC;CACJ;AAhED,oDAgEC"}
|
|
@@ -8,7 +8,7 @@ import { VSRepoSelect } from "../../types/vsrepo/vsrepo-select.type";
|
|
|
8
8
|
import { VSRepoWhere } from "../../types/vsrepo/vsrepo-where.type";
|
|
9
9
|
/**
|
|
10
10
|
* Fluent builder for queries whose shape is only known at runtime (optional filters, user-controlled
|
|
11
|
-
* ordering and pagination, ...). Get one from `VSRepository
|
|
11
|
+
* ordering and pagination, ...). Get one from `VSRepository.createQueryBuilder()`.
|
|
12
12
|
*
|
|
13
13
|
* Chain the configuration methods (`select`, `relations`, `where`, `orderBy`, `limit`, `offset`,
|
|
14
14
|
* `distinctOn`, `see`) and run the query with a terminal method (`getResult`,
|
|
@@ -55,6 +55,10 @@ export declare class VSQueryBuilder<Entity, OrmTypes extends VSRepoOrmTypes = VS
|
|
|
55
55
|
private resolveWhere;
|
|
56
56
|
private trace;
|
|
57
57
|
private execute;
|
|
58
|
+
private setOptions;
|
|
59
|
+
private setWhereFilter;
|
|
60
|
+
private setDistinct;
|
|
61
|
+
private setSeeMode;
|
|
58
62
|
/**
|
|
59
63
|
* Sets the client or transaction the query runs on, replacing the one given to `createQueryBuilder()`.
|
|
60
64
|
*
|
|
@@ -47,7 +47,7 @@ const where_schema_1 = __importDefault(require("../validators/schemas/where.sche
|
|
|
47
47
|
const v = __importStar(require("valibot"));
|
|
48
48
|
/**
|
|
49
49
|
* Fluent builder for queries whose shape is only known at runtime (optional filters, user-controlled
|
|
50
|
-
* ordering and pagination, ...). Get one from `VSRepository
|
|
50
|
+
* ordering and pagination, ...). Get one from `VSRepository.createQueryBuilder()`.
|
|
51
51
|
*
|
|
52
52
|
* Chain the configuration methods (`select`, `relations`, `where`, `orderBy`, `limit`, `offset`,
|
|
53
53
|
* `distinctOn`, `see`) and run the query with a terminal method (`getResult`,
|
|
@@ -128,27 +128,15 @@ class VSQueryBuilder {
|
|
|
128
128
|
this.logger?.endPerformLog(start);
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
|
-
/**
|
|
132
|
-
* @internal
|
|
133
|
-
*/
|
|
134
131
|
setOptions(options) {
|
|
135
132
|
this.options = options;
|
|
136
133
|
}
|
|
137
|
-
/**
|
|
138
|
-
* @internal
|
|
139
|
-
*/
|
|
140
134
|
setWhereFilter(whereFilter) {
|
|
141
135
|
this.whereFilter = whereFilter;
|
|
142
136
|
}
|
|
143
|
-
/**
|
|
144
|
-
* @internal
|
|
145
|
-
*/
|
|
146
137
|
setDistinct(distinct) {
|
|
147
138
|
this.distinct = distinct;
|
|
148
139
|
}
|
|
149
|
-
/**
|
|
150
|
-
* @internal
|
|
151
|
-
*/
|
|
152
140
|
setSeeMode(seeMode) {
|
|
153
141
|
this.seeMode = seeMode;
|
|
154
142
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vs-query-builder.util.js","sourceRoot":"","sources":["../../../src/internal/utils/vs-query-builder.util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAuD;AAWvD,4EAAkE;AAElE,4FAAmE;AACnE,8FAAqE;AACrE,4FAAkE;AAClE,wFAA+D;AAC/D,sFAA6D;AAE7D,2CAA6B;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAa,cAAc;IAUX;IACS;IACA;IACA;IAZb,OAAO,GAA6C,EAAE,CAAC;IACvD,QAAQ,CAAmC;IAC3C,OAAO,GAAY,QAAQ,CAAC;IAC5B,WAAW,CAAuB;IAE1C;;OAEG;IACH,YACY,EAAoD,EAC3C,OAA8B,EAC9B,mBAAgD,EAChD,MAAiB;QAH1B,OAAE,GAAF,EAAE,CAAkD;QAC3C,YAAO,GAAP,OAAO,CAAuB;QAC9B,wBAAmB,GAAnB,mBAAmB,CAA6B;QAChD,WAAM,GAAN,MAAM,CAAW;IACnC,CAAC;IAEI,cAAc,CAAC,KAAiC,EAAE,YAAY,GAAG,SAAS;QAC9E,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAC/F,MAAM,OAAO,GAAG,GAAG,IAAI,KAAK,KAAK,EAAE,OAAO,IAAI,mBAAmB,EAAE,CAAC;QAEpE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,wCAAe,CAAC,aAAa,MAAM,OAAO,EAAE,CAAC,CAAC;QAE1F,MAAM,IAAI,yBAAW,CAAC,OAAO,EAAE,wCAAe,CAAC,aAAa,CAAC,CAAC;IAClE,CAAC;IAEO,QAAQ,CAAC,KAAc,EAAE,MAAuB,EAAE,YAAqB;QAC3E,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAEO,YAAY;QAChB,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,qGAAqG;IAC7F,KAAK,CAAC,OAAe,EAAE,GAAa;QACxC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED,iFAAiF;IACzE,KAAK,CAAC,OAAO,CAAI,SAAiB,EAAE,MAA+B,EAAE,GAAqB;QAC9F,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAExD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAC;QAE7E,IAAI,CAAC;YACD,OAAO,MAAM,GAAG,EAAE,CAAC;QACvB,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;
|
|
1
|
+
{"version":3,"file":"vs-query-builder.util.js","sourceRoot":"","sources":["../../../src/internal/utils/vs-query-builder.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { VSRawQueryBuilderCteQuery } from "../../types/vsrepo/vs-raw-query-builder-cte-query.type";
|
|
2
|
+
import { VSRawQueryBuilderTarget } from "../../types/vsrepo/vs-raw-query-builder-target.type";
|
|
3
|
+
import { VSRepoOrmTypes } from "../../types/vsrepo/vsrepo-orm-types.type";
|
|
4
|
+
import { VSSql } from "./vs-sql.util";
|
|
5
|
+
/**
|
|
6
|
+
* Fluent, SQL-agnostic builder for hand-written **`SELECT`** queries whose shape is only known
|
|
7
|
+
* at runtime, but whose SQL is too specific (window functions, CTEs referenced elsewhere,
|
|
8
|
+
* vendor-specific syntax, ...) to express through {@link VSQueryBuilder}'s `where`/`relations`
|
|
9
|
+
* model. Compiles down to a single {@link VSSql} fragment — get one from
|
|
10
|
+
* `VSRepository.createRawQueryBuilder()`.
|
|
11
|
+
*
|
|
12
|
+
* Nothing reaches the database until {@link VSRawQueryBuilder.execute} is called. The builder is
|
|
13
|
+
* **mutable**: every chained call changes the same instance and returns it. Use
|
|
14
|
+
* {@link VSRawQueryBuilder.clone} to derive variations from a common base.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { VSSql } from "vsrepo";
|
|
19
|
+
*
|
|
20
|
+
* const rows = await orderRepository
|
|
21
|
+
* .createRawQueryBuilder()
|
|
22
|
+
* .select("o.id", "o.total", "u.name")
|
|
23
|
+
* .from("order", "o")
|
|
24
|
+
* .innerJoin("user", "u", "u.id = o.user_id")
|
|
25
|
+
* .where(VSSql.sql`u.active = ${true}`)
|
|
26
|
+
* .andWhere(VSSql.sql`o.total > ${100}`)
|
|
27
|
+
* .andWhere("o.deleted_at is null")
|
|
28
|
+
* .groupBy("o.id", "u.name")
|
|
29
|
+
* .having(VSSql.sql`count(*) > ${1}`)
|
|
30
|
+
* .orderBy("o.total", "desc")
|
|
31
|
+
* .limit(20)
|
|
32
|
+
* .offset(0)
|
|
33
|
+
* .execute<{ id: string; total: number; name: string }[]>();
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @publicApi
|
|
37
|
+
*/
|
|
38
|
+
export declare class VSRawQueryBuilder<OrmTypes extends VSRepoOrmTypes = VSRepoOrmTypes> {
|
|
39
|
+
private db;
|
|
40
|
+
private readonly adapter;
|
|
41
|
+
private readonly logger?;
|
|
42
|
+
private cteClauses;
|
|
43
|
+
private recursiveWith;
|
|
44
|
+
private selectColumns;
|
|
45
|
+
private fromTarget?;
|
|
46
|
+
private joinClauses;
|
|
47
|
+
private whereConditions;
|
|
48
|
+
private groupByColumns;
|
|
49
|
+
private havingConditions;
|
|
50
|
+
private orderByClauses;
|
|
51
|
+
private limitValue?;
|
|
52
|
+
private offsetValue?;
|
|
53
|
+
private trace;
|
|
54
|
+
private static validateNonEmptyString;
|
|
55
|
+
/** Converts a raw string into a `VSSql.raw` fragment (validating it isn't empty/blank first,
|
|
56
|
+
* since that would silently compile into broken SQL — e.g. a trailing comma or an empty
|
|
57
|
+
* `WHERE ()`) or passes an already-built `VSSql` fragment through untouched.
|
|
58
|
+
*
|
|
59
|
+
* @param context Name of the calling method/argument, used in the `VSRepoError` message. */
|
|
60
|
+
private static toFragment;
|
|
61
|
+
private newSubBuilder;
|
|
62
|
+
private resolveSubquery;
|
|
63
|
+
private resolveTarget;
|
|
64
|
+
private resolveCteQuery;
|
|
65
|
+
private static combine;
|
|
66
|
+
private static validateNonNegativeInt;
|
|
67
|
+
/**
|
|
68
|
+
* Sets the columns to select, replacing any previous `select`. Each column is either a raw,
|
|
69
|
+
* trusted string (an identifier, passed through as-is — like `VSSql.raw`, never pass
|
|
70
|
+
* user-controlled input) or a `VSSql` fragment for anything parameterized or aliased
|
|
71
|
+
* (**VSSql.sql\`count(*) AS total\`**).
|
|
72
|
+
*
|
|
73
|
+
* @param columns One or more columns/expressions. `select()` with no arguments is equivalent
|
|
74
|
+
* to `SELECT *`.
|
|
75
|
+
*/
|
|
76
|
+
select(...columns: (string | VSSql)[]): this;
|
|
77
|
+
/**
|
|
78
|
+
* Sets the `FROM` target, replacing any previous one.
|
|
79
|
+
*
|
|
80
|
+
* @param target A raw table name, a `VSSql` fragment, or another `VSRawQueryBuilder`
|
|
81
|
+
* (compiled inline as a subquery, wrapped in parentheses).
|
|
82
|
+
* @param alias Optional alias, appended as `AS alias` (raw, trusted text).
|
|
83
|
+
*/
|
|
84
|
+
from(target: VSRawQueryBuilderTarget, alias?: string): this;
|
|
85
|
+
private addCte;
|
|
86
|
+
/**
|
|
87
|
+
* Adds a `WITH` (common table expression). Each call adds one CTE; call it
|
|
88
|
+
* again to add more — they're all listed under a single `WITH`, in the order added.
|
|
89
|
+
*
|
|
90
|
+
* @param name Name the CTE is referenced by elsewhere in the query (raw, trusted text).
|
|
91
|
+
* @param query The CTE's body: a `VSRawQueryBuilder`, a subquery function, or a `VSSql` fragment — needed for
|
|
92
|
+
* anything a single `SELECT` builder can't express (e.g. a `UNION`).
|
|
93
|
+
* @param columns Optional explicit column list, rendered as `name(col1, col2) AS (...)`.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const rows = await orderRepository
|
|
98
|
+
* .createRawQueryBuilder()
|
|
99
|
+
* .with("big_spenders", qb => qb.select("user_id").from("order").groupBy("user_id").having("sum(total) > 1000"))
|
|
100
|
+
* .select("u.*")
|
|
101
|
+
* .from("user", "u")
|
|
102
|
+
* .innerJoin("big_spenders", "bs", "bs.user_id = u.id")
|
|
103
|
+
* .execute();
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
with(name: string, query: VSRawQueryBuilderCteQuery, columns?: string[]): this;
|
|
107
|
+
/**
|
|
108
|
+
* Same as {@link VSRawQueryBuilder.with}, but marks the whole `WITH` clause as `RECURSIVE`
|
|
109
|
+
* (required by the SQL standard for a CTE that references itself in its own body — usually
|
|
110
|
+
* a `VSSql` fragment with a `... UNION ALL SELECT ... FROM name ...` shape). One recursive
|
|
111
|
+
* CTE is enough to make the whole clause `WITH RECURSIVE`, even when combined with other,
|
|
112
|
+
* non-recursive ones added via {@link VSRawQueryBuilder.with}.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* const orgChart = await employeeRepository
|
|
117
|
+
* .createRawQueryBuilder()
|
|
118
|
+
* .withRecursive(
|
|
119
|
+
* "subordinates",
|
|
120
|
+
* VSSql.sql`
|
|
121
|
+
* SELECT id, manager_id, 1 AS depth FROM employee WHERE id = ${managerId}
|
|
122
|
+
* UNION ALL
|
|
123
|
+
* SELECT e.id, e.manager_id, s.depth + 1 FROM employee e
|
|
124
|
+
* INNER JOIN subordinates s ON e.manager_id = s.id
|
|
125
|
+
* `,
|
|
126
|
+
* ["id", "manager_id", "depth"],
|
|
127
|
+
* )
|
|
128
|
+
* .select("*")
|
|
129
|
+
* .from("subordinates")
|
|
130
|
+
* .orderBy("depth")
|
|
131
|
+
* .execute();
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
withRecursive(name: string, query: VSRawQueryBuilderCteQuery, columns?: string[]): this;
|
|
135
|
+
private addJoin;
|
|
136
|
+
/**
|
|
137
|
+
* Adds an `INNER JOIN`.
|
|
138
|
+
*/
|
|
139
|
+
innerJoin(target: VSRawQueryBuilderTarget, alias: string, on: string | VSSql): this;
|
|
140
|
+
/**
|
|
141
|
+
* Adds a `LEFT JOIN`.
|
|
142
|
+
*/
|
|
143
|
+
leftJoin(target: VSRawQueryBuilderTarget, alias: string, on: string | VSSql): this;
|
|
144
|
+
/**
|
|
145
|
+
* Adds a `RIGHT JOIN`.
|
|
146
|
+
*/
|
|
147
|
+
rightJoin(target: VSRawQueryBuilderTarget, alias: string, on: string | VSSql): this;
|
|
148
|
+
/**
|
|
149
|
+
* Adds a `FULL JOIN`.
|
|
150
|
+
*/
|
|
151
|
+
fullJoin(target: VSRawQueryBuilderTarget, alias: string, on: string | VSSql): this;
|
|
152
|
+
/**
|
|
153
|
+
* Adds a `WHERE` condition. The first call sets the filter; every later call (`where` or
|
|
154
|
+
* {@link VSRawQueryBuilder.andWhere}) is `AND`-combined with it, each wrapped in parentheses.
|
|
155
|
+
* Use {@link VSRawQueryBuilder.orWhere} to `OR`-combine instead.
|
|
156
|
+
*/
|
|
157
|
+
where(condition: string | VSSql): this;
|
|
158
|
+
/** Alias for {@link VSRawQueryBuilder.where} — `AND`-combines `condition` with the existing filter. */
|
|
159
|
+
andWhere(condition: string | VSSql): this;
|
|
160
|
+
/** `OR`-combines `condition` with the existing `WHERE` filter. */
|
|
161
|
+
orWhere(condition: string | VSSql): this;
|
|
162
|
+
/**
|
|
163
|
+
* Adds columns to `GROUP BY`. Each call appends; call {@link VSRawQueryBuilder.clone} from a
|
|
164
|
+
* common base if you need independent variations.
|
|
165
|
+
*/
|
|
166
|
+
groupBy(...columns: (string | VSSql)[]): this;
|
|
167
|
+
/**
|
|
168
|
+
* Adds a `HAVING` condition, `AND`-combined with any previous one (same semantics as
|
|
169
|
+
* {@link VSRawQueryBuilder.where}). Use {@link VSRawQueryBuilder.orHaving} to `OR`-combine.
|
|
170
|
+
*/
|
|
171
|
+
having(condition: string | VSSql): this;
|
|
172
|
+
/** Alias for {@link VSRawQueryBuilder.having} — `AND`-combines `condition` with the existing `HAVING` filter. */
|
|
173
|
+
andHaving(condition: string | VSSql): this;
|
|
174
|
+
/** `OR`-combines `condition` with the existing `HAVING` filter. */
|
|
175
|
+
orHaving(condition: string | VSSql): this;
|
|
176
|
+
/**
|
|
177
|
+
* Adds a column to `ORDER BY`. Each call appends, in order, so call it once per column for a
|
|
178
|
+
* multi-column ordering.
|
|
179
|
+
*/
|
|
180
|
+
orderBy(column: string | VSSql, direction?: "asc" | "desc" | "ASC" | "DESC"): this;
|
|
181
|
+
/**
|
|
182
|
+
* Sets the maximum number of rows to return, replacing any previous `limit`.
|
|
183
|
+
*/
|
|
184
|
+
limit(limit: number): this;
|
|
185
|
+
/**
|
|
186
|
+
* Sets how many rows to skip, replacing any previous `offset`.
|
|
187
|
+
*/
|
|
188
|
+
offset(offset: number): this;
|
|
189
|
+
/**
|
|
190
|
+
* Sets the client or transaction the query runs on, replacing the one given to
|
|
191
|
+
* `createRawQueryBuilder()`.
|
|
192
|
+
*
|
|
193
|
+
* It's lazy — it only matters when {@link VSRawQueryBuilder.execute} runs — so a builder can
|
|
194
|
+
* be created before a transaction and pointed at it from inside, or a
|
|
195
|
+
* {@link VSRawQueryBuilder.clone} can be pointed at another client without touching the
|
|
196
|
+
* original builder.
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* ```typescript
|
|
200
|
+
* const qb = orderRepository.createRawQueryBuilder().select("*").from("order");
|
|
201
|
+
*
|
|
202
|
+
* await orderRepository.transaction(async tx => {
|
|
203
|
+
* qb.setDb(tx);
|
|
204
|
+
* return qb.execute();
|
|
205
|
+
* });
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
|
+
setDb(db: OrmTypes["dbClient"] | OrmTypes["dbTransaction"]): void;
|
|
209
|
+
/**
|
|
210
|
+
* Returns an independent builder with the same clauses and `db`. Changes made to either one
|
|
211
|
+
* afterwards don't affect the other (the underlying `VSSql`/`VSRawQueryBuilder` values
|
|
212
|
+
* themselves are immutable, so a shallow copy of every clause array is enough).
|
|
213
|
+
*/
|
|
214
|
+
clone(): VSRawQueryBuilder<OrmTypes>;
|
|
215
|
+
private compileCteClause;
|
|
216
|
+
/**
|
|
217
|
+
* Compiles every configured clause into a single {@link VSSql} fragment, in the order
|
|
218
|
+
* `WITH` (CTEs) -> `SELECT` -> `FROM` -> `JOIN`s -> `WHERE` -> `GROUP BY` -> `HAVING` -> `ORDER BY`
|
|
219
|
+
* -> `LIMIT` -> `OFFSET`. Nothing runs by itself — splice the result into another `VSSql`
|
|
220
|
+
* fragment as a subquery, or pass it to `VSRepository.query()`.
|
|
221
|
+
*/
|
|
222
|
+
toVSSql(): VSSql;
|
|
223
|
+
private compileForAdapter;
|
|
224
|
+
/**
|
|
225
|
+
* Compiles the builder down to a plain SQL string, rendered with the adapter's own
|
|
226
|
+
* placeholder syntax (e.g. `$1`, `$2`, ...). Values themselves are **not** interpolated into
|
|
227
|
+
* the string — use {@link VSRawQueryBuilder.toVSSql} (`.compile()`) or
|
|
228
|
+
* {@link VSRawQueryBuilder.execute} if you also need the parameter values/to run the query.
|
|
229
|
+
*/
|
|
230
|
+
toSql(): string;
|
|
231
|
+
/**
|
|
232
|
+
* Compiles and runs the query against the underlying database, through the same adapter as
|
|
233
|
+
* every other `VSRepository` method.
|
|
234
|
+
*
|
|
235
|
+
* @template T Shape of the returned rows. Defaults to `any`.
|
|
236
|
+
*/
|
|
237
|
+
execute<T = any>(): Promise<T>;
|
|
238
|
+
}
|