@effect-app/infra 2.30.2 → 2.30.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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 2.30.3
4
+
5
+ ### Patch Changes
6
+
7
+ - d846db3: fix query proper
8
+
3
9
  ## 2.30.2
4
10
 
5
11
  ### Patch Changes
@@ -8,6 +8,7 @@ exports.logQuery = logQuery;
8
8
  var _effectApp = require("effect-app");
9
9
  var _utils = require("effect-app/utils");
10
10
  var _logger = require("../../logger.cjs");
11
+ /* eslint-disable @typescript-eslint/no-explicit-any */
11
12
  /* eslint-disable @typescript-eslint/no-unsafe-return */
12
13
 
13
14
  function logQuery(q) {
@@ -20,7 +21,7 @@ function logQuery(q) {
20
21
  }));
21
22
  }
22
23
  function buildWhereCosmosQuery3(idKey, filter, name, importedMarkerId, defaultValues, select, order, skip, limit) {
23
- const statement = (x, i) => {
24
+ const statement = (x, i, values) => {
24
25
  if (x.path === idKey) {
25
26
  x = {
26
27
  ...x,
@@ -31,6 +32,7 @@ function buildWhereCosmosQuery3(idKey, filter, name, importedMarkerId, defaultVa
31
32
  // would have to map id, but shouldnt allow id in defaultValues anyway..
32
33
  k = x.path in defaultValues ? `(${k} ?? ${JSON.stringify(defaultValues[x.path])})` : k;
33
34
  const v = "@v" + i;
35
+ const realValue = values[i];
34
36
  switch (x.op) {
35
37
  case "in":
36
38
  return `ARRAY_CONTAINS(${v}, ${k})`;
@@ -41,13 +43,13 @@ function buildWhereCosmosQuery3(idKey, filter, name, importedMarkerId, defaultVa
41
43
  case "notIncludes":
42
44
  return `(NOT ARRAY_CONTAINS(${k}, ${v}))`;
43
45
  case "includes-any":
44
- return `ARRAY_CONTAINS_ANY(${k}, ${v})`;
46
+ return `ARRAY_CONTAINS_ANY(${k}, ${realValue.map((_, i) => `${v}__${i}`).join(", ")})`;
45
47
  case "notIncludes-any":
46
- return `(NOT ARRAY_CONTAINS_ANY(${k}, ${v}))`;
48
+ return `(NOT ARRAY_CONTAINS_ANY(${k}, ${realValue.map((_, i) => `${v}__${i}`).join(", ")}))`;
47
49
  case "includes-all":
48
- return `ARRAY_CONTAINS_ALL(${k}, ${v})`;
50
+ return `ARRAY_CONTAINS_ALL(${k}, ${realValue.map((_, i) => `${v}__${i}`).join(", ")})`;
49
51
  case "notIncludes-all":
50
- return `(NOT ARRAY_CONTAINS_ALL(${k}, ${v}))`;
52
+ return `(NOT ARRAY_CONTAINS_ALL(${k}, ${realValue.map((_, i) => `${v}__${i}`).join(", ")}))`;
51
53
  case "contains":
52
54
  return `CONTAINS(${k}, ${v}, true)`;
53
55
  case "startsWith":
@@ -82,7 +84,7 @@ function buildWhereCosmosQuery3(idKey, filter, name, importedMarkerId, defaultVa
82
84
  }
83
85
  };
84
86
  let i = 0;
85
- const print = state => {
87
+ const print = (state, values) => {
86
88
  let s = "";
87
89
  let l = 0;
88
90
  const printN = n => {
@@ -91,32 +93,32 @@ function buildWhereCosmosQuery3(idKey, filter, name, importedMarkerId, defaultVa
91
93
  for (const e of state) {
92
94
  switch (e.t) {
93
95
  case "where":
94
- s += statement(e, i++);
96
+ s += statement(e, i++, values);
95
97
  break;
96
98
  case "or":
97
- s += ` OR ${statement(e, i++)}`;
99
+ s += ` OR ${statement(e, i++, values)}`;
98
100
  break;
99
101
  case "and":
100
- s += ` AND ${statement(e, i++)}`;
102
+ s += ` AND ${statement(e, i++, values)}`;
101
103
  break;
102
104
  case "or-scope":
103
105
  {
104
106
  ++l;
105
- s += ` OR (\n${printN(l + 1)}${print(e.result)}\n${printN(l)})`;
107
+ s += ` OR (\n${printN(l + 1)}${print(e.result, values)}\n${printN(l)})`;
106
108
  --l;
107
109
  break;
108
110
  }
109
111
  case "and-scope":
110
112
  {
111
113
  ++l;
112
- s += ` AND (\n${printN(l + 1)}${print(e.result)}\n${printN(l)})`;
114
+ s += ` AND (\n${printN(l + 1)}${print(e.result, values)}\n${printN(l)})`;
113
115
  --l;
114
116
  break;
115
117
  }
116
118
  case "where-scope":
117
119
  {
118
120
  // ;++l
119
- s += `(\n${printN(l + 1)}${print(e.result)}\n)`;
121
+ s += `(\n${printN(l + 1)}${print(e.result, values)}\n)`;
120
122
  // ;--l
121
123
  break;
122
124
  }
@@ -148,16 +150,21 @@ function buildWhereCosmosQuery3(idKey, filter, name, importedMarkerId, defaultVa
148
150
 
149
151
  ${(0, _effectApp.pipe)(values.filter(_ => _.path.includes(".-1.")).map(_ => _.path.split(".-1.")[0]).map(_ => `JOIN ${_} IN f.${_}`), _effectApp.Array.dedupeWith(_effectApp.Equivalence.string)).join("\n")}
150
152
 
151
- WHERE f.id != @id ${filter.length ? `AND (${print(filter)})` : ""}
153
+ WHERE f.id != @id ${filter.length ? `AND (${print(filter, values.map(_ => _.value))})` : ""}
152
154
  ${order ? `ORDER BY ${order.map(_ => `f.${_.key} ${_.direction}`).join(", ")}` : ""}
153
155
  ${skip !== undefined || limit !== undefined ? `OFFSET ${skip ?? 0} LIMIT ${limit ?? 999999}` : ""}`,
154
156
  parameters: [{
155
157
  name: "@id",
156
158
  value: importedMarkerId
157
- }, ...values.map((x, i) => ({
159
+ }, ...values.flatMap((x, i) => [{
158
160
  name: `@v${i}`,
159
161
  value: x.value
160
- }))]
162
+ }]
163
+ // TODO: only for arrays that are used with _ANY or _ALL
164
+ .concat(_effectApp.Array.isArray(x.value) ? x.value.map((_, i2) => ({
165
+ name: `@v${i}__${i2}`,
166
+ value: _
167
+ })) : []))]
161
168
  };
162
169
  }
163
170
  //# sourceMappingURL=query.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.cjs","names":["_effectApp","require","_utils","_logger","logQuery","q","InfraLogger","logDebug","pipe","Effect","annotateLogs","query","parameters","JSON","stringify","reduce","acc","v","name","value","undefined","buildWhereCosmosQuery3","idKey","filter","importedMarkerId","defaultValues","select","order","skip","limit","statement","x","i","path","k","includes","split","op","assertUnreachable","print","state","s","l","printN","n","Array","range","map","join","e","t","result","getValues","flatMap","_","values","dedupeWith","Equivalence","string","length","key","direction"],"sources":["../../../src/Store/Cosmos/query.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"query.cjs","names":["_effectApp","require","_utils","_logger","logQuery","q","InfraLogger","logDebug","pipe","Effect","annotateLogs","query","parameters","JSON","stringify","reduce","acc","v","name","value","undefined","buildWhereCosmosQuery3","idKey","filter","importedMarkerId","defaultValues","select","order","skip","limit","statement","x","i","values","path","k","includes","split","realValue","op","map","_","join","assertUnreachable","print","state","s","l","printN","n","Array","range","e","t","result","getValues","flatMap","dedupeWith","Equivalence","string","length","key","direction","concat","isArray","i2"],"sources":["../../../src/Store/Cosmos/query.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,7 @@ export declare function buildWhereCosmosQuery3(idKey: PropertyKey, filter: reado
16
16
  query: string;
17
17
  parameters: {
18
18
  name: string;
19
- value: string;
19
+ value: any;
20
20
  }[];
21
21
  };
22
22
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/Store/Cosmos/query.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,MAAM,EAAqB,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAGvD,OAAO,KAAK,EAAW,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEpD,wBAAgB,QAAQ,CAAC,CAAC,EAAE;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,eAAe,GAAG,SAAS,eAAe,EAAE,CAAA;KACpD,EAAE,CAAA;CACJ,qCAcA;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,MAAM,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,EACtC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,CAAC,EACzE,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EA6Kf"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/Store/Cosmos/query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,MAAM,EAAqB,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAGvD,OAAO,KAAK,EAAW,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEpD,wBAAgB,QAAQ,CAAC,CAAC,EAAE;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,eAAe,GAAG,SAAS,eAAe,EAAE,CAAA;KACpD,EAAE,CAAA;CACJ,qCAcA;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,MAAM,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,EACtC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,CAAC,EACzE,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;eA4Kc,GAAG;;EAOhC"}
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1
2
  /* eslint-disable @typescript-eslint/no-unsafe-return */
2
3
  import { Array, Effect, Equivalence, pipe } from "effect-app";
3
4
  import { assertUnreachable } from "effect-app/utils";
@@ -14,7 +15,7 @@ export function logQuery(q) {
14
15
  }));
15
16
  }
16
17
  export function buildWhereCosmosQuery3(idKey, filter, name, importedMarkerId, defaultValues, select, order, skip, limit) {
17
- const statement = (x, i) => {
18
+ const statement = (x, i, values) => {
18
19
  if (x.path === idKey) {
19
20
  x = { ...x, path: "id" };
20
21
  }
@@ -24,6 +25,7 @@ export function buildWhereCosmosQuery3(idKey, filter, name, importedMarkerId, de
24
25
  // would have to map id, but shouldnt allow id in defaultValues anyway..
25
26
  k = x.path in defaultValues ? `(${k} ?? ${JSON.stringify(defaultValues[x.path])})` : k;
26
27
  const v = "@v" + i;
28
+ const realValue = values[i];
27
29
  switch (x.op) {
28
30
  case "in":
29
31
  return `ARRAY_CONTAINS(${v}, ${k})`;
@@ -34,13 +36,13 @@ export function buildWhereCosmosQuery3(idKey, filter, name, importedMarkerId, de
34
36
  case "notIncludes":
35
37
  return `(NOT ARRAY_CONTAINS(${k}, ${v}))`;
36
38
  case "includes-any":
37
- return `ARRAY_CONTAINS_ANY(${k}, ${v})`;
39
+ return `ARRAY_CONTAINS_ANY(${k}, ${realValue.map((_, i) => `${v}__${i}`).join(", ")})`;
38
40
  case "notIncludes-any":
39
- return `(NOT ARRAY_CONTAINS_ANY(${k}, ${v}))`;
41
+ return `(NOT ARRAY_CONTAINS_ANY(${k}, ${realValue.map((_, i) => `${v}__${i}`).join(", ")}))`;
40
42
  case "includes-all":
41
- return `ARRAY_CONTAINS_ALL(${k}, ${v})`;
43
+ return `ARRAY_CONTAINS_ALL(${k}, ${realValue.map((_, i) => `${v}__${i}`).join(", ")})`;
42
44
  case "notIncludes-all":
43
- return `(NOT ARRAY_CONTAINS_ALL(${k}, ${v}))`;
45
+ return `(NOT ARRAY_CONTAINS_ALL(${k}, ${realValue.map((_, i) => `${v}__${i}`).join(", ")}))`;
44
46
  case "contains":
45
47
  return `CONTAINS(${k}, ${v}, true)`;
46
48
  case "startsWith":
@@ -78,7 +80,7 @@ export function buildWhereCosmosQuery3(idKey, filter, name, importedMarkerId, de
78
80
  }
79
81
  };
80
82
  let i = 0;
81
- const print = (state) => {
83
+ const print = (state, values) => {
82
84
  let s = "";
83
85
  let l = 0;
84
86
  const printN = (n) => {
@@ -87,29 +89,29 @@ export function buildWhereCosmosQuery3(idKey, filter, name, importedMarkerId, de
87
89
  for (const e of state) {
88
90
  switch (e.t) {
89
91
  case "where":
90
- s += statement(e, i++);
92
+ s += statement(e, i++, values);
91
93
  break;
92
94
  case "or":
93
- s += ` OR ${statement(e, i++)}`;
95
+ s += ` OR ${statement(e, i++, values)}`;
94
96
  break;
95
97
  case "and":
96
- s += ` AND ${statement(e, i++)}`;
98
+ s += ` AND ${statement(e, i++, values)}`;
97
99
  break;
98
100
  case "or-scope": {
99
101
  ++l;
100
- s += ` OR (\n${printN(l + 1)}${print(e.result)}\n${printN(l)})`;
102
+ s += ` OR (\n${printN(l + 1)}${print(e.result, values)}\n${printN(l)})`;
101
103
  --l;
102
104
  break;
103
105
  }
104
106
  case "and-scope": {
105
107
  ++l;
106
- s += ` AND (\n${printN(l + 1)}${print(e.result)}\n${printN(l)})`;
108
+ s += ` AND (\n${printN(l + 1)}${print(e.result, values)}\n${printN(l)})`;
107
109
  --l;
108
110
  break;
109
111
  }
110
112
  case "where-scope": {
111
113
  // ;++l
112
- s += `(\n${printN(l + 1)}${print(e.result)}\n)`;
114
+ s += `(\n${printN(l + 1)}${print(e.result, values)}\n)`;
113
115
  // ;--l
114
116
  break;
115
117
  }
@@ -150,17 +152,19 @@ export function buildWhereCosmosQuery3(idKey, filter, name, importedMarkerId, de
150
152
  .map((_) => `JOIN ${_} IN f.${_}`), Array.dedupeWith(Equivalence.string))
151
153
  .join("\n")}
152
154
 
153
- WHERE f.id != @id ${filter.length ? `AND (${print(filter)})` : ""}
155
+ WHERE f.id != @id ${filter.length ? `AND (${print(filter, values.map((_) => _.value))})` : ""}
154
156
  ${order ? `ORDER BY ${order.map((_) => `f.${_.key} ${_.direction}`).join(", ")}` : ""}
155
157
  ${skip !== undefined || limit !== undefined ? `OFFSET ${skip ?? 0} LIMIT ${limit ?? 999999}` : ""}`,
156
158
  parameters: [
157
159
  { name: "@id", value: importedMarkerId },
158
160
  ...values
159
- .map((x, i) => ({
160
- name: `@v${i}`,
161
- value: x.value
162
- }))
161
+ .flatMap((x, i) => [{
162
+ name: `@v${i}`,
163
+ value: x.value
164
+ }]
165
+ // TODO: only for arrays that are used with _ANY or _ALL
166
+ .concat(Array.isArray(x.value) ? x.value.map((_, i2) => ({ name: `@v${i}__${i2}`, value: _ })) : []))
163
167
  ]
164
168
  };
165
169
  }
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvU3RvcmUvQ29zbW9zL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdEQUF3RDtBQUN4RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRTdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUk3QyxNQUFNLFVBQVUsUUFBUSxDQUFDLENBTXhCO0lBQ0MsT0FBTyxXQUFXO1NBQ2YsUUFBUSxDQUFDLGNBQWMsQ0FBQztTQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7UUFDZCxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FDeEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDN0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFBO1lBQ3JCLE9BQU8sR0FBRyxDQUFBO1FBQ1osQ0FBQyxFQUFFLEVBQWtFLENBQUMsRUFDdEUsU0FBUyxFQUNULENBQUMsQ0FDRjtLQUNGLENBQUMsQ0FBQyxDQUFBO0FBQ1AsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsS0FBa0IsRUFDbEIsTUFBK0IsRUFDL0IsSUFBWSxFQUNaLGdCQUF3QixFQUN4QixhQUFzQyxFQUN0QyxNQUFzQyxFQUN0QyxLQUF5RSxFQUN6RSxJQUFhLEVBQ2IsS0FBYztJQUVkLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBVSxFQUFFLENBQVMsRUFBRSxFQUFFO1FBQzFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxLQUFL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
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvU3RvcmUvQ29zbW9zL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCx3REFBd0Q7QUFDeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUU3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFJN0MsTUFBTSxVQUFVLFFBQVEsQ0FBQyxDQU14QjtJQUNDLE9BQU8sV0FBVztTQUNmLFFBQVEsQ0FBQyxjQUFjLENBQUM7U0FDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1FBQ2QsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQ3hCLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQTtZQUNyQixPQUFPLEdBQUcsQ0FBQTtRQUNaLENBQUMsRUFBRSxFQUFrRSxDQUFDLEVBQ3RFLFNBQVMsRUFDVCxDQUFDLENBQ0Y7S0FDRixDQUFDLENBQUMsQ0FBQTtBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLEtBQWtCLEVBQ2xCLE1BQStCLEVBQy9CLElBQVksRUFDWixnQkFBd0IsRUFDeEIsYUFBc0MsRUFDdEMsTUFBc0MsRUFDdEMsS0FBeUUsRUFDekUsSUFBYSxFQUNiLEtBQWM7SUFFZCxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQVUsRUFBRSxDQUFTLEVBQUUsTUFBYSxFQUFFLEVBQUU7UUFDekQsSUFBSSxD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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "2.30.2",
3
+ "version": "2.30.3",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1
2
  /* eslint-disable @typescript-eslint/no-unsafe-return */
2
3
  import { Array, Effect, Equivalence, pipe } from "effect-app"
3
4
  import type { NonEmptyReadonlyArray } from "effect-app"
@@ -39,7 +40,7 @@ export function buildWhereCosmosQuery3(
39
40
  skip?: number,
40
41
  limit?: number
41
42
  ) {
42
- const statement = (x: FilterR, i: number) => {
43
+ const statement = (x: FilterR, i: number, values: any[]) => {
43
44
  if (x.path === idKey) {
44
45
  x = { ...x, path: "id" }
45
46
  }
@@ -52,6 +53,8 @@ export function buildWhereCosmosQuery3(
52
53
 
53
54
  const v = "@v" + i
54
55
 
56
+ const realValue = values[i]
57
+
55
58
  switch (x.op) {
56
59
  case "in":
57
60
  return `ARRAY_CONTAINS(${v}, ${k})`
@@ -64,14 +67,14 @@ export function buildWhereCosmosQuery3(
64
67
  return `(NOT ARRAY_CONTAINS(${k}, ${v}))`
65
68
 
66
69
  case "includes-any":
67
- return `ARRAY_CONTAINS_ANY(${k}, ${v})`
70
+ return `ARRAY_CONTAINS_ANY(${k}, ${(realValue as any[]).map((_, i) => `${v}__${i}`).join(", ")})`
68
71
  case "notIncludes-any":
69
- return `(NOT ARRAY_CONTAINS_ANY(${k}, ${v}))`
72
+ return `(NOT ARRAY_CONTAINS_ANY(${k}, ${(realValue as any[]).map((_, i) => `${v}__${i}`).join(", ")}))`
70
73
 
71
74
  case "includes-all":
72
- return `ARRAY_CONTAINS_ALL(${k}, ${v})`
75
+ return `ARRAY_CONTAINS_ALL(${k}, ${(realValue as any[]).map((_, i) => `${v}__${i}`).join(", ")})`
73
76
  case "notIncludes-all":
74
- return `(NOT ARRAY_CONTAINS_ALL(${k}, ${v}))`
77
+ return `(NOT ARRAY_CONTAINS_ALL(${k}, ${(realValue as any[]).map((_, i) => `${v}__${i}`).join(", ")}))`
75
78
 
76
79
  case "contains":
77
80
  return `CONTAINS(${k}, ${v}, true)`
@@ -114,7 +117,7 @@ export function buildWhereCosmosQuery3(
114
117
 
115
118
  let i = 0
116
119
 
117
- const print = (state: readonly FilterResult[]) => {
120
+ const print = (state: readonly FilterResult[], values: any[]) => {
118
121
  let s = ""
119
122
  let l = 0
120
123
  const printN = (n: number) => {
@@ -123,29 +126,29 @@ export function buildWhereCosmosQuery3(
123
126
  for (const e of state) {
124
127
  switch (e.t) {
125
128
  case "where":
126
- s += statement(e, i++)
129
+ s += statement(e, i++, values)
127
130
  break
128
131
  case "or":
129
- s += ` OR ${statement(e, i++)}`
132
+ s += ` OR ${statement(e, i++, values)}`
130
133
  break
131
134
  case "and":
132
- s += ` AND ${statement(e, i++)}`
135
+ s += ` AND ${statement(e, i++, values)}`
133
136
  break
134
137
  case "or-scope": {
135
138
  ++l
136
- s += ` OR (\n${printN(l + 1)}${print(e.result)}\n${printN(l)})`
139
+ s += ` OR (\n${printN(l + 1)}${print(e.result, values)}\n${printN(l)})`
137
140
  --l
138
141
  break
139
142
  }
140
143
  case "and-scope": {
141
144
  ++l
142
- s += ` AND (\n${printN(l + 1)}${print(e.result)}\n${printN(l)})`
145
+ s += ` AND (\n${printN(l + 1)}${print(e.result, values)}\n${printN(l)})`
143
146
  --l
144
147
  break
145
148
  }
146
149
  case "where-scope": {
147
150
  // ;++l
148
- s += `(\n${printN(l + 1)}${print(e.result)}\n)`
151
+ s += `(\n${printN(l + 1)}${print(e.result, values)}\n)`
149
152
  // ;--l
150
153
  break
151
154
  }
@@ -198,16 +201,20 @@ export function buildWhereCosmosQuery3(
198
201
  .join("\n")
199
202
  }
200
203
 
201
- WHERE f.id != @id ${filter.length ? `AND (${print(filter)})` : ""}
204
+ WHERE f.id != @id ${filter.length ? `AND (${print(filter, values.map((_) => _.value))})` : ""}
202
205
  ${order ? `ORDER BY ${order.map((_) => `f.${_.key} ${_.direction}`).join(", ")}` : ""}
203
206
  ${skip !== undefined || limit !== undefined ? `OFFSET ${skip ?? 0} LIMIT ${limit ?? 999999}` : ""}`,
204
207
  parameters: [
205
208
  { name: "@id", value: importedMarkerId },
206
209
  ...values
207
- .map((x, i) => ({
208
- name: `@v${i}`,
209
- value: x.value
210
- }))
210
+ .flatMap((x, i) =>
211
+ [{
212
+ name: `@v${i}`,
213
+ value: x.value as any
214
+ }]
215
+ // TODO: only for arrays that are used with _ANY or _ALL
216
+ .concat(Array.isArray(x.value) ? x.value.map((_, i2) => ({ name: `@v${i}__${i2}`, value: _ as any })) : [])
217
+ )
211
218
  ]
212
219
  }
213
220
  }