@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.
Files changed (32) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/_cjs/services/RepositoryBase.cjs +3 -0
  3. package/_cjs/services/RepositoryBase.cjs.map +1 -1
  4. package/_cjs/services/query/dsl.cjs +79 -0
  5. package/_cjs/services/query/dsl.cjs.map +1 -0
  6. package/_cjs/services/query/new-kid-interpreter.cjs +129 -0
  7. package/_cjs/services/query/new-kid-interpreter.cjs.map +1 -0
  8. package/_cjs/services/query.cjs +20 -200
  9. package/_cjs/services/query.cjs.map +1 -1
  10. package/_cjs/services/query.test.cjs +34 -0
  11. package/_cjs/services/query.test.cjs.map +1 -0
  12. package/dist/services/QueueMaker/memQueue.d.ts +1 -1
  13. package/dist/services/QueueMaker/sbqueue.d.ts +1 -1
  14. package/dist/services/RepositoryBase.d.ts +10 -10
  15. package/dist/services/RepositoryBase.d.ts.map +1 -1
  16. package/dist/services/RepositoryBase.js +4 -1
  17. package/dist/services/query/dsl.d.ts +127 -0
  18. package/dist/services/query/dsl.d.ts.map +1 -0
  19. package/dist/services/query/dsl.js +38 -0
  20. package/dist/services/query/new-kid-interpreter.d.ts +15 -0
  21. package/dist/services/query/new-kid-interpreter.d.ts.map +1 -0
  22. package/dist/services/query/new-kid-interpreter.js +110 -0
  23. package/dist/services/query.d.ts +2 -163
  24. package/dist/services/query.d.ts.map +1 -1
  25. package/dist/services/query.js +3 -157
  26. package/dist/services/query.test.d.ts.map +1 -0
  27. package/package.json +23 -3
  28. package/src/services/RepositoryBase.ts +13 -10
  29. package/src/services/query/dsl.ts +290 -0
  30. package/src/services/query/new-kid-interpreter.ts +169 -0
  31. package/src/services/query.test.ts +37 -0
  32. 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=
@@ -1,164 +1,3 @@
1
- import type { FieldValues } from "@effect-app/infra/filter/types";
2
- import type { FieldPath, FieldPathValue } from "@effect-app/infra/filter/types/path/eager";
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":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/services/query.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gCAAgC,CAAA"}
@@ -1,157 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { toNonEmptyArray } from "@effect-app/core/Array";
3
- import { Data, Effect, Match, Option, pipe, S, Unify } from "effect-app";
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.1",
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/schema": "0.199.0",
25
- "@effect-app/infra-adapters": "0.135.0"
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, never, T, S2>>
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<never, T, S2>
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