@effect-app/infra 0.210.11 → 0.211.1

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 (65) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/_cjs/services/RepositoryBase.cjs +2 -23
  3. package/_cjs/services/RepositoryBase.cjs.map +1 -1
  4. package/_cjs/services/Store/Cosmos/query.cjs +0 -137
  5. package/_cjs/services/Store/Cosmos/query.cjs.map +1 -1
  6. package/_cjs/services/Store/Cosmos.cjs +5 -35
  7. package/_cjs/services/Store/Cosmos.cjs.map +1 -1
  8. package/_cjs/services/Store/Disk.cjs +0 -1
  9. package/_cjs/services/Store/Disk.cjs.map +1 -1
  10. package/_cjs/services/Store/Memory.cjs +0 -6
  11. package/_cjs/services/Store/Memory.cjs.map +1 -1
  12. package/_cjs/services/Store/service.cjs.map +1 -1
  13. package/_cjs/services/Store/utils.cjs +1 -106
  14. package/_cjs/services/Store/utils.cjs.map +1 -1
  15. package/dist/api/routing/match.d.ts +1 -1
  16. package/dist/api/setupRequest.d.ts +1 -1
  17. package/dist/services/QueueMaker/memQueue.d.ts +1 -1
  18. package/dist/services/QueueMaker/sbqueue.d.ts +1 -1
  19. package/dist/services/RepositoryBase.d.ts +3 -60
  20. package/dist/services/RepositoryBase.d.ts.map +1 -1
  21. package/dist/services/RepositoryBase.js +3 -23
  22. package/dist/services/Store/Cosmos/query.d.ts +1 -45
  23. package/dist/services/Store/Cosmos/query.d.ts.map +1 -1
  24. package/dist/services/Store/Cosmos/query.js +1 -145
  25. package/dist/services/Store/Cosmos.d.ts.map +1 -1
  26. package/dist/services/Store/Cosmos.js +18 -61
  27. package/dist/services/Store/Disk.d.ts.map +1 -1
  28. package/dist/services/Store/Disk.js +1 -2
  29. package/dist/services/Store/Memory.d.ts.map +1 -1
  30. package/dist/services/Store/Memory.js +2 -10
  31. package/dist/services/Store/filterApi/query.d.ts +1 -1
  32. package/dist/services/Store/filterApi/query.d.ts.map +1 -1
  33. package/dist/services/Store/service.d.ts +1 -38
  34. package/dist/services/Store/service.d.ts.map +1 -1
  35. package/dist/services/Store/service.js +1 -1
  36. package/dist/services/Store/utils.d.ts +1 -6
  37. package/dist/services/Store/utils.d.ts.map +1 -1
  38. package/dist/services/Store/utils.js +3 -140
  39. package/dist/services/query/dsl.d.ts +2 -2
  40. package/dist/services/query/dsl.d.ts.map +1 -1
  41. package/package.json +2 -12
  42. package/src/services/RepositoryBase.ts +3 -35
  43. package/src/services/Store/Cosmos/query.ts +1 -203
  44. package/src/services/Store/Cosmos.ts +38 -135
  45. package/src/services/Store/Disk.ts +0 -1
  46. package/src/services/Store/Memory.ts +2 -17
  47. package/src/services/Store/Redis.ts.bak +2 -4
  48. package/src/services/Store/filterApi/query.ts +2 -2
  49. package/src/services/Store/service.ts +1 -35
  50. package/src/services/Store/utils.ts +3 -152
  51. package/src/services/query/dsl.ts +4 -4
  52. package/_cjs/filter.cjs +0 -363
  53. package/_cjs/filter.cjs.map +0 -1
  54. package/_cjs/services/Store/Cosmos.test.cjs +0 -55
  55. package/_cjs/services/Store/Cosmos.test.cjs.map +0 -1
  56. package/_cjs/services/Store/codeFilter.test.cjs +0 -63
  57. package/_cjs/services/Store/codeFilter.test.cjs.map +0 -1
  58. package/dist/filter.d.ts +0 -142
  59. package/dist/filter.d.ts.map +0 -1
  60. package/dist/filter.js +0 -248
  61. package/dist/services/Store/Cosmos.test.d.ts.map +0 -1
  62. package/dist/services/Store/codeFilter.test.d.ts.map +0 -1
  63. package/src/filter.ts +0 -420
  64. package/src/services/Store/Cosmos.test.ts +0 -94
  65. package/src/services/Store/codeFilter.test.ts +0 -166
package/dist/filter.js DELETED
@@ -1,248 +0,0 @@
1
- export function makeWhereFilter() {
2
- const f = makeWhereFilter_();
3
- return f;
4
- }
5
- function makeHelpers() {
6
- const helpers = makeHelpers_();
7
- return helpers;
8
- }
9
- function makeHelpers_() {
10
- return {
11
- in(path, value) {
12
- return { key: path, value, t: "in" };
13
- },
14
- notIn(path, value) {
15
- return { key: path, value, t: "not-in" };
16
- },
17
- includes(path, value) {
18
- return { key: path, value, t: "includes" };
19
- },
20
- notIncludes(path, value) {
21
- return { key: path, value, t: "not-includes" };
22
- },
23
- eq(path, value) {
24
- return { key: path, value, t: "eq" };
25
- },
26
- notEq(path, value) {
27
- return { key: path, value, t: "not-eq" };
28
- },
29
- gt(path, value) {
30
- return { key: path, value, t: "gt" };
31
- },
32
- gte(path, value) {
33
- return { key: path, value, t: "gte" };
34
- },
35
- lt(path, value) {
36
- return { key: path, value, t: "lt" };
37
- },
38
- lte(path, value) {
39
- return { key: path, value, t: "lte" };
40
- }
41
- };
42
- }
43
- function makeWhereFilter_() {
44
- const helpers = makeHelpers();
45
- const f = Object.assign(helpers.eq, helpers);
46
- return f;
47
- }
48
- export function $in(_, ...v) {
49
- return $$in(v);
50
- }
51
- export function $notIn(_, ...v) {
52
- return $$notIn(v);
53
- }
54
- export function $is(_, v) {
55
- return $$is(v);
56
- }
57
- export function $includes(_, v) {
58
- return $$includes(v);
59
- }
60
- export function $notIncludes(_, v) {
61
- return $$notIncludes(v);
62
- }
63
- export function $isnt(_, v) {
64
- return $$isnt(v);
65
- }
66
- export function $gt(_, v) {
67
- return $$gt(v);
68
- }
69
- export function $gte(_, v) {
70
- return $$gte(v);
71
- }
72
- export function $lt(_, v) {
73
- return $$lt(v);
74
- }
75
- export function $lte(_, v) {
76
- return $$lte(v);
77
- }
78
- function $is__(v) {
79
- return (_) => $is(_, v);
80
- }
81
- function $isnt__(v) {
82
- return (_) => $isnt(_, v);
83
- }
84
- function $includes__(v) {
85
- return (_) => $includes(_, v);
86
- }
87
- function $notIncludes__(v) {
88
- return (_) => $notIncludes(_, v);
89
- }
90
- function $lt__(v) {
91
- return (_) => $lt(_, v);
92
- }
93
- function $lte__(v) {
94
- return (_) => $lte(_, v);
95
- }
96
- function $gt__(v) {
97
- return (_) => $gt(_, v);
98
- }
99
- function $gte__(v) {
100
- return (_) => $gte(_, v);
101
- }
102
- function $in__(...v) {
103
- return (_) => $in(_, ...v);
104
- }
105
- function $notIn__(...v) {
106
- return (_) => $notIn(_, ...v);
107
- }
108
- function $startsWith__(v) {
109
- return (_) => $startsWith(_, v);
110
- }
111
- function $endsWith__(v) {
112
- return (_) => $endsWith(_, v);
113
- }
114
- function $contains__(v) {
115
- return (_) => $contains(_, v);
116
- }
117
- export const Filters = {
118
- is: $is__,
119
- isnt: $isnt__,
120
- in: $in__,
121
- notIn: $notIn__,
122
- gt: $gt__,
123
- gte: $gte__,
124
- lt: $lt__,
125
- lte: $lte__,
126
- contains: $contains__,
127
- endsWith: $endsWith__,
128
- startsWith: $startsWith__,
129
- includes: $includes__,
130
- notIncludes: $notIncludes__
131
- };
132
- export function $notStartsWith(_, v) {
133
- return $$notStartsWith(v);
134
- }
135
- export function $notEndsWith(_, v) {
136
- return $$notEndsWith(v);
137
- }
138
- export function $notContains(_, v) {
139
- return $$notContains(v);
140
- }
141
- export function $startsWith(_, v) {
142
- return $$startsWith(v);
143
- }
144
- export function $endsWith(_, v) {
145
- return $$endsWith(v);
146
- }
147
- export function $contains(_, v) {
148
- return $$contains(v);
149
- }
150
- function $$in(v) {
151
- return { t: "in", v };
152
- }
153
- function $$notIn(v) {
154
- return { t: "not-in", v };
155
- }
156
- function $$is(v) {
157
- return { t: "eq", v };
158
- }
159
- function $$isnt(v) {
160
- return { t: "not-eq", v };
161
- }
162
- function $$includes(v) {
163
- return { t: "includes", v };
164
- }
165
- function $$notIncludes(v) {
166
- return { t: "not-includes", v };
167
- }
168
- function $$lt(v) {
169
- return { t: "lt", v };
170
- }
171
- function $$lte(v) {
172
- return { t: "lte", v };
173
- }
174
- function $$gt(v) {
175
- return { t: "gt", v };
176
- }
177
- function $$gte(v) {
178
- return { t: "gte", v };
179
- }
180
- function $$contains(v) {
181
- return { t: "contains", v };
182
- }
183
- function $$startsWith(v) {
184
- return { t: "starts-with", v };
185
- }
186
- function $$endsWith(v) {
187
- return { t: "ends-with", v };
188
- }
189
- function $$notContains(v) {
190
- return { t: "not-contains", v };
191
- }
192
- function $$notStartsWith(v) {
193
- return { t: "not-starts-with", v };
194
- }
195
- function $$notEndsWith(v) {
196
- return { t: "not-ends-with", v };
197
- }
198
- function f(p, b) {
199
- if (typeof b === "function")
200
- b = b(undefined);
201
- const obj = typeof b === "object" && b !== null;
202
- return makeFilter(p, obj ? b.v : b, obj ? b.t ?? "eq" : "eq");
203
- }
204
- function makeFilter(path, value, t) {
205
- return { key: path, t, value };
206
- }
207
- export function makeFilters() {
208
- function test(p, v) {
209
- return f(p, v);
210
- }
211
- return test;
212
- }
213
- // export function makeFilter<TFieldValues extends FieldValues>() {
214
- // const f = makeFilter_<TFieldValues>()
215
- // return f as WhereFilterHelper<TFieldValues>
216
- // }
217
- // export interface WhereFilterHelper<TFieldValues extends FieldValues> extends ReturnType<typeof makeFilter_<TFieldValues>> {}
218
- // function makeFilter_<TFieldValues extends FieldValues>() {
219
- // function eq<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(
220
- // path: TFieldName,
221
- // value: V
222
- // ) {
223
- // return { key: path, value, t: "eq" as const }
224
- // }
225
- // const f = Object.assign(eq satisfies (...args: any[]) => Where, {
226
- // in<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(
227
- // path: TFieldName,
228
- // value: readonly V[]
229
- // ) {
230
- // return { key: path, value, t: "in" as const }
231
- // },
232
- // notIn<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(
233
- // path: TFieldName,
234
- // value: readonly V[]
235
- // ) {
236
- // return { key: path, value, t: "not-in" as const }
237
- // },
238
- // eq,
239
- // notEq<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(
240
- // path: TFieldName,
241
- // value: V
242
- // ) {
243
- // return { key: path, value, t: "not-eq" as const }
244
- // }
245
- // } satisfies Record<string, (...args: any[]) => Where>)
246
- // return f
247
- // }
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLFVBQVUsZUFBZTtJQUM3QixNQUFNLENBQUMsR0FBRyxnQkFBZ0IsRUFBZ0IsQ0FBQTtJQUMxQyxPQUFPLENBQThCLENBQUE7QUFDdkMsQ0FBQztBQUVELFNBQVMsV0FBVztJQUNsQixNQUFNLE9BQU8sR0FBRyxZQUFZLEVBQWdCLENBQUE7SUFDNUMsT0FBTyxPQUFxQyxDQUFBO0FBQzlDLENBQUM7QUFJRCxTQUFTLFlBQVk7SUFJbkIsT0FBTztRQUNMLEVBQUUsQ0FFQSxJQUFnQixFQUNoQixLQUFtQjtZQUVuQixPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQWEsRUFBRSxDQUFBO1FBQy9DLENBQUM7UUFDRCxLQUFLLENBRUgsSUFBZ0IsRUFDaEIsS0FBbUI7WUFFbkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFpQixFQUFFLENBQUE7UUFDbkQsQ0FBQztRQUNELFFBQVEsQ0FFTixJQUFnQixFQUNoQixLQUFRO1lBRVIsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxVQUFtQixFQUFFLENBQUE7UUFDckQsQ0FBQztRQUNELFdBQVcsQ0FFVCxJQUFnQixFQUNoQixLQUFRO1lBRVIsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxjQUF1QixFQUFFLENBQUE7UUFDekQsQ0FBQztRQUNELEVBQUUsQ0FFQSxJQUFnQixFQUNoQixLQUFRO1lBRVIsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFhLEVBQUUsQ0FBQTtRQUMvQyxDQUFDO1FBQ0QsS0FBSyxDQUVILElBQWdCLEVB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
@@ -1 +0,0 @@
1
- {"version":3,"file":"Cosmos.test.d.ts","sourceRoot":"","sources":["../../../src/services/Store/Cosmos.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAA;AAI/E,QAAA,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;CAA2B,CAAA;AACnC,MAAM,MAAM,oBAAoB,GAAG,OAAO,EAAE,CAAA;AAE5C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,gBAAgB,oBAEzF;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,CACT,CAAC,EAAE,oBAAoB,KACpB,KAAK,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,EAChC,IAAI,CAAC,EAAE,IAAI,GAAG,KAAK,oBASpB;AAED,KAAK,aAAa,GAAG;IACnB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,KAAK,SAAS,GAAG;IACf,CAAC,EAAE,MAAM,CAAA;IACT,EAAE,EAAE,MAAM,CAAA;IACV,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpB,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;CAC5B,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"codeFilter.test.d.ts","sourceRoot":"","sources":["../../../src/services/Store/codeFilter.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAA;AAU/E,QAAA,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;CAA2B,CAAA;AACnC,MAAM,MAAM,oBAAoB,GAAG,OAAO,EAAE,CAAA;AAE5C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,gBAAgB,oBAEzF;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,CACT,CAAC,EAAE,oBAAoB,KACpB,KAAK,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,EAChC,IAAI,CAAC,EAAE,IAAI,GAAG,KAAK,oBASpB;AAED,KAAK,aAAa,GAAG;IACnB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,KAAK,SAAS,GAAG;IACf,CAAC,EAAE,MAAM,CAAA;IACT,EAAE,EAAE,MAAM,CAAA;IACV,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpB,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;CAC5B,CAAA"}
package/src/filter.ts DELETED
@@ -1,420 +0,0 @@
1
- import type { FieldValues } from "./filter/types/fields.js"
2
- import type { FieldPath, FieldPathValue } from "./filter/types/path/eager.js"
3
- import type { SupportedValues, Where } from "./services/Store.js"
4
-
5
- /**
6
- * the function defaults to "eq", but has additional properties for notEq, in and notIn
7
- */
8
- export interface WhereFilter<TFieldValues extends FieldValues>
9
- extends ReturnType<typeof makeWhereFilter_<TFieldValues>>
10
- {}
11
- export function makeWhereFilter<TFieldValues extends FieldValues>() {
12
- const f = makeWhereFilter_<TFieldValues>()
13
- return f as WhereFilter<TFieldValues>
14
- }
15
-
16
- function makeHelpers<TFieldValues extends FieldValues>() {
17
- const helpers = makeHelpers_<TFieldValues>()
18
- return helpers as WhereHelpers<TFieldValues>
19
- }
20
-
21
- export interface WhereHelpers<TFieldValues extends FieldValues> extends ReturnType<typeof makeHelpers_<TFieldValues>> {}
22
-
23
- function makeHelpers_<TFieldValues extends FieldValues>() {
24
- type Paths = FieldPath<TFieldValues>
25
- type Value<TFieldName extends Paths> = FieldPathValue<TFieldValues, TFieldName>
26
-
27
- return {
28
- in<TFieldName extends Paths, V extends Value<TFieldName>>(
29
- this: void,
30
- path: TFieldName,
31
- value: readonly V[]
32
- ) {
33
- return { key: path, value, t: "in" as const }
34
- },
35
- notIn<TFieldName extends Paths, V extends Value<TFieldName>>(
36
- this: void,
37
- path: TFieldName,
38
- value: readonly V[]
39
- ) {
40
- return { key: path, value, t: "not-in" as const }
41
- },
42
- includes<TFieldName extends Paths, V extends Value<TFieldName>>(
43
- this: void,
44
- path: TFieldName,
45
- value: V
46
- ) {
47
- return { key: path, value, t: "includes" as const }
48
- },
49
- notIncludes<TFieldName extends Paths, V extends Value<TFieldName>>(
50
- this: void,
51
- path: TFieldName,
52
- value: V
53
- ) {
54
- return { key: path, value, t: "not-includes" as const }
55
- },
56
- eq<TFieldName extends Paths, V extends Value<TFieldName>>(
57
- this: void,
58
- path: TFieldName,
59
- value: V
60
- ) {
61
- return { key: path, value, t: "eq" as const }
62
- },
63
- notEq<TFieldName extends Paths, V extends Value<TFieldName>>(
64
- this: void,
65
- path: TFieldName,
66
- value: V
67
- ) {
68
- return { key: path, value, t: "not-eq" as const }
69
- },
70
- gt<TFieldName extends Paths, V extends Value<TFieldName>>(
71
- this: void,
72
- path: TFieldName,
73
- value: V
74
- ) {
75
- return { key: path, value, t: "gt" as const }
76
- },
77
- gte<TFieldName extends Paths, V extends Value<TFieldName>>(
78
- this: void,
79
- path: TFieldName,
80
- value: V
81
- ) {
82
- return { key: path, value, t: "gte" as const }
83
- },
84
- lt<TFieldName extends Paths, V extends Value<TFieldName>>(
85
- this: void,
86
- path: TFieldName,
87
- value: V
88
- ) {
89
- return { key: path, value, t: "lt" as const }
90
- },
91
- lte<TFieldName extends Paths, V extends Value<TFieldName>>(
92
- this: void,
93
- path: TFieldName,
94
- value: V
95
- ) {
96
- return { key: path, value, t: "lte" as const }
97
- }
98
- } satisfies Record<string, (...args: any[]) => Where>
99
- }
100
-
101
- function makeWhereFilter_<TFieldValues extends FieldValues>() {
102
- const helpers = makeHelpers<TFieldValues>()
103
- const f = Object.assign(helpers.eq, helpers)
104
- return f
105
- }
106
-
107
- export type WhereValue<
108
- T extends
109
- | "eq"
110
- | "not-eq"
111
- | "lt"
112
- | "gt"
113
- | "lte"
114
- | "gte"
115
- | "starts-with"
116
- | "ends-with"
117
- | "contains"
118
- | "not-starts-with"
119
- | "not-ends-with"
120
- | "not-contains"
121
- | "in"
122
- | "not-in"
123
- | "includes"
124
- | "not-includes",
125
- A, // extends SupportedValues,
126
- V extends A = A
127
- > = { t: T; v: V }
128
-
129
- export type WhereIn<T extends "in" | "not-in", V, Values extends readonly V[] = readonly V[]> = {
130
- t: T
131
- v: Values
132
- }
133
-
134
- export function $in<A extends SupportedValues, Values extends readonly A[]>(
135
- _: A,
136
- ...v: Values
137
- ): WhereIn<"in", A, Values> {
138
- return $$in(v)
139
- }
140
-
141
- export function $notIn<A extends SupportedValues, Values extends readonly A[]>(
142
- _: A,
143
- ...v: Values
144
- ): WhereIn<"not-in", A, Values> {
145
- return $$notIn(v)
146
- }
147
-
148
- export function $is<A, V extends A>(_: A, v: V): WhereValue<"eq", A, V> {
149
- return $$is(v)
150
- }
151
-
152
- export function $includes<A extends readonly any[], V extends A[number]>(_: A, v: V): WhereValue<"includes", A, V> {
153
- return $$includes(v)
154
- }
155
-
156
- export function $notIncludes<A extends readonly any[], V extends A[number]>(
157
- _: A,
158
- v: V
159
- ): WhereValue<"not-includes", A, V> {
160
- return $$notIncludes(v)
161
- }
162
-
163
- export function $isnt<A, V extends A>(_: A, v: V): WhereValue<"not-eq", A, V> {
164
- return $$isnt(v)
165
- }
166
-
167
- export function $gt<A, V extends A>(_: A, v: V): WhereValue<"gt", A, V> {
168
- return $$gt(v)
169
- }
170
-
171
- export function $gte<A, V extends A>(_: A, v: V): WhereValue<"gte", A, V> {
172
- return $$gte(v)
173
- }
174
-
175
- export function $lt<A, V extends A>(_: A, v: V): WhereValue<"lt", A, V> {
176
- return $$lt(v)
177
- }
178
-
179
- export function $lte<A, V extends A>(_: A, v: V): WhereValue<"lte", A, V> {
180
- return $$lte(v)
181
- }
182
-
183
- function $is__<V extends A, A>(v: V) {
184
- return (_: A) => $is(_, v)
185
- }
186
-
187
- function $isnt__<V extends A, A>(v: V) {
188
- return (_: A) => $isnt(_, v)
189
- }
190
-
191
- function $includes__<V extends A[number], A extends readonly any[]>(v: V) {
192
- return (_: A) => $includes(_, v)
193
- }
194
-
195
- function $notIncludes__<V extends A[number], A extends readonly any[]>(v: V) {
196
- return (_: A) => $notIncludes(_, v)
197
- }
198
-
199
- function $lt__<V extends A, A>(v: V) {
200
- return (_: A) => $lt(_, v)
201
- }
202
-
203
- function $lte__<V extends A, A>(v: V) {
204
- return (_: A) => $lte(_, v)
205
- }
206
-
207
- function $gt__<V extends A, A>(v: V) {
208
- return (_: A) => $gt(_, v)
209
- }
210
-
211
- function $gte__<V extends A, A>(v: V) {
212
- return (_: A) => $gte(_, v)
213
- }
214
-
215
- function $in__<A extends SupportedValues, Values extends readonly A[]>(
216
- ...v: Values
217
- ) {
218
- return (_: A) => $in(_, ...v)
219
- }
220
-
221
- function $notIn__<A extends SupportedValues, Values extends readonly A[]>(
222
- ...v: Values
223
- ) {
224
- return (_: A) => $notIn(_, ...v)
225
- }
226
-
227
- function $startsWith__<V extends A, A extends string>(v: V) {
228
- return (_: A) => $startsWith(_, v)
229
- }
230
-
231
- function $endsWith__<V extends A, A extends string>(v: V) {
232
- return (_: A) => $endsWith(_, v)
233
- }
234
-
235
- function $contains__<V extends A, A extends string>(v: V) {
236
- return (_: A) => $contains(_, v)
237
- }
238
-
239
- export const Filters = {
240
- is: $is__,
241
- isnt: $isnt__,
242
- in: $in__,
243
- notIn: $notIn__,
244
- gt: $gt__,
245
- gte: $gte__,
246
- lt: $lt__,
247
- lte: $lte__,
248
- contains: $contains__,
249
- endsWith: $endsWith__,
250
- startsWith: $startsWith__,
251
- includes: $includes__,
252
- notIncludes: $notIncludes__
253
- }
254
-
255
- export function $notStartsWith<A extends string, V extends A>(_: A, v: V): WhereValue<"not-starts-with", A, V> {
256
- return $$notStartsWith(v)
257
- }
258
-
259
- export function $notEndsWith<A extends string, V extends A>(_: A, v: V): WhereValue<"not-ends-with", A, V> {
260
- return $$notEndsWith(v)
261
- }
262
-
263
- export function $notContains<A extends string, V extends A>(_: A, v: V): WhereValue<"not-contains", A, V> {
264
- return $$notContains(v)
265
- }
266
-
267
- export function $startsWith<A extends string, V extends A>(_: A, v: V): WhereValue<"starts-with", A, V> {
268
- return $$startsWith(v)
269
- }
270
-
271
- export function $endsWith<A extends string, V extends A>(_: A, v: V): WhereValue<"ends-with", A, V> {
272
- return $$endsWith(v)
273
- }
274
-
275
- export function $contains<A extends string, V extends A>(_: A, v: V): WhereValue<"contains", A, V> {
276
- return $$contains(v)
277
- }
278
-
279
- function $$in<L extends readonly any[]>(v: L) {
280
- return { t: "in" as const, v }
281
- }
282
-
283
- function $$notIn<L extends readonly any[]>(v: L) {
284
- return { t: "not-in" as const, v }
285
- }
286
- function $$is<A>(v: A) {
287
- return { t: "eq" as const, v }
288
- }
289
- function $$isnt<A>(v: A) {
290
- return { t: "not-eq" as const, v }
291
- }
292
- function $$includes<A>(v: A) {
293
- return { t: "includes" as const, v }
294
- }
295
- function $$notIncludes<A>(v: A) {
296
- return { t: "not-includes" as const, v }
297
- }
298
-
299
- function $$lt<A>(v: A) {
300
- return { t: "lt" as const, v }
301
- }
302
-
303
- function $$lte<A>(v: A) {
304
- return { t: "lte" as const, v }
305
- }
306
- function $$gt<A>(v: A) {
307
- return { t: "gt" as const, v }
308
- }
309
-
310
- function $$gte<A>(v: A) {
311
- return { t: "gte" as const, v }
312
- }
313
-
314
- function $$contains<A extends string>(v: A) {
315
- return { t: "contains" as const, v }
316
- }
317
- function $$startsWith<A extends string>(v: A) {
318
- return { t: "starts-with" as const, v }
319
- }
320
- function $$endsWith<A extends string>(v: A) {
321
- return { t: "ends-with" as const, v }
322
- }
323
-
324
- function $$notContains<A extends string>(v: A) {
325
- return { t: "not-contains" as const, v }
326
- }
327
- function $$notStartsWith<A extends string>(v: A) {
328
- return { t: "not-starts-with" as const, v }
329
- }
330
- function $$notEndsWith<A extends string>(v: A) {
331
- return { t: "not-ends-with" as const, v }
332
- }
333
-
334
- type ValueType<V> = {
335
- t: "in" | "not-in"
336
- v: readonly V[]
337
- } | { t: "eq" | "not-eq"; v: V }
338
-
339
- type TType<T> = T extends ValueType<any> ? T["t"] : never
340
- type VType<T> = T extends ValueType<any> ? T["v"] : never
341
-
342
- function f(p: string, b: any) {
343
- if (typeof b === "function") b = b(undefined)
344
- const obj = typeof b === "object" && b !== null
345
- return makeFilter(p, obj ? b.v : b, obj ? b.t ?? "eq" : "eq")
346
- }
347
-
348
- function makeFilter<T extends "in" | "not-in" | "eq" | "not-eq">(path: string, value: any, t: T) {
349
- return { key: path, t, value }
350
- }
351
-
352
- type FIL<S, K extends string, T extends "in" | "not-in" | "eq" | "not-eq", V> = {
353
- key: K
354
- t: T
355
- value: V
356
- readonly S: S
357
- }
358
-
359
- export function makeFilters<T extends FieldValues>() {
360
- type Paths = FieldPath<T>
361
- type Value<TFieldName extends Paths> = FieldPathValue<T, TFieldName>
362
-
363
- function test<
364
- TFieldName extends Paths,
365
- A extends Value<TFieldName>,
366
- Val
367
- >(
368
- path: TFieldName,
369
- value: (v: A) => Val
370
- ): FIL<T, string, TType<Val>, VType<Val>>
371
- function test<
372
- TFieldName extends Paths,
373
- A extends Value<TFieldName>
374
- >(
375
- path: TFieldName,
376
- value: A
377
- ): FIL<T, string, "eq", A>
378
- function test(p: string, v: any) {
379
- return f(p, v) as any
380
- }
381
- return test
382
- }
383
-
384
- // export function makeFilter<TFieldValues extends FieldValues>() {
385
- // const f = makeFilter_<TFieldValues>()
386
- // return f as WhereFilterHelper<TFieldValues>
387
- // }
388
-
389
- // export interface WhereFilterHelper<TFieldValues extends FieldValues> extends ReturnType<typeof makeFilter_<TFieldValues>> {}
390
-
391
- // function makeFilter_<TFieldValues extends FieldValues>() {
392
- // function eq<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(
393
- // path: TFieldName,
394
- // value: V
395
- // ) {
396
- // return { key: path, value, t: "eq" as const }
397
- // }
398
- // const f = Object.assign(eq satisfies (...args: any[]) => Where, {
399
- // in<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(
400
- // path: TFieldName,
401
- // value: readonly V[]
402
- // ) {
403
- // return { key: path, value, t: "in" as const }
404
- // },
405
- // notIn<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(
406
- // path: TFieldName,
407
- // value: readonly V[]
408
- // ) {
409
- // return { key: path, value, t: "not-in" as const }
410
- // },
411
- // eq,
412
- // notEq<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(
413
- // path: TFieldName,
414
- // value: V
415
- // ) {
416
- // return { key: path, value, t: "not-eq" as const }
417
- // }
418
- // } satisfies Record<string, (...args: any[]) => Where>)
419
- // return f
420
- // }