@effect-app/infra 1.23.2 → 1.23.4
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 +20 -0
- package/_cjs/api/internal/events.cjs +2 -1
- package/_cjs/api/internal/events.cjs.map +1 -1
- package/_cjs/api/internal/middlewares.cjs +3 -2
- package/_cjs/api/internal/middlewares.cjs.map +1 -1
- package/_cjs/api/routing/defaultErrorHandler.cjs +3 -2
- package/_cjs/api/routing/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/routing/makeRequestHandler.cjs +9 -8
- package/_cjs/api/routing/makeRequestHandler.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +12 -11
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/logger.cjs +9 -0
- package/_cjs/logger.cjs.map +1 -0
- package/_cjs/services/Emailer/Sendgrid.cjs +6 -5
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +3 -2
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/QueueMaker/SQLQueue.cjs +7 -6
- package/_cjs/services/QueueMaker/SQLQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +15 -14
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +15 -14
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +22 -22
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos/query.cjs +2 -3
- package/_cjs/services/Store/Cosmos/query.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +24 -23
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +6 -6
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +7 -6
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +5 -5
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/dist/api/internal/events.d.ts.map +1 -1
- package/dist/api/internal/events.js +3 -2
- package/dist/api/internal/middlewares.d.ts.map +1 -1
- package/dist/api/internal/middlewares.js +4 -3
- package/dist/api/routing/defaultErrorHandler.d.ts.map +1 -1
- package/dist/api/routing/defaultErrorHandler.js +4 -3
- package/dist/api/routing/makeRequestHandler.d.ts.map +1 -1
- package/dist/api/routing/makeRequestHandler.js +10 -9
- package/dist/errorReporter.d.ts +1 -1
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +12 -11
- package/dist/logger.d.ts +8 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +3 -0
- package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/services/Emailer/Sendgrid.js +8 -7
- package/dist/services/Emailer/fake.d.ts.map +1 -1
- package/dist/services/Emailer/fake.js +5 -4
- package/dist/services/QueueMaker/SQLQueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/SQLQueue.js +9 -8
- package/dist/services/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/memQueue.js +17 -16
- package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/sbqueue.js +17 -16
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +23 -23
- package/dist/services/Store/Cosmos/query.d.ts.map +1 -1
- package/dist/services/Store/Cosmos/query.js +3 -4
- package/dist/services/Store/Cosmos.d.ts.map +1 -1
- package/dist/services/Store/Cosmos.js +24 -23
- package/dist/services/Store/Disk.d.ts.map +1 -1
- package/dist/services/Store/Disk.js +8 -8
- package/dist/services/Store/Memory.d.ts.map +1 -1
- package/dist/services/Store/Memory.js +8 -7
- package/dist/services/Store/utils.d.ts.map +1 -1
- package/dist/services/Store/utils.js +5 -5
- package/examples/query.ts +3 -3
- package/package.json +15 -5
- package/src/api/internal/events.ts +2 -1
- package/src/api/internal/middlewares.ts +3 -2
- package/src/api/routing/defaultErrorHandler.ts +3 -2
- package/src/api/routing/makeRequestHandler.ts +9 -8
- package/src/api/writeDocs.ts.bak +1 -1
- package/src/errorReporter.ts +31 -33
- package/src/logger.ts +3 -0
- package/src/services/Emailer/Sendgrid.ts +14 -12
- package/src/services/Emailer/fake.ts +4 -3
- package/src/services/QueueMaker/SQLQueue.ts +18 -19
- package/src/services/QueueMaker/memQueue.ts +33 -36
- package/src/services/QueueMaker/sbqueue.ts +38 -41
- package/src/services/RepositoryBase.ts +40 -43
- package/src/services/Store/Cosmos/query.ts +6 -5
- package/src/services/Store/Cosmos.ts +75 -90
- package/src/services/Store/Disk.ts +12 -14
- package/src/services/Store/Memory.ts +7 -6
- package/src/services/Store/utils.ts +10 -14
- package/test/query.test.ts +56 -61
- package/tsconfig.json +0 -1
package/test/query.test.ts
CHANGED
|
@@ -96,30 +96,29 @@ class SomethingRepo extends RepositoryDefaultImpl<SomethingRepo>()(
|
|
|
96
96
|
|
|
97
97
|
it("works with repo", () =>
|
|
98
98
|
Effect
|
|
99
|
-
.gen(function*(
|
|
100
|
-
yield*
|
|
99
|
+
.gen(function*() {
|
|
100
|
+
yield* SomethingRepo.saveAndPublish(items)
|
|
101
101
|
|
|
102
|
-
const q1 = yield*
|
|
102
|
+
const q1 = yield* SomethingRepo.query(() => q)
|
|
103
103
|
// same as above, but with the `flow` helper
|
|
104
|
-
const q2 = yield*
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
S.
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
(_) => Effect.andThen(SomeService, _)
|
|
119
|
-
)
|
|
104
|
+
const q2 = yield* SomethingRepo
|
|
105
|
+
.query(flow(
|
|
106
|
+
where("displayName", "Verona"),
|
|
107
|
+
or(
|
|
108
|
+
where("displayName", "Riley"),
|
|
109
|
+
and("n", "gt", "2021-01-01T00:00:00Z") // TODO: work with To type translation, so Date?
|
|
110
|
+
),
|
|
111
|
+
order("displayName"),
|
|
112
|
+
page({ take: 10 }),
|
|
113
|
+
project(
|
|
114
|
+
S.transformToOrFail(
|
|
115
|
+
S.Struct({ displayName: S.String }), // for projection performance benefit, this should be limited to the fields interested, and leads to SELECT fields
|
|
116
|
+
S.Struct(Struct.pick(Something.fields, "displayName")),
|
|
117
|
+
(_) => Effect.andThen(SomeService, _)
|
|
120
118
|
)
|
|
121
|
-
)
|
|
122
|
-
|
|
119
|
+
)
|
|
120
|
+
))
|
|
121
|
+
|
|
123
122
|
expect(q1).toEqual(items.slice(0, 2).toReversed().map(Struct.pick("id", "displayName")))
|
|
124
123
|
expect(q2).toEqual(items.slice(0, 2).toReversed().map(Struct.pick("displayName")))
|
|
125
124
|
})
|
|
@@ -127,52 +126,48 @@ it("works with repo", () =>
|
|
|
127
126
|
|
|
128
127
|
it("collect", () =>
|
|
129
128
|
Effect
|
|
130
|
-
.gen(function*(
|
|
131
|
-
yield*
|
|
129
|
+
.gen(function*() {
|
|
130
|
+
yield* SomethingRepo.saveAndPublish(items)
|
|
132
131
|
|
|
133
132
|
expect(
|
|
134
|
-
yield*
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
_.displayName
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
))
|
|
152
|
-
)
|
|
133
|
+
yield* SomethingRepo
|
|
134
|
+
.query(flow(
|
|
135
|
+
where("displayName", "Riley"), // TODO: work with To type translation, so Date?
|
|
136
|
+
// one,
|
|
137
|
+
project(
|
|
138
|
+
S.transformTo(
|
|
139
|
+
// TODO: sample case with narrowing down a union?
|
|
140
|
+
S.encodedSchema(S.Struct(Struct.pick(Something.fields, "displayName", "n"))), // for projection performance benefit, this should be limited to the fields interested, and leads to SELECT fields
|
|
141
|
+
S.typeSchema(S.Option(S.String)),
|
|
142
|
+
(_) =>
|
|
143
|
+
_.displayName === "Riley" && _.n === "2020-01-01T00:00:00.000Z"
|
|
144
|
+
? Option.some(`${_.displayName}-${_.n}`)
|
|
145
|
+
: Option.none()
|
|
146
|
+
),
|
|
147
|
+
"collect"
|
|
148
|
+
)
|
|
149
|
+
))
|
|
153
150
|
)
|
|
154
151
|
.toEqual(["Riley-2020-01-01T00:00:00.000Z"])
|
|
155
152
|
|
|
156
153
|
expect(
|
|
157
|
-
yield*
|
|
158
|
-
|
|
159
|
-
.
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
_.union.
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
))
|
|
175
|
-
)
|
|
154
|
+
yield* SomethingRepo
|
|
155
|
+
.query(flow(
|
|
156
|
+
where("union._tag", "string"),
|
|
157
|
+
one,
|
|
158
|
+
project(
|
|
159
|
+
S.transformTo(
|
|
160
|
+
// TODO: sample case with narrowing down a union?
|
|
161
|
+
S.encodedSchema(S.Struct(Struct.pick(Something.fields, "union"))), // for projection performance benefit, this should be limited to the fields interested, and leads to SELECT fields
|
|
162
|
+
S.typeSchema(S.Option(S.String)),
|
|
163
|
+
(_) =>
|
|
164
|
+
_.union._tag === "string"
|
|
165
|
+
? Option.some(_.union.value)
|
|
166
|
+
: Option.none()
|
|
167
|
+
),
|
|
168
|
+
"collect"
|
|
169
|
+
)
|
|
170
|
+
))
|
|
176
171
|
)
|
|
177
172
|
.toEqual("hi")
|
|
178
173
|
})
|