@effect-app/infra 0.200.1 → 0.200.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 +12 -0
- package/_cjs/services/RepositoryBase.cjs +3 -0
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/query/dsl.cjs +79 -0
- package/_cjs/services/query/dsl.cjs.map +1 -0
- package/_cjs/services/query/new-kid-interpreter.cjs +129 -0
- package/_cjs/services/query/new-kid-interpreter.cjs.map +1 -0
- package/_cjs/services/query.cjs +20 -200
- package/_cjs/services/query.cjs.map +1 -1
- package/_cjs/services/query.test.cjs +34 -0
- package/_cjs/services/query.test.cjs.map +1 -0
- package/dist/services/QueueMaker/memQueue.d.ts +1 -1
- package/dist/services/QueueMaker/sbqueue.d.ts +1 -1
- package/dist/services/RepositoryBase.d.ts +10 -10
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +4 -1
- package/dist/services/query/dsl.d.ts +127 -0
- package/dist/services/query/dsl.d.ts.map +1 -0
- package/dist/services/query/dsl.js +38 -0
- package/dist/services/query/new-kid-interpreter.d.ts +15 -0
- package/dist/services/query/new-kid-interpreter.d.ts.map +1 -0
- package/dist/services/query/new-kid-interpreter.js +110 -0
- package/dist/services/query.d.ts +2 -163
- package/dist/services/query.d.ts.map +1 -1
- package/dist/services/query.js +3 -157
- package/dist/services/query.test.d.ts.map +1 -0
- package/package.json +23 -3
- package/src/services/RepositoryBase.ts +13 -10
- package/src/services/query/dsl.ts +290 -0
- package/src/services/query/new-kid-interpreter.ts +169 -0
- package/src/services/query.test.ts +37 -0
- package/src/services/query.ts +2 -462
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
3
|
+
import { toNonEmptyArray } from "@effect-app/core/Array";
|
|
4
|
+
import { Effect, Match, Option, pipe, S, Unify } from "effect-app";
|
|
5
|
+
import { make } from "../query.js";
|
|
6
|
+
const interpret = (_) => {
|
|
7
|
+
const values = [];
|
|
8
|
+
const a = _;
|
|
9
|
+
let schema = undefined;
|
|
10
|
+
let limit = undefined;
|
|
11
|
+
let skip = undefined;
|
|
12
|
+
const order = [];
|
|
13
|
+
const upd = (v) => {
|
|
14
|
+
values.push(...v.filter);
|
|
15
|
+
order.push(...v.order);
|
|
16
|
+
limit = v.limit;
|
|
17
|
+
skip = v.skip;
|
|
18
|
+
schema = v.schema;
|
|
19
|
+
};
|
|
20
|
+
pipe(a, Match.valueTags({
|
|
21
|
+
value: () => {
|
|
22
|
+
// values.push(value)
|
|
23
|
+
},
|
|
24
|
+
where: ({ current, operation }) => {
|
|
25
|
+
upd(interpret(current));
|
|
26
|
+
values.push({
|
|
27
|
+
t: "where",
|
|
28
|
+
path: operation[0],
|
|
29
|
+
op: operation.length === 2 ? "eq" : operation[1],
|
|
30
|
+
value: operation.length === 2 ? operation[1] : operation[2]
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
and: ({ current, operation }) => {
|
|
34
|
+
upd(interpret(current));
|
|
35
|
+
if (typeof operation === "function") {
|
|
36
|
+
values.push({ t: "and-scope", result: interpret(operation(make())).filter });
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
values.push({
|
|
40
|
+
t: "and",
|
|
41
|
+
path: operation[0],
|
|
42
|
+
op: operation.length === 2 ? "eq" : operation[1],
|
|
43
|
+
value: operation.length === 2 ? operation[1] : operation[2]
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
or: ({ current, operation }) => {
|
|
48
|
+
upd(interpret(current));
|
|
49
|
+
if (typeof operation === "function") {
|
|
50
|
+
values.push({ t: "or-scope", result: interpret(operation(make())).filter });
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
values.push({
|
|
54
|
+
t: "or",
|
|
55
|
+
path: operation[0],
|
|
56
|
+
op: operation.length === 2 ? "eq" : operation[1],
|
|
57
|
+
value: operation.length === 2 ? operation[1] : operation[2]
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
order: ({ current }) => {
|
|
62
|
+
upd(interpret(current));
|
|
63
|
+
},
|
|
64
|
+
page: (v) => {
|
|
65
|
+
upd(interpret(v.current));
|
|
66
|
+
limit = v.limit;
|
|
67
|
+
skip = v.skip;
|
|
68
|
+
},
|
|
69
|
+
project: (v) => {
|
|
70
|
+
upd(interpret(v.current));
|
|
71
|
+
schema = v.schema;
|
|
72
|
+
}
|
|
73
|
+
}));
|
|
74
|
+
return {
|
|
75
|
+
filter: values,
|
|
76
|
+
limit,
|
|
77
|
+
skip,
|
|
78
|
+
schema,
|
|
79
|
+
order
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
export const query = ((repo, q) => {
|
|
83
|
+
// TODO: Native interpreter for each db adapter, instead of the intermediate "new-kid" format
|
|
84
|
+
const a = interpret(q);
|
|
85
|
+
const schema = a.schema;
|
|
86
|
+
let select = [];
|
|
87
|
+
if (schema) {
|
|
88
|
+
let t = schema.ast;
|
|
89
|
+
if (S.AST.isTransform(t)) {
|
|
90
|
+
t = t.from;
|
|
91
|
+
}
|
|
92
|
+
if (S.AST.isTypeLiteral(t)) {
|
|
93
|
+
select = t.propertySignatures.map((_) => _.name);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return Effect.flatMap(repo.utils.filter({
|
|
97
|
+
limit: a.limit,
|
|
98
|
+
skip: a.skip,
|
|
99
|
+
select: Option.getOrUndefined(toNonEmptyArray(select)),
|
|
100
|
+
filter: a.filter.length
|
|
101
|
+
? {
|
|
102
|
+
type: "new-kid",
|
|
103
|
+
build: () => a.filter
|
|
104
|
+
}
|
|
105
|
+
: undefined
|
|
106
|
+
}), (_) => Unify.unify(schema
|
|
107
|
+
? repo.utils.parseMany2(_, schema)
|
|
108
|
+
: repo.utils.parseMany(_)));
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWtpZC1pbnRlcnByZXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9xdWVyeS9uZXcta2lkLWludGVycHJldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCw0REFBNEQ7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUlsRSxPQUFPLEVBQUUsSUFBSSxFQUEyQyxNQUFNLGFBQWEsQ0FBQTtBQUszRSxNQUFNLFNBQVMsR0FBRyxDQUFnRSxDQUEyQixFQUFFLEVBQUU7SUFDL0csTUFBTSxNQUFNLEdBQW1CLEVBQUUsQ0FBQTtJQUNqQyxNQUFNLENBQUMsR0FBRyxDQUFvQixDQUFBO0lBRTlCLElBQUksTUFBTSxHQUE2QyxTQUFnQixDQUFBO0lBQ3ZFLElBQUksS0FBSyxHQUF1QixTQUFnQixDQUFBO0lBQ2hELElBQUksSUFBSSxHQUF1QixTQUFnQixDQUFBO0lBQy9DLE1BQU0sS0FBSyxHQUFvRSxFQUFFLENBQUE7SUFFakYsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUF3RixFQUFFLEVBQUU7UUFDdkcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3RCLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFBO1FBQ2YsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDYixNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtJQUNuQixDQUFDLENBQUE7SUFFRCxJQUFJLENBQ0YsQ0FBQyxFQUNELEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDZCxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQ1YscUJBQXFCO1FBQ3ZCLENBQUM7UUFDRCxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO1lBQ2hDLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtZQUN2QixNQUFNLENBQUMsSUFBSSxDQUNUO2dCQUNFLENBQUMsRUFBRSxPQUFPO2dCQUNWLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixFQUFFLEVBQUUsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDaEQsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7YUFDNUQsQ0FDRixDQUFBO1FBQ0gsQ0FBQztRQUNELEdBQUcsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7WUFDOUIsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1lBQ3ZCLElBQUksT0FBTyxTQUFTLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQ1QsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FDaEUsQ0FBQTtZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsSUFBSSxDQUNUO29CQUNFLENBQUMsRUFBRSxLQUFLO29CQUNSLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO29CQUNsQixFQUFFLEVBQUUsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztvQkFDaEQsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7aUJBQzVELENBQ0YsQ0FBQTtZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtZQUM3QixHQUFHLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7WUFDdkIsSUFBSSxPQUFPLFNBQVMsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxDQUFDLElBQUksQ0FDVCxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUMvRCxDQUFBO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxJQUFJLENBQ1Q7b0JBQ0UsQ0FBQyxFQUFFLElBQUk7b0JBQ1AsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQ2xCLEVBQUUsRUFBRSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO29CQUNoRCxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztpQkFDNUQsQ0FDRixDQUFBO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDckIsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQ3pCLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNWLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7WUFDekIsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUE7WUFDZixJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUNmLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNiLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7WUFDekIsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUE7UUFDbkIsQ0FBQztLQUNGLENBQUMsQ0FDSCxDQUFBO0lBRUQsT0FBTztRQUNMLE1BQU0sRUFBRSxNQUFNO1FBQ2QsS0FBSztRQUNMLElBQUk7UUFDSixNQUFNO1FBQ04sS0FBSztLQUNOLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBd0JkLENBQUMsQ0FPSCxJQUFzQyxFQUFFLENBQWlCLEVBQUUsRUFBRTtJQUM3RCw2RkFBNkY7SUFDN0YsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3RCLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUE7SUFDdkIsSUFBSSxNQUFNLEdBQWlCLEVBQUUsQ0FBQTtJQUM3QixJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQTtRQUNsQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDWixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sR0FBRyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFRLENBQUE7UUFDekQsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ2hCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztRQUNkLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtRQUNaLE1BQU0sRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0RCxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLENBQUMsQ0FBQztnQkFDQSxJQUFJLEVBQUUsU0FBa0I7Z0JBQ3hCLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTTthQUNEO1lBQ3RCLENBQUMsQ0FBQyxTQUFTO0tBQ2QsQ0FBQyxFQUNGLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixLQUFLLENBQUMsS0FBSyxDQUNULE1BQU07UUFDSixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLE1BQWEsQ0FBQztRQUN6QyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQzVCLENBQ0osQ0FBQTtBQUNILENBQUMsQ0FBUSxDQUFBIn0=
|
package/dist/services/query.d.ts
CHANGED
|
@@ -1,164 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import type { Repository } from "@effect-app/infra/services/Repository";
|
|
4
|
-
import type { PersistenceModelType } from "@effect-app/infra/services/Store";
|
|
5
|
-
import type { Ops } from "@effect-app/infra/services/Store/filterApi/proxy";
|
|
6
|
-
import { Effect, S } from "effect-app";
|
|
7
|
-
import type { NoInfer } from "effect/Types";
|
|
8
|
-
export type QAll<TFieldValues extends FieldValues, A = TFieldValues, R = never> = Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues> | QueryProjection<TFieldValues, A, R>;
|
|
9
|
-
export interface Query<TFieldValues extends FieldValues> {
|
|
10
|
-
readonly args: {
|
|
11
|
-
TFieldValues: TFieldValues;
|
|
12
|
-
};
|
|
13
|
-
readonly _id: unique symbol;
|
|
14
|
-
}
|
|
15
|
-
export interface QueryWhere<TFieldValues extends FieldValues> {
|
|
16
|
-
readonly args: {
|
|
17
|
-
TFieldValues: TFieldValues;
|
|
18
|
-
};
|
|
19
|
-
readonly _id2: unique symbol;
|
|
20
|
-
}
|
|
21
|
-
export interface QueryEnd<TFieldValues extends FieldValues> {
|
|
22
|
-
readonly args: {
|
|
23
|
-
TFieldValues: TFieldValues;
|
|
24
|
-
};
|
|
25
|
-
readonly _id3: unique symbol;
|
|
26
|
-
}
|
|
27
|
-
export interface QueryProjection<TFieldValues extends FieldValues, A = TFieldValues, R = never> {
|
|
28
|
-
readonly args: {
|
|
29
|
-
TFieldValues: TFieldValues;
|
|
30
|
-
A: A;
|
|
31
|
-
R: R;
|
|
32
|
-
};
|
|
33
|
-
readonly _id4: unique symbol;
|
|
34
|
-
}
|
|
35
|
-
export type Q<TFieldValues extends FieldValues> = Initial<TFieldValues> | Where<TFieldValues> | And<TFieldValues> | Or<TFieldValues> | Order<TFieldValues, any> | Page<TFieldValues> | Project<any, TFieldValues, any>;
|
|
36
|
-
declare const Initial_base: new <A_1 extends Record<string, any> = {}>(args: import("effect/Types").Equals<A_1, {}> extends true ? void : { readonly [P in keyof A_1 as P extends "_tag" ? never : P]: A_1[P]; }) => Readonly<A_1> & {
|
|
37
|
-
readonly _tag: "value";
|
|
38
|
-
};
|
|
39
|
-
export declare class Initial<TFieldValues extends FieldValues> extends Initial_base<{
|
|
40
|
-
value: "initial";
|
|
41
|
-
}> implements Query<TFieldValues> {
|
|
42
|
-
readonly _id: any;
|
|
43
|
-
readonly args: any;
|
|
44
|
-
constructor();
|
|
45
|
-
}
|
|
46
|
-
declare const Where_base: new <A_1 extends Record<string, any> = {}>(args: import("effect/Types").Equals<A_1, {}> extends true ? void : { readonly [P in keyof A_1 as P extends "_tag" ? never : P]: A_1[P]; }) => Readonly<A_1> & {
|
|
47
|
-
readonly _tag: "where";
|
|
48
|
-
};
|
|
49
|
-
export declare class Where<TFieldValues extends FieldValues> extends Where_base<{
|
|
50
|
-
current: Query<TFieldValues>;
|
|
51
|
-
operation: [string, Ops, any] | [string, any];
|
|
52
|
-
}> implements QueryWhere<TFieldValues> {
|
|
53
|
-
_id2: any;
|
|
54
|
-
_id: any;
|
|
55
|
-
readonly args: any;
|
|
56
|
-
}
|
|
57
|
-
declare const And_base: new <A_1 extends Record<string, any> = {}>(args: import("effect/Types").Equals<A_1, {}> extends true ? void : { readonly [P in keyof A_1 as P extends "_tag" ? never : P]: A_1[P]; }) => Readonly<A_1> & {
|
|
58
|
-
readonly _tag: "and";
|
|
59
|
-
};
|
|
60
|
-
export declare class And<TFieldValues extends FieldValues> extends And_base<{
|
|
61
|
-
current: Query<TFieldValues>;
|
|
62
|
-
operation: [string, Ops, any] | [string, any] | ((q: Query<TFieldValues>) => QueryWhere<TFieldValues>);
|
|
63
|
-
}> implements QueryWhere<TFieldValues> {
|
|
64
|
-
_id2: any;
|
|
65
|
-
_id: any;
|
|
66
|
-
readonly args: any;
|
|
67
|
-
}
|
|
68
|
-
declare const Or_base: new <A_1 extends Record<string, any> = {}>(args: import("effect/Types").Equals<A_1, {}> extends true ? void : { readonly [P in keyof A_1 as P extends "_tag" ? never : P]: A_1[P]; }) => Readonly<A_1> & {
|
|
69
|
-
readonly _tag: "or";
|
|
70
|
-
};
|
|
71
|
-
export declare class Or<TFieldValues extends FieldValues> extends Or_base<{
|
|
72
|
-
current: Query<TFieldValues>;
|
|
73
|
-
operation: [string, Ops, any] | [string, any] | ((q: Query<TFieldValues>) => QueryWhere<TFieldValues>);
|
|
74
|
-
}> implements QueryWhere<TFieldValues> {
|
|
75
|
-
_id2: any;
|
|
76
|
-
_id: any;
|
|
77
|
-
readonly args: any;
|
|
78
|
-
}
|
|
79
|
-
declare const Page_base: new <A_1 extends Record<string, any> = {}>(args: import("effect/Types").Equals<A_1, {}> extends true ? void : { readonly [P in keyof A_1 as P extends "_tag" ? never : P]: A_1[P]; }) => Readonly<A_1> & {
|
|
80
|
-
readonly _tag: "page";
|
|
81
|
-
};
|
|
82
|
-
export declare class Page<TFieldValues extends FieldValues> extends Page_base<{
|
|
83
|
-
current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues>;
|
|
84
|
-
limit?: number | undefined;
|
|
85
|
-
skip?: number | undefined;
|
|
86
|
-
}> implements QueryEnd<TFieldValues> {
|
|
87
|
-
_id3: any;
|
|
88
|
-
readonly args: any;
|
|
89
|
-
}
|
|
90
|
-
declare const Order_base: new <A_1 extends Record<string, any> = {}>(args: import("effect/Types").Equals<A_1, {}> extends true ? void : { readonly [P in keyof A_1 as P extends "_tag" ? never : P]: A_1[P]; }) => Readonly<A_1> & {
|
|
91
|
-
readonly _tag: "order";
|
|
92
|
-
};
|
|
93
|
-
export declare class Order<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>> extends Order_base<{
|
|
94
|
-
current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues>;
|
|
95
|
-
field: TFieldName;
|
|
96
|
-
direction: "ASC" | "DESC";
|
|
97
|
-
}> implements QueryEnd<TFieldValues> {
|
|
98
|
-
_id3: any;
|
|
99
|
-
readonly args: any;
|
|
100
|
-
}
|
|
101
|
-
declare const Project_base: new <A_1 extends Record<string, any> = {}>(args: import("effect/Types").Equals<A_1, {}> extends true ? void : { readonly [P in keyof A_1 as P extends "_tag" ? never : P]: A_1[P]; }) => Readonly<A_1> & {
|
|
102
|
-
readonly _tag: "project";
|
|
103
|
-
};
|
|
104
|
-
export declare class Project<A, TFieldValues extends FieldValues, R> extends Project_base<{
|
|
105
|
-
current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues>;
|
|
106
|
-
schema: S.Schema<A, TFieldValues, R>;
|
|
107
|
-
}> implements QueryProjection<TFieldValues, A, R> {
|
|
108
|
-
_id4: any;
|
|
109
|
-
readonly args: any;
|
|
110
|
-
}
|
|
111
|
-
export declare const where: FilterWhere;
|
|
112
|
-
export declare const and: FilterContinuation;
|
|
113
|
-
export declare const or: FilterContinuation;
|
|
114
|
-
export declare const order: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>>(field: TFieldName, desc?: boolean) => (current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues>) => QueryEnd<TFieldValues>;
|
|
115
|
-
export declare const page: <TFieldValues extends FieldValues>(page: {
|
|
116
|
-
limit?: number;
|
|
117
|
-
skip?: number;
|
|
118
|
-
}) => (current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues>) => QueryEnd<TFieldValues>;
|
|
119
|
-
export declare const project: <TFieldValues extends FieldValues, A, R>(schema: S.Schema<A, TFieldValues, R>) => (current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues>) => QueryProjection<TFieldValues, A, R>;
|
|
120
|
-
export type FilterWheres = {
|
|
121
|
-
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, value: V): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>;
|
|
122
|
-
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, op: "neq", value: V): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>;
|
|
123
|
-
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, op: "gt" | "gte" | "lt" | "lte", value: V): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>;
|
|
124
|
-
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, op: "startsWith" | "endsWith" | "contains" | "notContains" | "notStartsWith" | "notEndsWith", value: V): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>;
|
|
125
|
-
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, op: "in" | "notIn", value: readonly V[]): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>;
|
|
126
|
-
};
|
|
127
|
-
export type FilterWhere = {
|
|
128
|
-
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(f: {
|
|
129
|
-
path: TFieldName;
|
|
130
|
-
op: Ops;
|
|
131
|
-
value: V;
|
|
132
|
-
}): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>;
|
|
133
|
-
} & FilterWheres;
|
|
134
|
-
export type FilterContinuations = {
|
|
135
|
-
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, value: V): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>;
|
|
136
|
-
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, op: "neq", value: V): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>;
|
|
137
|
-
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, op: "gt" | "gte" | "lt" | "lte", value: V): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>;
|
|
138
|
-
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, op: "startsWith" | "endsWith" | "contains" | "notContains" | "notStartsWith" | "notEndsWith", value: V): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>;
|
|
139
|
-
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(path: TFieldName, op: "in" | "notIn", value: readonly V[]): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>;
|
|
140
|
-
};
|
|
141
|
-
export type FilterContinuation = {
|
|
142
|
-
<TFieldValues extends FieldValues>(fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>;
|
|
143
|
-
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(f: {
|
|
144
|
-
path: TFieldName;
|
|
145
|
-
op: Ops;
|
|
146
|
-
value: V;
|
|
147
|
-
}): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>;
|
|
148
|
-
} & FilterContinuations;
|
|
149
|
-
export declare const make: <TFieldValues extends FieldValues>() => Query<TFieldValues>;
|
|
150
|
-
export interface A {
|
|
151
|
-
a: string;
|
|
152
|
-
b: number;
|
|
153
|
-
c: boolean;
|
|
154
|
-
}
|
|
155
|
-
export declare const query: {
|
|
156
|
-
<T extends {
|
|
157
|
-
id: unknown;
|
|
158
|
-
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string, A, R, From extends FieldValues>(repo: Repository<T, PM, Evt, ItemType>, q: QueryProjection<PM extends From ? From : never, A, R>): Effect.Effect<readonly A[], S.ParseResult.ParseError, R>;
|
|
159
|
-
<T extends {
|
|
160
|
-
id: unknown;
|
|
161
|
-
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string, A, R>(repo: Repository<T, PM, Evt, ItemType>, q: QAll<NoInfer<PM>, A, R>): Effect.Effect<readonly T[], never, R>;
|
|
162
|
-
};
|
|
163
|
-
export {};
|
|
1
|
+
export * from "./query/dsl.js";
|
|
2
|
+
export * from "./query/new-kid-interpreter.js";
|
|
164
3
|
//# sourceMappingURL=query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/services/query.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/services/query.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gCAAgC,CAAA"}
|
package/dist/services/query.js
CHANGED
|
@@ -1,157 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export class Initial extends Data.TaggedClass("value") {
|
|
5
|
-
_id;
|
|
6
|
-
args;
|
|
7
|
-
constructor() {
|
|
8
|
-
super({ value: "initial" });
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
export class Where extends Data.TaggedClass("where") {
|
|
12
|
-
_id2;
|
|
13
|
-
_id;
|
|
14
|
-
args;
|
|
15
|
-
}
|
|
16
|
-
export class And extends Data.TaggedClass("and") {
|
|
17
|
-
_id2;
|
|
18
|
-
_id;
|
|
19
|
-
args;
|
|
20
|
-
}
|
|
21
|
-
export class Or extends Data.TaggedClass("or") {
|
|
22
|
-
_id2;
|
|
23
|
-
_id;
|
|
24
|
-
args;
|
|
25
|
-
}
|
|
26
|
-
export class Page extends Data.TaggedClass("page") {
|
|
27
|
-
_id3;
|
|
28
|
-
args;
|
|
29
|
-
}
|
|
30
|
-
export class Order extends Data.TaggedClass("order") {
|
|
31
|
-
_id3;
|
|
32
|
-
args;
|
|
33
|
-
}
|
|
34
|
-
export class Project extends Data.TaggedClass("project") {
|
|
35
|
-
_id4;
|
|
36
|
-
args;
|
|
37
|
-
}
|
|
38
|
-
const wh = (...operation) => (current) => new Where({ current, operation });
|
|
39
|
-
export const where = wh;
|
|
40
|
-
export const and = (...operation) => (current) => new And({ current, operation: typeof operation[0] === "function" ? operation[0] : operation });
|
|
41
|
-
export const or = (...operation) => (current) => new Or({ current, operation: typeof operation[0] === "function" ? operation[0] : operation });
|
|
42
|
-
export const order = (field, desc) => (current) => new Order({ current, field, direction: desc ? "DESC" : "ASC" });
|
|
43
|
-
export const page = ({ limit, skip }) => (current) => new Page({
|
|
44
|
-
current,
|
|
45
|
-
limit,
|
|
46
|
-
skip
|
|
47
|
-
});
|
|
48
|
-
export const project = (schema) => (current) => new Project({ current, schema });
|
|
49
|
-
export const make = () => new Initial();
|
|
50
|
-
const interpret = (_) => {
|
|
51
|
-
const values = [];
|
|
52
|
-
const a = _;
|
|
53
|
-
let schema = undefined;
|
|
54
|
-
let limit = undefined;
|
|
55
|
-
let skip = undefined;
|
|
56
|
-
const order = [];
|
|
57
|
-
const upd = (v) => {
|
|
58
|
-
values.push(...v.filter);
|
|
59
|
-
order.push(...v.order);
|
|
60
|
-
limit = v.limit;
|
|
61
|
-
skip = v.skip;
|
|
62
|
-
schema = v.schema;
|
|
63
|
-
};
|
|
64
|
-
pipe(a, Match.valueTags({
|
|
65
|
-
value: () => {
|
|
66
|
-
// values.push(value)
|
|
67
|
-
},
|
|
68
|
-
where: ({ current, operation }) => {
|
|
69
|
-
upd(interpret(current));
|
|
70
|
-
values.push({
|
|
71
|
-
t: "where",
|
|
72
|
-
path: operation[0],
|
|
73
|
-
op: operation.length === 2 ? "eq" : operation[1],
|
|
74
|
-
value: operation.length === 2 ? operation[1] : operation[2]
|
|
75
|
-
});
|
|
76
|
-
},
|
|
77
|
-
and: ({ current, operation }) => {
|
|
78
|
-
upd(interpret(current));
|
|
79
|
-
if (typeof operation === "function") {
|
|
80
|
-
values.push({ t: "and-scope", result: interpret(operation(make())).filter });
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
values.push({
|
|
84
|
-
t: "and",
|
|
85
|
-
path: operation[0],
|
|
86
|
-
op: operation.length === 2 ? "eq" : operation[1],
|
|
87
|
-
value: operation.length === 2 ? operation[1] : operation[2]
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
or: ({ current, operation }) => {
|
|
92
|
-
upd(interpret(current));
|
|
93
|
-
if (typeof operation === "function") {
|
|
94
|
-
values.push({ t: "or-scope", result: interpret(operation(make())).filter });
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
values.push({
|
|
98
|
-
t: "or",
|
|
99
|
-
path: operation[0],
|
|
100
|
-
op: operation.length === 2 ? "eq" : operation[1],
|
|
101
|
-
value: operation.length === 2 ? operation[1] : operation[2]
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
order: ({ current }) => {
|
|
106
|
-
upd(interpret(current));
|
|
107
|
-
},
|
|
108
|
-
page: (v) => {
|
|
109
|
-
upd(interpret(v.current));
|
|
110
|
-
limit = v.limit;
|
|
111
|
-
skip = v.skip;
|
|
112
|
-
},
|
|
113
|
-
project: (v) => {
|
|
114
|
-
upd(interpret(v.current));
|
|
115
|
-
schema = v.schema;
|
|
116
|
-
}
|
|
117
|
-
}));
|
|
118
|
-
// TODO
|
|
119
|
-
return {
|
|
120
|
-
filter: values,
|
|
121
|
-
limit,
|
|
122
|
-
skip,
|
|
123
|
-
schema,
|
|
124
|
-
order
|
|
125
|
-
};
|
|
126
|
-
};
|
|
127
|
-
export const query = ((repo, q) => {
|
|
128
|
-
// TODO: Native interpreter for each db adapter, instead of the intermediate "new-kid" format
|
|
129
|
-
const a = interpret(q);
|
|
130
|
-
const schema = a.schema;
|
|
131
|
-
let select = [];
|
|
132
|
-
if (schema) {
|
|
133
|
-
let t = schema.ast;
|
|
134
|
-
if (S.AST.isTransform(t)) {
|
|
135
|
-
t = t.from;
|
|
136
|
-
}
|
|
137
|
-
if (S.AST.isTypeLiteral(t)) {
|
|
138
|
-
select = t.propertySignatures.map((_) => _.name);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
return pipe(a.filter.length === 0
|
|
142
|
-
? repo.utils.all
|
|
143
|
-
: repo.utils.filter({
|
|
144
|
-
limit: a.limit,
|
|
145
|
-
skip: a.skip,
|
|
146
|
-
select: Option.getOrUndefined(toNonEmptyArray(select)),
|
|
147
|
-
filter: a.filter.length
|
|
148
|
-
? {
|
|
149
|
-
type: "new-kid",
|
|
150
|
-
build: () => a.filter
|
|
151
|
-
}
|
|
152
|
-
: undefined
|
|
153
|
-
}), Effect.flatMap((_) => Unify.unify(schema
|
|
154
|
-
? repo.utils.parseMany2(_, schema)
|
|
155
|
-
: repo.utils.parseMany(_))));
|
|
156
|
-
});
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQU94RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBc0N4RSxNQUFNLE9BQU8sT0FBMEMsU0FBUSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBdUI7SUFHbkcsR0FBRyxDQUFLO0lBQ1IsSUFBSSxDQUFLO0lBQ2xCO1FBQ0UsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQWtCLEVBQUUsQ0FBQyxDQUFBO0lBQ3RDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxLQUF3QyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUduRjtJQUNBLElBQUksQ0FBTTtJQUNWLEdBQUcsQ0FBSztJQUNDLElBQUksQ0FBSztDQUNuQjtBQUVELE1BQU0sT0FBTyxHQUFzQyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUcvRTtJQUNBLElBQUksQ0FBTTtJQUNWLEdBQUcsQ0FBSztJQUNDLElBQUksQ0FBSztDQUNuQjtBQUVELE1BQU0sT0FBTyxFQUFxQyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUc3RTtJQUNBLElBQUksQ0FBTTtJQUNWLEdBQUcsQ0FBSztJQUNDLElBQUksQ0FBSztDQUNuQjtBQUVELE1BQU0sT0FBTyxJQUF1QyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUlqRjtJQUNBLElBQUksQ0FBTTtJQUNELElBQUksQ0FBSztDQUNuQjtBQUVELE1BQU0sT0FBTyxLQUNYLFNBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENB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
|
|
1
|
+
export * from "./query/dsl.js";
|
|
2
|
+
export * from "./query/new-kid-interpreter.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLGdDQUFnQyxDQUFBIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../../src/services/query.test.ts"],"names":[],"mappings":";;;;;;;;;WAQiF,MAAM,GAAG,SAAS;;;;;;;;;;WAAlB,MAAM,GAAG,SAAS;;;;;;;;;;WAAlB,MAAM,GAAG,SAAS;;;;;;;;;;WAAlB,MAAM,GAAG,SAAS;;AAAnG,qBAAa,QAAS,SAAQ,aAG7B;CAAG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "0.200.
|
|
3
|
+
"version": "0.200.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"@effect-app/core": "0.148.0",
|
|
22
22
|
"@effect-app/fluent-extensions": "0.141.0",
|
|
23
23
|
"effect-app": "0.175.0",
|
|
24
|
-
"@effect-app/
|
|
25
|
-
"@effect-app/
|
|
24
|
+
"@effect-app/infra-adapters": "0.135.0",
|
|
25
|
+
"@effect-app/schema": "0.199.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@babel/cli": "^7.23.9",
|
|
@@ -646,6 +646,26 @@
|
|
|
646
646
|
"default": "./_cjs/services/query.cjs"
|
|
647
647
|
}
|
|
648
648
|
},
|
|
649
|
+
"./services/query/dsl": {
|
|
650
|
+
"import": {
|
|
651
|
+
"types": "./dist/services/query/dsl.d.ts",
|
|
652
|
+
"default": "./dist/services/query/dsl.js"
|
|
653
|
+
},
|
|
654
|
+
"require": {
|
|
655
|
+
"types": "./dist/services/query/dsl.d.ts",
|
|
656
|
+
"default": "./_cjs/services/query/dsl.cjs"
|
|
657
|
+
}
|
|
658
|
+
},
|
|
659
|
+
"./services/query/new-kid-interpreter": {
|
|
660
|
+
"import": {
|
|
661
|
+
"types": "./dist/services/query/new-kid-interpreter.d.ts",
|
|
662
|
+
"default": "./dist/services/query/new-kid-interpreter.js"
|
|
663
|
+
},
|
|
664
|
+
"require": {
|
|
665
|
+
"types": "./dist/services/query/new-kid-interpreter.d.ts",
|
|
666
|
+
"default": "./_cjs/services/query/new-kid-interpreter.cjs"
|
|
667
|
+
}
|
|
668
|
+
},
|
|
649
669
|
"./test.arbs": {
|
|
650
670
|
"import": {
|
|
651
671
|
"types": "./dist/test.arbs.d.ts",
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
1
4
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
5
|
/* eslint-disable @typescript-eslint/ban-types */
|
|
3
6
|
// import type { ParserEnv } from "@effect-app/schema/custom/Parser"
|
|
@@ -99,17 +102,17 @@ export abstract class RepositoryBaseC<
|
|
|
99
102
|
/** @deprecated use q2 */
|
|
100
103
|
abstract readonly mapped: Mapped<PM, Omit<PM, "_etag">>
|
|
101
104
|
abstract readonly q2: {
|
|
102
|
-
<A, R, From extends FieldValues>(
|
|
103
|
-
q: (initial: Query<Omit<PM, "_etag">>) => QueryProjection<Omit<PM, "_etag"> extends From ? From : never, A, R>
|
|
104
|
-
): Effect.Effect<readonly A[], S.ParseResult.ParseError, R>
|
|
105
105
|
<R = never>(
|
|
106
106
|
q: (initial: Query<Omit<PM, "_etag">>) => QAll<Omit<PM, "_etag">, T, R>
|
|
107
107
|
): Effect.Effect<readonly T[], never, R>
|
|
108
|
+
<A, R, From extends FieldValues>(
|
|
109
|
+
q: (initial: Query<Omit<PM, "_etag">>) => QueryProjection<Omit<PM, "_etag"> extends From ? From : never, A, R>
|
|
110
|
+
): Effect.Effect<readonly A[], S.ParseResult.ParseError, R>
|
|
108
111
|
|
|
112
|
+
<R = never>(q: QAll<Omit<PM, "_etag">, T, R>): Effect.Effect<readonly T[], never, R>
|
|
109
113
|
<A, R, From extends FieldValues>(
|
|
110
114
|
q: QueryProjection<Omit<PM, "_etag"> extends From ? From : never, A, R>
|
|
111
115
|
): Effect.Effect<readonly A[], S.ParseResult.ParseError, R>
|
|
112
|
-
<R = never>(q: QAll<Omit<PM, "_etag">, T, R>): Effect.Effect<readonly T[], never, R>
|
|
113
116
|
}
|
|
114
117
|
}
|
|
115
118
|
|
|
@@ -1052,13 +1055,13 @@ export interface RepoFunctions<T extends { id: unknown }, PM extends { id: strin
|
|
|
1052
1055
|
byIdAndSaveWithPure: {
|
|
1053
1056
|
<R, A, E, S2 extends T>(
|
|
1054
1057
|
id: T["id"],
|
|
1055
|
-
pure: Effect<A, E, FixEnv<R,
|
|
1058
|
+
pure: Effect<A, E, FixEnv<R, Evt, T, S2>>
|
|
1056
1059
|
): Effect<
|
|
1057
1060
|
A,
|
|
1058
1061
|
InvalidStateError | OptimisticConcurrencyException | E | NotFoundError<ItemType>,
|
|
1059
1062
|
| Service
|
|
1060
1063
|
| Exclude<R, {
|
|
1061
|
-
env: PureEnv<
|
|
1064
|
+
env: PureEnv<Evt, T, S2>
|
|
1062
1065
|
}>
|
|
1063
1066
|
>
|
|
1064
1067
|
}
|
|
@@ -1105,17 +1108,17 @@ export interface RepoFunctions<T extends { id: unknown }, PM extends { id: strin
|
|
|
1105
1108
|
}
|
|
1106
1109
|
|
|
1107
1110
|
readonly q2: {
|
|
1108
|
-
<A, R, From extends FieldValues>(
|
|
1109
|
-
q: (initial: Query<Omit<PM, "_etag">>) => QueryProjection<Omit<PM, "_etag"> extends From ? From : never, A, R>
|
|
1110
|
-
): Effect.Effect<readonly A[], S.ParseResult.ParseError, Service | R>
|
|
1111
1111
|
<R = never>(
|
|
1112
1112
|
q: (initial: Query<Omit<PM, "_etag">>) => QAll<Omit<PM, "_etag">, T, R>
|
|
1113
1113
|
): Effect.Effect<readonly T[], never, Service | R>
|
|
1114
|
+
<A, R, From extends FieldValues>(
|
|
1115
|
+
q: (initial: Query<Omit<PM, "_etag">>) => QueryProjection<Omit<PM, "_etag"> extends From ? From : never, A, R>
|
|
1116
|
+
): Effect.Effect<readonly A[], S.ParseResult.ParseError, Service | R>
|
|
1114
1117
|
|
|
1118
|
+
<R = never>(q: QAll<Omit<PM, "_etag">, T, R>): Effect.Effect<readonly T[], never, Service | R>
|
|
1115
1119
|
<A, R, From extends FieldValues>(
|
|
1116
1120
|
q: QueryProjection<Omit<PM, "_etag"> extends From ? From : never, A, R>
|
|
1117
1121
|
): Effect.Effect<readonly A[], S.ParseResult.ParseError, Service | R>
|
|
1118
|
-
<R = never>(q: QAll<Omit<PM, "_etag">, T, R>): Effect.Effect<readonly T[], never, Service | R>
|
|
1119
1122
|
}
|
|
1120
1123
|
}
|
|
1121
1124
|
|