joist-orm 1.276.2 → 1.277.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/build/QueryVisitor.d.ts
CHANGED
|
@@ -3,13 +3,15 @@ import { ColumnCondition, ParsedExpressionCondition, ParsedExpressionFilter, Par
|
|
|
3
3
|
interface Visitor {
|
|
4
4
|
visitExp?(c: ParsedExpressionFilter): ParsedExpressionFilter | void;
|
|
5
5
|
visitRaw?(c: RawCondition): RawCondition | ParsedExpressionFilter | void;
|
|
6
|
-
visitCond(c: ColumnCondition): ColumnCondition | ParsedExpressionFilter | RawCondition | void;
|
|
6
|
+
visitCond(c: ColumnCondition): ColumnCondition | ParsedExpressionFilter | RawCondition | null | void;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
9
|
* Visits the nested conditions within `query`.
|
|
10
10
|
*
|
|
11
11
|
* If the visitors return a new condition or expression, the returned expression
|
|
12
12
|
* will replace the original one at that location in the expression.
|
|
13
|
+
*
|
|
14
|
+
* If the visitor returns null, the condition or expression will be removed from the tree.
|
|
13
15
|
*/
|
|
14
16
|
export declare function visitConditions(query: ParsedFindQuery, visitor: Visitor): void;
|
|
15
17
|
export declare function visitFilter(pc: ParsedExpressionCondition, visitor: Visitor): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryVisitor.d.ts","sourceRoot":"","sources":["../src/QueryVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,YAAY,EACb,MAAM,eAAe,CAAC;AAGvB,yEAAyE;AACzE,UAAU,OAAO;IACf,QAAQ,CAAC,CAAC,CAAC,EAAE,sBAAsB,GAAG,sBAAsB,GAAG,IAAI,CAAC;IACpE,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,sBAAsB,GAAG,IAAI,CAAC;IACzE,SAAS,CAAC,CAAC,EAAE,eAAe,GAAG,eAAe,GAAG,sBAAsB,GAAG,YAAY,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"QueryVisitor.d.ts","sourceRoot":"","sources":["../src/QueryVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,YAAY,EACb,MAAM,eAAe,CAAC;AAGvB,yEAAyE;AACzE,UAAU,OAAO;IACf,QAAQ,CAAC,CAAC,CAAC,EAAE,sBAAsB,GAAG,sBAAsB,GAAG,IAAI,CAAC;IACpE,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,sBAAsB,GAAG,IAAI,CAAC;IACzE,SAAS,CAAC,CAAC,EAAE,eAAe,GAAG,eAAe,GAAG,sBAAsB,GAAG,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;CACtG;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAW9E;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,yBAAyB,EAAE,OAAO,EAAE,OAAO,QA8C1E"}
|
package/build/QueryVisitor.js
CHANGED
|
@@ -8,6 +8,8 @@ const utils_1 = require("./utils");
|
|
|
8
8
|
*
|
|
9
9
|
* If the visitors return a new condition or expression, the returned expression
|
|
10
10
|
* will replace the original one at that location in the expression.
|
|
11
|
+
*
|
|
12
|
+
* If the visitor returns null, the condition or expression will be removed from the tree.
|
|
11
13
|
*/
|
|
12
14
|
function visitConditions(query, visitor) {
|
|
13
15
|
const todo = [query];
|
|
@@ -24,22 +26,34 @@ function visitConditions(query, visitor) {
|
|
|
24
26
|
}
|
|
25
27
|
function visitFilter(pc, visitor) {
|
|
26
28
|
if (pc.kind === "exp") {
|
|
29
|
+
const toRemove = new Set();
|
|
27
30
|
pc.conditions.forEach((c, i) => {
|
|
28
31
|
if (c.kind === "column") {
|
|
29
32
|
const result = visitor.visitCond(c);
|
|
30
|
-
if (result) {
|
|
33
|
+
if (result === null) {
|
|
34
|
+
toRemove.add(i);
|
|
35
|
+
}
|
|
36
|
+
else if (result) {
|
|
31
37
|
pc.conditions[i] = result;
|
|
32
38
|
}
|
|
33
39
|
}
|
|
34
40
|
else if (c.kind === "exp") {
|
|
35
41
|
const result = visitor.visitExp?.(c);
|
|
36
|
-
if (result)
|
|
42
|
+
if (result === null) {
|
|
43
|
+
toRemove.add(i);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
else if (result) {
|
|
37
47
|
pc.conditions[i] = result;
|
|
48
|
+
}
|
|
38
49
|
visitFilter(result ?? c, visitor);
|
|
39
50
|
}
|
|
40
51
|
else if (c.kind === "raw") {
|
|
41
52
|
const result = visitor.visitRaw?.(c);
|
|
42
|
-
if (result) {
|
|
53
|
+
if (result === null) {
|
|
54
|
+
toRemove.add(i);
|
|
55
|
+
}
|
|
56
|
+
else if (result) {
|
|
43
57
|
pc.conditions[i] = result;
|
|
44
58
|
}
|
|
45
59
|
}
|
|
@@ -47,16 +61,19 @@ function visitFilter(pc, visitor) {
|
|
|
47
61
|
(0, utils_1.assertNever)(c);
|
|
48
62
|
}
|
|
49
63
|
});
|
|
64
|
+
// do this after visiting the children, so we can do it in one pass and don't mess up the indices
|
|
65
|
+
if (toRemove.size > 0)
|
|
66
|
+
pc.conditions = pc.conditions.filter((_, i) => !toRemove.has(i));
|
|
50
67
|
}
|
|
51
68
|
else if (pc.kind === "column") {
|
|
52
69
|
const result = visitor.visitCond(pc);
|
|
53
|
-
if (result) {
|
|
70
|
+
if (result || result === null) {
|
|
54
71
|
throw new Error("ParsedExpressionCondition overload not support mutating the condition");
|
|
55
72
|
}
|
|
56
73
|
}
|
|
57
74
|
else if (pc.kind === "raw") {
|
|
58
75
|
const result = visitor.visitRaw?.(pc);
|
|
59
|
-
if (result) {
|
|
76
|
+
if (result || result === null) {
|
|
60
77
|
throw new Error("ParsedExpressionCondition overload not support mutating the condition");
|
|
61
78
|
}
|
|
62
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryVisitor.js","sourceRoot":"","sources":["../src/QueryVisitor.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"QueryVisitor.js","sourceRoot":"","sources":["../src/QueryVisitor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "joist-orm",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.277.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@types/pg": "^8.15.5",
|
|
25
25
|
"ansis": "^3.17.0",
|
|
26
26
|
"dataloader": "^2.2.3",
|
|
27
|
-
"joist-utils": "1.
|
|
27
|
+
"joist-utils": "1.277.0",
|
|
28
28
|
"knex": "^3.1.0",
|
|
29
29
|
"object-hash": "^3.0.0",
|
|
30
30
|
"pg": "^8.16.3",
|