@effect-app/infra 0.118.0 → 0.119.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 +6 -0
- package/_cjs/services/Repository.cjs +4 -38
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +39 -36
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos/query.cjs +291 -0
- package/_cjs/services/Store/Cosmos/query.cjs.map +1 -0
- package/_cjs/services/Store/Cosmos.cjs +38 -183
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.test.cjs +7 -7
- package/_cjs/services/Store/Cosmos.test.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +20 -17
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +1 -1
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.cjs +151 -0
- package/_cjs/services/Store/codeFilter.cjs.map +1 -0
- package/_cjs/services/Store/filterApi/proxy.cjs +40 -0
- package/_cjs/services/Store/filterApi/proxy.cjs.map +1 -0
- package/_cjs/services/Store/filterApi/query.cjs +173 -0
- package/_cjs/services/Store/filterApi/query.cjs.map +1 -0
- package/_cjs/services/Store/filterApi.test.cjs +164 -0
- package/_cjs/services/Store/filterApi.test.cjs.map +1 -0
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +8 -1
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_src/services/Repository.ts +124 -70
- package/_src/services/RepositoryBase.ts +26 -12
- package/_src/services/Store/Cosmos/query.ts +390 -0
- package/_src/services/Store/Cosmos.test.ts +5 -5
- package/_src/services/Store/Cosmos.ts +39 -245
- package/_src/services/Store/Memory.ts +21 -18
- package/_src/services/Store/Redis.ts +2 -3
- package/_src/services/Store/codeFilter.ts +150 -0
- package/_src/services/Store/filterApi/proxy.ts +109 -0
- package/_src/services/Store/filterApi/query.ts +256 -0
- package/_src/services/Store/filterApi.test.ts +263 -0
- package/_src/services/Store/service.ts +17 -5
- package/_src/services/Store/utils.ts +10 -7
- package/dist/services/Repository.d.ts +44 -104
- package/dist/services/Repository.d.ts.map +1 -1
- package/dist/services/Repository.js +6 -30
- package/dist/services/RepositoryBase.d.ts +11 -21
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +41 -37
- package/dist/services/Store/Cosmos/query.d.ts +61 -0
- package/dist/services/Store/Cosmos/query.d.ts.map +1 -0
- package/dist/services/Store/Cosmos/query.js +302 -0
- package/dist/services/Store/Cosmos.d.ts +3 -47
- package/dist/services/Store/Cosmos.d.ts.map +1 -1
- package/dist/services/Store/Cosmos.js +39 -193
- package/dist/services/Store/Memory.d.ts +2 -7
- package/dist/services/Store/Memory.d.ts.map +1 -1
- package/dist/services/Store/Memory.js +17 -15
- package/dist/services/Store/Redis.d.ts.map +1 -1
- package/dist/services/Store/Redis.js +2 -2
- package/dist/services/Store/codeFilter.d.ts +5 -0
- package/dist/services/Store/codeFilter.d.ts.map +1 -0
- package/dist/services/Store/codeFilter.js +140 -0
- package/dist/services/Store/filterApi/proxy.d.ts +41 -0
- package/dist/services/Store/filterApi/proxy.d.ts.map +1 -0
- package/dist/services/Store/filterApi/proxy.js +41 -0
- package/dist/services/Store/filterApi/query.d.ts +64 -0
- package/dist/services/Store/filterApi/query.d.ts.map +1 -0
- package/dist/services/Store/filterApi/query.js +134 -0
- package/dist/services/Store/filterApi.test.d.ts.map +1 -0
- package/dist/services/Store/service.d.ts +12 -5
- package/dist/services/Store/service.d.ts.map +1 -1
- package/dist/services/Store/service.js +1 -1
- package/dist/services/Store/utils.d.ts +7 -1
- package/dist/services/Store/utils.d.ts.map +1 -1
- package/dist/services/Store/utils.js +118 -115
- package/package.json +44 -4
|
@@ -39,7 +39,7 @@ export function makeRedisStore({ prefix }) {
|
|
|
39
39
|
.pipe(withPermit), RedisClient, redis);
|
|
40
40
|
const s = {
|
|
41
41
|
all,
|
|
42
|
-
filter: (
|
|
42
|
+
filter: (f) => tsplus_module_1.map(all, memFilter(f)),
|
|
43
43
|
filterJoinSelect: (filter) => tsplus_module_1.map(all, (c) => c.flatMap(codeFilterJoinSelect(filter))),
|
|
44
44
|
find: (id) => tsplus_module_1.map(asMap, (_) => tsplus_module_2.fromNullable(_.get(id))),
|
|
45
45
|
set: (e) => tsplus_module_1.provideService(tsplus_module_1.tap(tsplus_module_1.flatMap(s
|
|
@@ -58,4 +58,4 @@ export function makeRedisStore({ prefix }) {
|
|
|
58
58
|
export function RedisStoreLive(config) {
|
|
59
59
|
return tsplus_module_6.effect(StoreMaker)(tsplus_module_1.flatMap(tsplus_module_1.config(config), makeRedisStore));
|
|
60
60
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVkaXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1N0b3JlL1JlZGlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFHdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUUzRSxNQUFNLFVBQVUsY0FBYyxDQUFDLEVBQUUsTUFBTSxFQUFpQjtJQUN0RCxPQUFPLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7UUFDM0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ25DLE9BQU87WUFDTCxJQUFJLEVBQUUsQ0FDSixJQUFZLEVBQ1osSUFBaUMsRUFDakMsT0FBeUIsRUFDekIsRUFBRSxDQUNGLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7Z0JBQ3BCLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDdkMsdUNBQXVDO2dCQUN2QyxNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQTtnQkFDOUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFEQUFBLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQXNCLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO2dCQUNqRixJQUFJLENBQUMsdUJBQUEsT0FBTyxDQUFTLEVBQUUsQ0FBQztvQkFDdEIsTUFBTSxD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
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { FilterR, FilterResult } from "./filterApi/query.js";
|
|
2
|
+
export declare const codeFilterStatement: <E>(p: FilterR, x: E) => boolean;
|
|
3
|
+
export declare const codeFilter3: <E>(state: readonly FilterResult[]) => (sut: E) => boolean;
|
|
4
|
+
export declare const codeFilter3_: <E>(state: readonly FilterResult[], sut: E) => boolean;
|
|
5
|
+
//# sourceMappingURL=codeFilter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeFilter.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/codeFilter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AASjE,eAAO,MAAM,mBAAmB,SAAU,OAAO,KAAK,CAAC,YAgDtD,CAAA;AAgDD,eAAO,MAAM,WAAW,aAAc,SAAS,YAAY,EAAE,WAAW,CAAC,YAA6B,CAAA;AACtG,eAAO,MAAM,YAAY,aAAc,SAAS,YAAY,EAAE,OAAO,CAAC,KAAG,OA0CxE,CAAA"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "effect/ReadonlyArray";
|
|
2
|
+
import { assertUnreachable, get } from "@effect-app/prelude/utils";
|
|
3
|
+
import { compareCaseInsensitive, gtCaseInsensitive, gteCaseInsensitive, ltCaseInsensitive, lteCaseInsensitive } from "./utils.js";
|
|
4
|
+
export const codeFilterStatement = (p, x) => {
|
|
5
|
+
const k = get(x, p.path);
|
|
6
|
+
switch (p.op) {
|
|
7
|
+
case "in":
|
|
8
|
+
return p.value.includes(k);
|
|
9
|
+
case "notIn":
|
|
10
|
+
return !p.value.includes(k);
|
|
11
|
+
case "lt":
|
|
12
|
+
return ltCaseInsensitive(k, p.value);
|
|
13
|
+
case "lte":
|
|
14
|
+
return lteCaseInsensitive(k, p.value);
|
|
15
|
+
case "gt":
|
|
16
|
+
return gtCaseInsensitive(k, p.value);
|
|
17
|
+
case "gte":
|
|
18
|
+
return gteCaseInsensitive(k, p.value);
|
|
19
|
+
case "includes":
|
|
20
|
+
return k.includes(p.value);
|
|
21
|
+
case "notIncludes":
|
|
22
|
+
return !k.includes(p.value);
|
|
23
|
+
case "contains":
|
|
24
|
+
return k.toLowerCase().includes(p.value.toLowerCase());
|
|
25
|
+
case "endsWith":
|
|
26
|
+
return k.toLowerCase().endsWith(p.value.toLowerCase());
|
|
27
|
+
case "startsWith":
|
|
28
|
+
return k.toLowerCase().startsWith(p.value.toLowerCase());
|
|
29
|
+
case "notContains":
|
|
30
|
+
return !k.toLowerCase().includes(p.value.toLowerCase());
|
|
31
|
+
case "notEndsWith":
|
|
32
|
+
return !k.toLowerCase().endsWith(p.value.toLowerCase());
|
|
33
|
+
case "notStartsWith":
|
|
34
|
+
return !k.toLowerCase().startsWith(p.value.toLowerCase());
|
|
35
|
+
case "neq":
|
|
36
|
+
return p.path.includes(".-1.")
|
|
37
|
+
? get(x, p.path.split(".-1.")[0])
|
|
38
|
+
// TODO: or vs and
|
|
39
|
+
.every((_) => !compareCaseInsensitive(get(_, p.path.split(".-1.")[1]), p.value))
|
|
40
|
+
: !compareCaseInsensitive(k, p.value);
|
|
41
|
+
case "eq":
|
|
42
|
+
case undefined:
|
|
43
|
+
return p.path.includes(".-1.")
|
|
44
|
+
? get(x, p.path.split(".-1.")[0])
|
|
45
|
+
// TODO: or vs and
|
|
46
|
+
.some((_) => compareCaseInsensitive(get(_, p.path.split(".-1.")[1]), p.value))
|
|
47
|
+
: compareCaseInsensitive(k, p.value);
|
|
48
|
+
default: {
|
|
49
|
+
return assertUnreachable(p.op);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
// const or = <E extends { id: string }, NE extends E>(filters: readonly FilterResult[], x: E): Option<NE> =>
|
|
54
|
+
// filters
|
|
55
|
+
// .some((p) => {
|
|
56
|
+
// if (p.t === "and-scope") {
|
|
57
|
+
// return and(p.result, x)
|
|
58
|
+
// }
|
|
59
|
+
// if (p.t === "or-scope") {
|
|
60
|
+
// return or(p.result, x)
|
|
61
|
+
// }
|
|
62
|
+
// if (p.t === "where-scope") {
|
|
63
|
+
// return codeFilter2(filters)(x)
|
|
64
|
+
// }
|
|
65
|
+
// return codeFilterStatement(p, x)
|
|
66
|
+
// })
|
|
67
|
+
// ? Option(x as unknown as NE)
|
|
68
|
+
// : Option.none
|
|
69
|
+
// export const and = <E extends { id: string }, NE extends E>(filters: readonly FilterResult[], x: E): Option<NE> =>
|
|
70
|
+
// filters
|
|
71
|
+
// .every((p) => {
|
|
72
|
+
// if (p.t === "and-scope") {
|
|
73
|
+
// return and(p.result, x)
|
|
74
|
+
// }
|
|
75
|
+
// if (p.t === "or-scope") {
|
|
76
|
+
// return or(p.result, x)
|
|
77
|
+
// }
|
|
78
|
+
// if (p.t === "where-scope") {
|
|
79
|
+
// return codeFilter2(filters)(x)
|
|
80
|
+
// }
|
|
81
|
+
// return codeFilterStatement(p, x)
|
|
82
|
+
// })
|
|
83
|
+
// ? Option(x as unknown as NE)
|
|
84
|
+
// : Option.none
|
|
85
|
+
// // TODO: how to handle and/or outside scopes.
|
|
86
|
+
// // TODO: the scopes are not about and every, or some.. they're about logical grouping. It's a logical group + and/or etc.
|
|
87
|
+
// // TODO: how to convert this to code? would we compile an actual function body instead?!
|
|
88
|
+
// export function codeFilter2<E extends { id: string }, NE extends E>(filters: readonly FilterResult[]) {
|
|
89
|
+
// // TODO: handle or, and, or-scope, and-scope, where-scope
|
|
90
|
+
// return (x: E) =>
|
|
91
|
+
// // AND
|
|
92
|
+
// and<E, NE>(filters, x)
|
|
93
|
+
// // OR
|
|
94
|
+
// // or<E, NE>(filters, x)
|
|
95
|
+
// }
|
|
96
|
+
export const codeFilter3 = (state) => (sut) => codeFilter3_(state, sut);
|
|
97
|
+
export const codeFilter3_ = (state, sut) => {
|
|
98
|
+
let s = "";
|
|
99
|
+
let l = 0;
|
|
100
|
+
const printN = (n) => {
|
|
101
|
+
return n === 0 ? "" : tsplus_module_1.range(1, n).map(() => " ").join("");
|
|
102
|
+
};
|
|
103
|
+
// TODO: path str updates
|
|
104
|
+
const process = (e) => codeFilterStatement(e, sut);
|
|
105
|
+
for (const e of state) {
|
|
106
|
+
switch (e.t) {
|
|
107
|
+
case "where":
|
|
108
|
+
s += process(e);
|
|
109
|
+
break;
|
|
110
|
+
case "or":
|
|
111
|
+
s += " || " + process(e);
|
|
112
|
+
break;
|
|
113
|
+
case "and":
|
|
114
|
+
s += " && " + process(e);
|
|
115
|
+
break;
|
|
116
|
+
case "or-scope": {
|
|
117
|
+
;
|
|
118
|
+
++l;
|
|
119
|
+
s += ` || (\n${printN(l + 1)}${codeFilter3_(e.result, sut)}\n${printN(l)})`;
|
|
120
|
+
--l;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
case "and-scope": {
|
|
124
|
+
;
|
|
125
|
+
++l;
|
|
126
|
+
s += ` && (\n${printN(l + 1)}${codeFilter3_(e.result, sut)}\n${printN(l)})`;
|
|
127
|
+
--l;
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
case "where-scope": {
|
|
131
|
+
// ;++l
|
|
132
|
+
s += `(\n${printN(l + 1)}${codeFilter3_(e.result, sut)}\n)`;
|
|
133
|
+
// ;--l
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return eval(s);
|
|
139
|
+
};
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZUZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvU3RvcmUvY29kZUZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRWxFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ25CLE1BQU0sWUFBWSxDQUFBO0FBRW5CLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUksQ0FBVSxFQUFFLENBQUksRUFBRSxFQUFFO0lBQ3pELE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3hCLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2IsS0FBSyxJQUFJO1lBQ1AsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUM1QixLQUFLLE9BQU87WUFDVixPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDN0IsS0FBSyxJQUFJO1lBQ1AsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3RDLEtBQUssS0FBSztZQUNSLE9BQU8sa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN2QyxLQUFLLElBQUk7WUFDUCxPQUFPLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEMsS0FBSyxLQUFLO1lBQ1IsT0FBTyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZDLEtBQUssVUFBVTtZQUNiLE9BQVEsQ0FBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQy9DLEtBQUssYUFBYTtZQUNoQixPQUFPLENBQUUsQ0FBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2hELEtBQUssVUFBVTtZQUNiLE9BQVEsQ0FBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUE7UUFDcEUsS0FBSyxVQUFVO1lBQ2IsT0FBUSxDQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtRQUNwRSxLQUFLLFlBQVk7WUFDZixPQUFRLENBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO1FBQ3RFLEtBQUssYUFBYTtZQUNoQixPQUFPLENBQUUsQ0FBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUE7UUFDckUsS0FBSyxhQUFhO1lBQ2hCLE9BQU8sQ0FBRSxDQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtRQUNyRSxLQUFLLGVBQWU7WUFDbEIsT0FBTyxDQUFFLENBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZFLEtBQUssS0FBSztZQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUM1QixDQUFDLENBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBVztvQkFDMUMsa0JBQWtCO3FCQUNqQixLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkYsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN6QyxLQUFLLElBQUksQ0FBQztRQUNWLEtBQUssU0FBUztZQUNaLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUM1QixDQUFDLENBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBVztvQkFDMUMsa0JBQWtCO3FCQUNqQixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pGLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3hDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDUixPQUFPLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNoQyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVELDZHQUE2RztBQUM3RyxZQUFZO0FBQ1osdUJBQXVCO0FBQ3ZCLHFDQUFxQztBQUNyQyxvQ0FBb0M7QUFDcEMsWUFBWTtBQUNaLG9DQUFvQztBQUNwQyxtQ0FBbUM7QUFDbkMsWUFBWTtBQUNaLHVDQUF1QztBQUN2QywyQ0FBMkM7QUFDM0MsWUFBWTtBQUNaLDJDQUEyQztBQUMzQyxXQUFXO0FBQ1gsbUNBQW1DO0FBQ25DLG9CQUFvQjtBQUVwQixxSEFBcUg7QUFDckgsWUFBWTtBQUNaLHdCQUF3QjtBQUN4QixxQ0FBcUM7QUFDckMsb0NBQW9DO0FBQ3BDLFlBQVk7QUFDWixvQ0FBb0M7QUFDcEMsbUNBQW1DO0FBQ25DLFlBQVk7QUFDWix1Q0FBdUM7QUFDdkMsMkNBQTJDO0FBQzNDLFlBQVk7QUFDWiwyQ0FBMkM7QUFDM0MsV0FBVztBQUNYLG1DQUFtQztBQUNuQyxvQkFBb0I7QUFFcEIsZ0RBQWdEO0FBQ2hELDRIQUE0SDtBQUM1SCwyRkFBMkY7QUFDM0YsMEdBQTBHO0FBQzFHLDhEQUE4RDtBQUM5RCxxQkFBcUI7QUFDckIsYUFBYTtBQUNiLDZCQUE2QjtBQUM3QixVQUFVO0FBQ1YsNkJBQTZCO0FBQzdCLElBQUk7QUFFSixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBSSxLQUE4QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQU0sRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUN0RyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBSSxLQUE4QixFQUFFLEdBQU0sRUFBVyxFQUFFO0lBQ2pGLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNULE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUU7UUFDM0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHNCQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUMxRSxDQUFDLENBQUE7SUFDRCx5QkFBeUI7SUFFekIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFVLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUMzRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3RCLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1osS0FBSyxPQUFPO2dCQUNWLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ2YsTUFBSztZQUNQLEtBQUssSUFBSTtnQkFDUCxDQUFDLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDeEIsTUFBSztZQUNQLEtBQUssS0FBSztnQkFDUixDQUFDLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDeEIsTUFBSztZQUNQLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDaEIsQ0FBQztnQkFBQSxFQUFFLENBQUMsQ0FBQTtnQkFDSixDQUFDLElBQUksVUFBVSxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUMxRTtnQkFBQSxFQUFFLENBQUMsQ0FBQTtnQkFDSixNQUFLO1lBQ1AsQ0FBQztZQUNELEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDakIsQ0FBQztnQkFBQSxFQUFFLENBQUMsQ0FBQTtnQkFDSixDQUFDLElBQUksVUFBVSxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUMxRTtnQkFBQSxFQUFFLENBQUMsQ0FBQTtnQkFFSixNQUFLO1lBQ1AsQ0FBQztZQUNELEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDbkIsT0FBTztnQkFDUCxDQUFDLElBQUksTUFBTSxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUE7Z0JBQzNELE9BQU87Z0JBQ1AsTUFBSztZQUNQLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2hCLENBQUMsQ0FBQSJ9
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { FieldValues } from "../../../filter/types.js";
|
|
2
|
+
import type { FieldPath } from "../../../filter/types/path/eager.js";
|
|
3
|
+
type NullOrUndefined<T, Fallback> = null extends T ? null : undefined extends T ? null : Fallback;
|
|
4
|
+
export type InOps = "in" | "notIn";
|
|
5
|
+
export type OtherOps = "endsWith" | "startsWith" | "notEndsWith" | "notStartsWith" | "contains" | "notContains" | "includes" | "notIncludes" | "eq" | "neq" | "gt" | "gte" | "lt" | "lte";
|
|
6
|
+
export type Ops = OtherOps | InOps;
|
|
7
|
+
type F<T extends FieldValues> = {
|
|
8
|
+
path: FieldPath<T>;
|
|
9
|
+
op: OtherOps;
|
|
10
|
+
value: string;
|
|
11
|
+
};
|
|
12
|
+
type FIn<T extends FieldValues> = {
|
|
13
|
+
op: InOps;
|
|
14
|
+
path: FieldPath<T>;
|
|
15
|
+
value: readonly string[];
|
|
16
|
+
};
|
|
17
|
+
type G<T extends FieldValues, Val> = {
|
|
18
|
+
(value: Val): F<T>;
|
|
19
|
+
startsWith: (value: string) => F<T>;
|
|
20
|
+
notStartsWith: (value: string) => F<T>;
|
|
21
|
+
endsWith: (value: string) => F<T>;
|
|
22
|
+
notEndsWith: (value: string) => F<T>;
|
|
23
|
+
contains: (value: string) => F<T>;
|
|
24
|
+
notContains: (value: string) => F<T>;
|
|
25
|
+
includes: (value: string) => F<T>;
|
|
26
|
+
notIncludes: (value: string) => F<T>;
|
|
27
|
+
in: (...value: readonly Val[]) => FIn<T>;
|
|
28
|
+
notIn: (...value: readonly Val[]) => FIn<T>;
|
|
29
|
+
eq: (value: Val) => F<T>;
|
|
30
|
+
neq: (value: Val) => F<T>;
|
|
31
|
+
gt: (value: Val) => F<T>;
|
|
32
|
+
gte: (value: Val) => F<T>;
|
|
33
|
+
lt: (value: Val) => F<T>;
|
|
34
|
+
lte: (value: Val) => F<T>;
|
|
35
|
+
};
|
|
36
|
+
export type Filter<T extends FieldValues, Ext = never> = {
|
|
37
|
+
[K in keyof T]-?: [T[K]] extends [Record<any, any> | undefined | null] ? Filter<T[K], NullOrUndefined<T[K], Ext>> & G<T, T[K] | Ext> : [T[K]] extends [Record<any, any>] ? Filter<T[K], NullOrUndefined<T[K], Ext>> & G<T, T[K] | Ext> : G<T, T[K] | Ext>;
|
|
38
|
+
};
|
|
39
|
+
export declare const makeProxy: (parentProp?: string) => any;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../../_src/services/Store/filterApi/proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const ops = [
|
|
2
|
+
"contains",
|
|
3
|
+
"startsWith",
|
|
4
|
+
"endsWith",
|
|
5
|
+
"notContains",
|
|
6
|
+
"notStartsWith",
|
|
7
|
+
"notEndsWith",
|
|
8
|
+
"in",
|
|
9
|
+
"notIn",
|
|
10
|
+
"eq",
|
|
11
|
+
"neq",
|
|
12
|
+
"gte",
|
|
13
|
+
"gt",
|
|
14
|
+
"lt",
|
|
15
|
+
"lte"
|
|
16
|
+
];
|
|
17
|
+
export const makeProxy = (parentProp) => new Proxy(Object.assign(() => { }, {
|
|
18
|
+
_proxies: {}
|
|
19
|
+
}), {
|
|
20
|
+
apply(_target, _thisArg, argArray) {
|
|
21
|
+
return ({ op: "eq", value: argArray[0], path: parentProp });
|
|
22
|
+
},
|
|
23
|
+
get(target, prop) {
|
|
24
|
+
if (typeof prop !== "string")
|
|
25
|
+
return undefined;
|
|
26
|
+
if (target._proxies[prop]) {
|
|
27
|
+
return target._proxies[prop];
|
|
28
|
+
}
|
|
29
|
+
if (ops.includes(prop)) {
|
|
30
|
+
return (value) => ({ op: prop, path: parentProp, value });
|
|
31
|
+
}
|
|
32
|
+
let fullProp = prop;
|
|
33
|
+
if (parentProp) {
|
|
34
|
+
fullProp = `${parentProp}.${prop}`;
|
|
35
|
+
}
|
|
36
|
+
const p = makeProxy(fullProp);
|
|
37
|
+
target._proxies[prop] = p;
|
|
38
|
+
return p;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1N0b3JlL2ZpbHRlckFwaS9wcm94eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpRUEsTUFBTSxHQUFHLEdBQVU7SUFDakIsVUFBVTtJQUNWLFlBQVk7SUFDWixVQUFVO0lBQ1YsYUFBYTtJQUNiLGVBQWU7SUFDZixhQUFhO0lBQ2IsSUFBSTtJQUNKLE9BQU87SUFDUCxJQUFJO0lBQ0osS0FBSztJQUNMLEtBQUs7SUFDTCxJQUFJO0lBQ0osSUFBSTtJQUNKLEtBQUs7Q0FDTixDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsVUFBbUIsRUFBTyxFQUFFLENBQ3BELElBQUksS0FBSyxDQUNQLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFO0lBQ3RCLFFBQVEsRUFBRSxFQUF5QjtDQUNwQyxDQUFDLEVBQ0Y7SUFDRSxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRO1FBQy9CLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0lBQ0QsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJO1FBQ2QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1lBQUUsT0FBTyxTQUFTLENBQUE7UUFDOUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzlCLENBQUM7UUFFRCxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBVyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7UUFDaEUsQ0FBQztRQUNELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQTtRQUNuQixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsUUFBUSxHQUFHLEdBQUcsVUFBVSxJQUFJLElBQUksRUFBRSxDQUFBO1FBQ3BDLENBQUM7UUFDRCxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDN0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDekIsT0FBTyxDQUFDLENBQUE7SUFDVixDQUFDO0NBQ0YsQ0FDRixDQUFBIn0=
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { FieldValues } from "../../../filter/types.js";
|
|
2
|
+
import type { FieldPath, FieldPathValue } from "../../../filter/types/path/eager.js";
|
|
3
|
+
import type { Filter, Ops } from "./proxy.js";
|
|
4
|
+
export type FilterScopes = {
|
|
5
|
+
t: "or-scope";
|
|
6
|
+
result: FilterResult[];
|
|
7
|
+
} | {
|
|
8
|
+
t: "and-scope";
|
|
9
|
+
result: FilterResult[];
|
|
10
|
+
} | {
|
|
11
|
+
t: "where-scope";
|
|
12
|
+
result: FilterResult[];
|
|
13
|
+
};
|
|
14
|
+
export type FilterR = {
|
|
15
|
+
op: Ops;
|
|
16
|
+
path: string;
|
|
17
|
+
value: string;
|
|
18
|
+
};
|
|
19
|
+
export type FilterResult = {
|
|
20
|
+
t: "where";
|
|
21
|
+
} & FilterR | {
|
|
22
|
+
t: "or";
|
|
23
|
+
} & FilterR | {
|
|
24
|
+
t: "and";
|
|
25
|
+
} & FilterR | FilterScopes;
|
|
26
|
+
export declare const print: (state: readonly FilterResult[]) => string;
|
|
27
|
+
export declare const makeFilter: <TFieldValues extends FieldValues>() => {
|
|
28
|
+
all: ((...args: any[]) => any) & {
|
|
29
|
+
type: string;
|
|
30
|
+
and: (...args: any[]) => any;
|
|
31
|
+
or: (...args: any[]) => any;
|
|
32
|
+
build(): FilterResult[];
|
|
33
|
+
};
|
|
34
|
+
fields: Filter<TFieldValues, never>;
|
|
35
|
+
};
|
|
36
|
+
export declare const QueryBuilder: {
|
|
37
|
+
make: <TFieldValues extends FieldValues>() => (fn: (f: FilterTest<TFieldValues>, fields: Filter<TFieldValues>) => QueryBuilder<TFieldValues>) => QueryBuilder<TFieldValues>;
|
|
38
|
+
};
|
|
39
|
+
export type Initial<TFieldValues extends FieldValues> = {
|
|
40
|
+
where: FilterTest<TFieldValues>;
|
|
41
|
+
build(): FilterResult[];
|
|
42
|
+
};
|
|
43
|
+
export type Filts<TFieldValues extends FieldValues> = {
|
|
44
|
+
<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, value: V): QueryBuilder<TFieldValues>;
|
|
45
|
+
<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, op: "neq", value: V): QueryBuilder<TFieldValues>;
|
|
46
|
+
<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, op: "gt" | "gte" | "lt" | "lte", value: V): QueryBuilder<TFieldValues>;
|
|
47
|
+
<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, op: "startsWith" | "endsWith" | "contains" | "notContains" | "notStartsWith" | "notEndsWith", value: V): QueryBuilder<TFieldValues>;
|
|
48
|
+
<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, op: "in" | "notIn", value: readonly V[]): QueryBuilder<TFieldValues>;
|
|
49
|
+
};
|
|
50
|
+
export type FilterTest<TFieldValues extends FieldValues> = {
|
|
51
|
+
(fb: (f: Filts<TFieldValues> & Initial<TFieldValues>) => QueryBuilder<TFieldValues>): QueryBuilder<TFieldValues>;
|
|
52
|
+
<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(f: {
|
|
53
|
+
path: TFieldName;
|
|
54
|
+
op: Ops;
|
|
55
|
+
value: V;
|
|
56
|
+
}): QueryBuilder<TFieldValues>;
|
|
57
|
+
} & Filts<TFieldValues>;
|
|
58
|
+
export interface QueryBuilder<TFieldValues extends FieldValues> {
|
|
59
|
+
type: "new-kid";
|
|
60
|
+
and: FilterTest<TFieldValues>;
|
|
61
|
+
or: FilterTest<TFieldValues>;
|
|
62
|
+
build(): FilterResult[];
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../_src/services/Store/filterApi/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "effect/ReadonlyArray";
|
|
2
|
+
import { makeProxy } from "./proxy.js";
|
|
3
|
+
export const print = (state) => {
|
|
4
|
+
let s = "";
|
|
5
|
+
let l = 0;
|
|
6
|
+
const printN = (n) => {
|
|
7
|
+
return n === 0 ? "" : tsplus_module_1.range(1, n).map(() => " ").join("");
|
|
8
|
+
};
|
|
9
|
+
for (const e of state) {
|
|
10
|
+
switch (e.t) {
|
|
11
|
+
case "where":
|
|
12
|
+
s += `${e.path} ${e.op} ${e.value}`;
|
|
13
|
+
break;
|
|
14
|
+
case "or":
|
|
15
|
+
s += ` OR ${e.path} ${e.op} ${e.value}`;
|
|
16
|
+
break;
|
|
17
|
+
case "and":
|
|
18
|
+
s += ` AND ${e.path} ${e.op} ${e.value}`;
|
|
19
|
+
break;
|
|
20
|
+
case "or-scope": {
|
|
21
|
+
;
|
|
22
|
+
++l;
|
|
23
|
+
s += ` OR (\n${printN(l + 1)}${print(e.result)}\n${printN(l)})`;
|
|
24
|
+
--l;
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
case "and-scope": {
|
|
28
|
+
;
|
|
29
|
+
++l;
|
|
30
|
+
s += ` AND (\n${printN(l + 1)}${print(e.result)}\n${printN(l)})`;
|
|
31
|
+
--l;
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
case "where-scope": {
|
|
35
|
+
// ;++l
|
|
36
|
+
s += `(\n${printN(l + 1)}${print(e.result)}\n)`;
|
|
37
|
+
// ;--l
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return s;
|
|
43
|
+
};
|
|
44
|
+
export const makeFilter = () => {
|
|
45
|
+
// const recursive = {}
|
|
46
|
+
// const and = Object.assign(() => {}, recursive)
|
|
47
|
+
// const or = Object.assign(() => {}, recursive)
|
|
48
|
+
// const where = Object.assign(() => {}, recursive)
|
|
49
|
+
// recursive.and = and
|
|
50
|
+
// recursive.or = or
|
|
51
|
+
// recursive.where = where
|
|
52
|
+
const state = [];
|
|
53
|
+
let current = state;
|
|
54
|
+
const where = (...args) => {
|
|
55
|
+
if (typeof args[0] === "function") {
|
|
56
|
+
const mine = [];
|
|
57
|
+
const previous = current;
|
|
58
|
+
current = mine;
|
|
59
|
+
const r = args[0](all);
|
|
60
|
+
current = previous;
|
|
61
|
+
current.push({ t: "where-scope", result: mine });
|
|
62
|
+
return r;
|
|
63
|
+
}
|
|
64
|
+
if (args.length === 1) {
|
|
65
|
+
current.push({ t: "where", ...args[0] });
|
|
66
|
+
return all;
|
|
67
|
+
}
|
|
68
|
+
current.push({
|
|
69
|
+
t: "where",
|
|
70
|
+
op: args.length === 2 ? "eq" : args[1],
|
|
71
|
+
path: args[0],
|
|
72
|
+
value: args[args.length - 1]
|
|
73
|
+
});
|
|
74
|
+
return all;
|
|
75
|
+
};
|
|
76
|
+
const and = (...args) => {
|
|
77
|
+
if (typeof args[0] === "function") {
|
|
78
|
+
const mine = [];
|
|
79
|
+
const previous = current;
|
|
80
|
+
current = mine;
|
|
81
|
+
const r = args[0](all);
|
|
82
|
+
current = previous;
|
|
83
|
+
current.push({ t: "and-scope", result: mine });
|
|
84
|
+
return r;
|
|
85
|
+
}
|
|
86
|
+
if (args.length === 1) {
|
|
87
|
+
current.push({ t: "and", ...args[0] });
|
|
88
|
+
return all;
|
|
89
|
+
}
|
|
90
|
+
current.push({
|
|
91
|
+
t: "and",
|
|
92
|
+
op: args.length === 2 ? "eq" : args[1],
|
|
93
|
+
path: args[0],
|
|
94
|
+
value: args[args.length - 1]
|
|
95
|
+
});
|
|
96
|
+
return all;
|
|
97
|
+
};
|
|
98
|
+
const or = (...args) => {
|
|
99
|
+
if (typeof args[0] === "function") {
|
|
100
|
+
const mine = [];
|
|
101
|
+
const previous = current;
|
|
102
|
+
current = mine;
|
|
103
|
+
const r = args[0](all);
|
|
104
|
+
current = previous;
|
|
105
|
+
current.push({ t: "or-scope", result: mine });
|
|
106
|
+
return r;
|
|
107
|
+
}
|
|
108
|
+
if (args.length === 1) {
|
|
109
|
+
current.push({ t: "or", ...args[0] });
|
|
110
|
+
return all;
|
|
111
|
+
}
|
|
112
|
+
current.push({ t: "or", op: args.length === 2 ? "eq" : args[1], path: args[0], value: args[args.length - 1] });
|
|
113
|
+
return all;
|
|
114
|
+
};
|
|
115
|
+
const fields = makeProxy();
|
|
116
|
+
const all = Object.assign(where, {
|
|
117
|
+
type: "new-kid",
|
|
118
|
+
and,
|
|
119
|
+
or,
|
|
120
|
+
build() {
|
|
121
|
+
return state;
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
return { all, fields };
|
|
125
|
+
};
|
|
126
|
+
export const QueryBuilder = {
|
|
127
|
+
make: () => {
|
|
128
|
+
return (f) => {
|
|
129
|
+
const fil = makeFilter();
|
|
130
|
+
return f(fil.all, fil.fields);
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1N0b3JlL2ZpbHRlckFwaS9xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBR0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQWdDdEMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBOEIsRUFBRSxFQUFFO0lBQ3RELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNULE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUU7UUFDM0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHNCQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUMxRSxDQUFDLENBQUE7SUFDRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3RCLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1osS0FBSyxPQUFPO2dCQUNWLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7Z0JBQ25DLE1BQUs7WUFDUCxLQUFLLElBQUk7Z0JBQ1AsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtnQkFDdkMsTUFBSztZQUNQLEtBQUssS0FBSztnQkFDUixDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssRUFB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterApi.test.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/filterApi.test.ts"],"names":[],"mappings":""}
|
|
@@ -6,6 +6,8 @@ import { Secret } from "effect/Secret";
|
|
|
6
6
|
import type { UniqueKey } from "@azure/cosmos";
|
|
7
7
|
import type { ParserEnv } from "@effect-app/schema/custom/Parser";
|
|
8
8
|
import type { OptimisticConcurrencyException } from "../../errors.js";
|
|
9
|
+
import type { FieldValues } from "../../filter/types.js";
|
|
10
|
+
import type { QueryBuilder } from "./filterApi/query.js";
|
|
9
11
|
export type StoreConfig<E> = {
|
|
10
12
|
uniqueKeys?: UniqueKey[];
|
|
11
13
|
maxBulkSize?: number;
|
|
@@ -62,19 +64,24 @@ export type JoinFindFilter = {
|
|
|
62
64
|
valueKey: string;
|
|
63
65
|
value: any;
|
|
64
66
|
};
|
|
65
|
-
export type Filter<E> = JoinFindFilter | StoreWhereFilter | LegacyFilter<E>;
|
|
67
|
+
export type Filter<E extends FieldValues> = JoinFindFilter | StoreWhereFilter | LegacyFilter<E> | QueryBuilder<E>;
|
|
66
68
|
export type FilterJoinSelect = {
|
|
67
69
|
type: "filter_join_select";
|
|
68
70
|
keys: readonly string[];
|
|
69
71
|
valueKey: string;
|
|
70
72
|
value: any;
|
|
71
73
|
};
|
|
74
|
+
export interface FilterArgs<PM extends PersistenceModelType<string>, U extends keyof PM = never> {
|
|
75
|
+
filter?: Filter<PM>;
|
|
76
|
+
select?: readonly U[];
|
|
77
|
+
limit?: number;
|
|
78
|
+
skip?: number;
|
|
79
|
+
}
|
|
80
|
+
export type FilterFunc<PM extends PersistenceModelType<string>> = <U extends keyof PM = never>(args: FilterArgs<PM, U>) => Effect<never, never, (U extends undefined ? PM : Pick<PM, U>)[]>;
|
|
72
81
|
export interface Store<PM extends PersistenceModelType<Id>, Id extends string> {
|
|
73
82
|
all: Effect<never, never, PM[]>;
|
|
74
|
-
filter:
|
|
75
|
-
|
|
76
|
-
skip?: number;
|
|
77
|
-
}) => Effect<never, never, PM[]>;
|
|
83
|
+
filter: FilterFunc<PM>;
|
|
84
|
+
/** @deprecated */
|
|
78
85
|
filterJoinSelect: <T extends object>(filter: FilterJoinSelect) => Effect<never, never, (T & {
|
|
79
86
|
_rootId: string;
|
|
80
87
|
})[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/service.ts"],"names":[],"mappings":";;;;;AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAU,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAGzE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,4 +68,4 @@ export const makeMap = tsplus_module_2.sync(() => makeContextMap());
|
|
|
68
68
|
*/
|
|
69
69
|
export class ContextMap extends tsplus_module_1.TagClass() {
|
|
70
70
|
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvU3RvcmUvc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1HQTs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLFVBQVcsU0FBUSxnQkFBQSxRQUFRLEVBQWM7Q0FNOUQ7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBZSxFQUFFO0lBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFBO0lBQ3ZDLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzdDLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBVSxFQUFFLElBQXdCLEVBQUUsRUFBRTtRQUN2RCxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM3RCxDQUFDLENBQUE7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFHeEIsQ0FBQTtJQUVILE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUd4QixDQUFBO0lBRUgsTUFBTSxZQUFZLEdBQUcsQ0FDbkIsQ0FBa0IsRUFDbEIsRUFBK0IsRUFDL0IsRUFBRTtRQUNGLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ3RCLE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQyxDQUFBO0lBRUQsTUFBTSxTQUFTLEdBQWM7UUFDM0IsK0VBQStFO1FBQy9FLCtIQUErSDtRQUMvSCxHQUFHLEVBQUUsS0FBSztRQUNWLEtBQUssRUFBRTtZQUNMLGNBQWMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEcsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzNCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDckQsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUM1QyxPQUFPLElBQUksQ0FBQTtnQkFDYixDQUFDLEVBQUUsRUFBUyxDQUFDLENBQUE7WUFDZixDQUFDO1lBQ0QsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBTyxFQUFFO2dCQUMxQixNQUFNLENBQUMsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUNoQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQ2xCLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ04sa0NBQWtDO3dCQUNsQyxPQUFPLENBQUMsQ0FBQTtvQkFDVixDQUFDO3lCQUFNLENBQUM7d0JBQ04sTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQTt3QkFDOUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7d0JBQ1osT0FBTyxFQUFFLENBQUE7b0JBQ1gsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQTtvQkFDOUIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDMUMsT0FBTyxFQUFFLENBQUE7Z0JBQ1gsQ0FBQztZQUNILENBQUM7U0FDRjtLQUNGLENBQUE7SUFFRCxPQUFPO1FBQ0wsR0FBRyxFQUFFLE9BQU87UUFDWixHQUFHLEVBQUUsT0FBTztRQUNaLFNBQVM7S0FDVixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcscUJBQVksR0FBRyxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQTtBQUUxRDs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLFVBQVcsU0FBUSxnQkFBQSxRQUFRLEVBQWM7Q0FJOUQifQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Option } from "@effect-app/core/Option";
|
|
2
2
|
import { OptimisticConcurrencyException } from "../../errors.js";
|
|
3
|
-
import type { Filter, FilterJoinSelect, PersistenceModelType } from "./service.js";
|
|
3
|
+
import type { Filter, FilterJoinSelect, PersistenceModelType, SupportedValues2 } from "./service.js";
|
|
4
4
|
export declare const makeETag: <E extends PersistenceModelType<Id>, Id extends string>({ _etag, ...e }: E) => E;
|
|
5
5
|
export declare const makeUpdateETag: (type: string) => <E extends PersistenceModelType<Id>, Id extends string>(e: E, current: Option<E>) => import("effect/Effect").Effect<never, OptimisticConcurrencyException, E>;
|
|
6
6
|
export declare function codeFilter<E extends {
|
|
@@ -11,4 +11,10 @@ export declare function codeFilterJoinSelect<E extends {
|
|
|
11
11
|
}, NE>(filter: FilterJoinSelect): (x: E) => (NE & {
|
|
12
12
|
_rootId: string;
|
|
13
13
|
})[];
|
|
14
|
+
export declare function lowercaseIfString<T>(val: T): string | T;
|
|
15
|
+
export declare function compareCaseInsensitive(valA: unknown, valB: unknown): boolean;
|
|
16
|
+
export declare function ltCaseInsensitive(valA: SupportedValues2, valB: SupportedValues2): boolean;
|
|
17
|
+
export declare function lteCaseInsensitive(valA: SupportedValues2, valB: SupportedValues2): boolean;
|
|
18
|
+
export declare function gtCaseInsensitive(valA: SupportedValues2, valB: SupportedValues2): boolean;
|
|
19
|
+
export declare function gteCaseInsensitive(valA: SupportedValues2, valB: SupportedValues2): boolean;
|
|
14
20
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/utils.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAA;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/utils.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAA;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAKpG,eAAO,MAAM,QAAQ,2EACF,CAAC,KACjB,CAIQ,CAAA;AACX,eAAO,MAAM,cAAc,SAClB,MAAM,gEAAgE,CAAC,WAAW,OAAO,CAAC,CAAC,6EAoB9F,CAAA;AAEN,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,OACxE,CAAC,yEA4Hb;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,EAC/D,MAAM,EAAE,gBAAgB,OAEb,CAAC;;KAkBb;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,cAK1C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,WAIlE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,WAI/E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,WAIhF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,WAI/E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,WAIhF"}
|