MCPcopy Create free account
hub / github.com/effect-app/libs / print

Function print

packages/infra/src/Store/Cosmos/query.ts:191–272  ·  view source on GitHub ↗
(state: readonly FilterResult[], isRelation: string | null, every: boolean)

Source from the content-addressed store, hash-verified

189 : _
190
191 const print = (state: readonly FilterResult[], isRelation: string | null, every: boolean) => {
192 let s = ""
193 let l = 0
194 const printN = (n: number) => {
195 return n === 0 ? "" : Array.range(1, n).map(() => " ").join("")
196 }
197 for (const e of state) {
198 switch (e.t) {
199 case "where":
200 s += statement(e, i++)
201 break
202 case "or":
203 s += ` OR ${statement(e, i++)}`
204 break
205 case "and":
206 s += ` AND ${statement(e, i++)}`
207 break
208 case "or-scope": {
209 ++l
210 if (!every) every = e.relation === "every"
211 const rel = isRelationCheck(e.result, isRelation)
212 if (rel) {
213 const rel = (e.result[0]! as { path: string }).path.split(".-1.")[0]
214 s += isRelation
215 ? ` OR (\n${printN(l + 1)}${print(e.result, rel, every)}\n${printN(l)})`
216 : ` OR (\n${printN(l + 1)}${
217 every ? "NOT " : ""
218 }EXISTS(SELECT VALUE ${rel} FROM ${rel} IN f.${rel} WHERE ${
219 print(
220 e
221 .result
222 .map(flip(every)),
223 rel,
224 every
225 )
226 }))`
227 } else {
228 s += ` OR (\n${printN(l + 1)}${print(e.result, null, every)}\n${printN(l)})`
229 }
230 --l
231 break
232 }
233 case "and-scope": {
234 ++l
235 if (!every) every = e.relation === "every"
236 const rel = isRelationCheck(e.result, isRelation)
237 if (rel) {
238 const rel = (e.result[0]! as { path: string }).path.split(".-1.")[0]
239 s += isRelation
240 ? ` AND (\n${printN(l + 1)}${print(e.result, rel, every)}\n${printN(l)})`
241 : ` AND (\n${printN(l + 1)}${
242 every ? "NOT " : ""
243 }EXISTS(SELECT VALUE ${rel} FROM ${rel} IN f.${rel} WHERE ${
244 print(e.result.map(flip(every)), rel, every)
245 }))`
246 } else {
247 s += ` AND (\n${printN(l + 1)}${print(e.result, null, every)}\n${printN(l)})`
248 }

Callers 3

aggregateSelectExprFunction · 0.70
computedSelectExprFunction · 0.70
buildWhereCosmosQuery3Function · 0.70

Calls 6

isRelationCheckFunction · 0.90
statementFunction · 0.70
printNFunction · 0.70
flipFunction · 0.70
splitMethod · 0.65
mapMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…