@effect-app/infra 0.85.0-next.3 → 0.85.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -25
- package/_cjs/_ext/Array.cjs +2 -3
- package/_cjs/_ext/Array.cjs.map +1 -1
- package/_cjs/api/defaultErrorHandler.cjs +10 -11
- package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.cjs +2 -3
- package/_cjs/api/express/makeJsonSchema.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.test.cjs +2 -2
- package/_cjs/api/express/makeJsonSchema.test.cjs.map +1 -1
- package/_cjs/api/express/makeOpenApiSpecs.cjs +4 -6
- package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
- package/_cjs/api/express/schema/routing.cjs +22 -23
- package/_cjs/api/express/schema/routing.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +2 -2
- package/_cjs/api/setupRequest.cjs +4 -5
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/api/writeDocs.cjs +4 -6
- package/_cjs/api/writeDocs.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +11 -12
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/errors.cjs +8 -8
- package/_cjs/errors.cjs.map +1 -1
- package/_cjs/instrument.cjs +1 -2
- package/_cjs/instrument.cjs.map +1 -1
- package/_cjs/logger/jsonLogger.cjs +10 -11
- package/_cjs/logger/jsonLogger.cjs.map +1 -1
- package/_cjs/logger/logFmtLogger.cjs +5 -5
- package/_cjs/logger/logFmtLogger.cjs.map +1 -1
- package/_cjs/logger/shared.cjs +4 -4
- package/_cjs/logger/shared.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +7 -8
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +12 -14
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +4 -5
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +29 -31
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +5 -6
- package/_cjs/services/Operations/service.cjs.map +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +6 -7
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +17 -18
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +15 -16
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +16 -17
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +33 -35
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +20 -15
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +46 -49
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +18 -19
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +39 -43
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +14 -16
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +1 -1
- package/_cjs/services/Store/index.cjs +6 -7
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs +1 -1
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +13 -13
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +17 -19
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +8 -9
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +9 -11
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +18 -20
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +10 -11
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/shared.cjs +5 -5
- package/_cjs/services/simpledb/shared.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +17 -18
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/_src/api/authorization.jwt.ts +1 -1
- package/_src/api/defaultErrorHandler.ts +2 -2
- package/_src/api/express/routing.ts.bak +8 -8
- package/_src/api/express/schema/routing.ts +59 -37
- package/_src/api/setupRequest.ts +11 -10
- package/_src/errorReporter.ts +1 -1
- package/_src/services/Emailer/Sendgrid.ts +1 -1
- package/_src/services/Operations/live.ts +5 -5
- package/_src/services/QueueMaker/errors.ts +1 -1
- package/_src/services/QueueMaker/memQueue.ts +2 -2
- package/_src/services/QueueMaker/sbqueue.ts +1 -1
- package/_src/services/Repository.ts +9 -9
- package/_src/services/RepositoryBase.ts +6 -8
- package/_src/services/RequestContextContainer.ts +12 -7
- package/_src/services/Store/Cosmos.ts +12 -17
- package/_src/services/Store/Disk.ts +4 -4
- package/_src/services/Store/Memory.ts +4 -4
- package/_src/services/Store/Redis.ts +1 -1
- package/_src/services/Store/index.test.ts.bak +5 -5
- package/_src/services/Store/index.ts +1 -1
- package/_src/services/Store/utils.ts +16 -16
- package/_src/services/simpledb/diskdb.ts +1 -1
- package/_src/services/simpledb/memdb.ts +1 -1
- package/_src/services/simpledb/redisdb.ts +1 -1
- package/_src/services/simpledb/shared.ts +1 -1
- package/_src/services/simpledb/simpledb.ts +3 -3
- package/dist/RequestContext.d.ts +4 -4
- package/dist/_ext/Array.d.ts +1 -1
- package/dist/_ext/Array.d.ts.map +1 -1
- package/dist/_ext/Array.js +3 -4
- package/dist/api/codec.d.ts +1 -1
- package/dist/api/codec.d.ts.map +1 -1
- package/dist/api/defaultErrorHandler.d.ts +2 -2
- package/dist/api/defaultErrorHandler.d.ts.map +1 -1
- package/dist/api/defaultErrorHandler.js +11 -13
- package/dist/api/express/makeJsonSchema.d.ts +2 -2
- package/dist/api/express/makeJsonSchema.d.ts.map +1 -1
- package/dist/api/express/makeJsonSchema.js +3 -4
- package/dist/api/express/makeOpenApiSpecs.d.ts +1 -1
- package/dist/api/express/makeOpenApiSpecs.js +5 -7
- package/dist/api/express/schema/routing.d.ts +22 -7
- package/dist/api/express/schema/routing.d.ts.map +1 -1
- package/dist/api/express/schema/routing.js +23 -24
- package/dist/api/reportError.d.ts +5 -5
- package/dist/api/reportError.d.ts.map +1 -1
- package/dist/api/reportError.js +2 -2
- package/dist/api/setupRequest.d.ts +2 -2
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +7 -7
- package/dist/api/writeDocs.d.ts +1 -1
- package/dist/api/writeDocs.d.ts.map +1 -1
- package/dist/api/writeDocs.js +5 -7
- package/dist/errorReporter.d.ts +3 -3
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +12 -13
- package/dist/errors.d.ts +7 -7
- package/dist/errors.js +9 -9
- package/dist/instrument.d.ts +1 -1
- package/dist/instrument.d.ts.map +1 -1
- package/dist/instrument.js +2 -3
- package/dist/logger/jsonLogger.d.ts +2 -2
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +11 -12
- package/dist/logger/logFmtLogger.d.ts +2 -2
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +6 -6
- package/dist/logger/shared.d.ts +1 -1
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +5 -5
- package/dist/rateLimit.d.ts +3 -3
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +8 -9
- package/dist/services/Emailer/Sendgrid.d.ts +1 -1
- package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/services/Emailer/Sendgrid.js +15 -17
- package/dist/services/Emailer/fake.d.ts +1 -1
- package/dist/services/Emailer/fake.d.ts.map +1 -1
- package/dist/services/Emailer/fake.js +5 -6
- package/dist/services/Emailer/service.d.ts +3 -3
- package/dist/services/Operations/live.d.ts +1 -1
- package/dist/services/Operations/live.d.ts.map +1 -1
- package/dist/services/Operations/live.js +37 -39
- package/dist/services/Operations/service.d.ts +8 -8
- package/dist/services/Operations/service.d.ts.map +1 -1
- package/dist/services/Operations/service.js +12 -13
- package/dist/services/QueueMaker/errors.d.ts +3 -3
- package/dist/services/QueueMaker/errors.d.ts.map +1 -1
- package/dist/services/QueueMaker/errors.js +6 -7
- package/dist/services/QueueMaker/memQueue.d.ts +3 -3
- package/dist/services/QueueMaker/memQueue.js +16 -17
- package/dist/services/QueueMaker/sbqueue.d.ts +4 -4
- package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/sbqueue.js +15 -16
- package/dist/services/Repository.d.ts +31 -31
- package/dist/services/Repository.d.ts.map +1 -1
- package/dist/services/Repository.js +17 -18
- package/dist/services/RepositoryBase.d.ts +12 -11
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +35 -37
- package/dist/services/RequestContextContainer.d.ts +14 -11
- package/dist/services/RequestContextContainer.d.ts.map +1 -1
- package/dist/services/RequestContextContainer.js +19 -18
- package/dist/services/Store/Cosmos.d.ts +3 -3
- package/dist/services/Store/Cosmos.d.ts.map +1 -1
- package/dist/services/Store/Cosmos.js +51 -54
- package/dist/services/Store/Disk.d.ts +3 -3
- package/dist/services/Store/Disk.d.ts.map +1 -1
- package/dist/services/Store/Disk.js +19 -20
- package/dist/services/Store/Memory.d.ts +5 -5
- package/dist/services/Store/Memory.d.ts.map +1 -1
- package/dist/services/Store/Memory.js +41 -45
- package/dist/services/Store/Redis.d.ts +3 -3
- package/dist/services/Store/Redis.d.ts.map +1 -1
- package/dist/services/Store/Redis.js +15 -17
- package/dist/services/Store/index.d.ts +1 -1
- package/dist/services/Store/index.d.ts.map +1 -1
- package/dist/services/Store/index.js +7 -8
- package/dist/services/Store/service.d.ts +8 -8
- package/dist/services/Store/service.d.ts.map +1 -1
- package/dist/services/Store/service.js +2 -2
- package/dist/services/Store/utils.d.ts +2 -2
- package/dist/services/Store/utils.d.ts.map +1 -1
- package/dist/services/Store/utils.js +21 -21
- package/dist/services/simpledb/cosmosdb.d.ts +5 -5
- package/dist/services/simpledb/cosmosdb.js +17 -19
- package/dist/services/simpledb/diskdb.d.ts +4 -4
- package/dist/services/simpledb/diskdb.js +9 -10
- package/dist/services/simpledb/memdb.d.ts +4 -4
- package/dist/services/simpledb/memdb.js +11 -13
- package/dist/services/simpledb/mongodb.d.ts +5 -5
- package/dist/services/simpledb/mongodb.js +14 -16
- package/dist/services/simpledb/redisdb.d.ts +4 -4
- package/dist/services/simpledb/redisdb.js +11 -12
- package/dist/services/simpledb/shared.d.ts +4 -4
- package/dist/services/simpledb/shared.js +6 -6
- package/dist/services/simpledb/simpledb.d.ts +6 -6
- package/dist/services/simpledb/simpledb.d.ts.map +1 -1
- package/dist/services/simpledb/simpledb.js +15 -16
- package/package.json +5 -25
- package/_cjs/api/express/schema/requestHandler.cjs +0 -172
- package/_cjs/api/express/schema/requestHandler.cjs.map +0 -1
- package/_cjs/api/routing.cjs +0 -278
- package/_cjs/api/routing.cjs.map +0 -1
- package/_src/api/express/schema/requestHandler.ts +0 -372
- package/_src/api/routing.ts +0 -660
- package/dist/api/express/schema/requestHandler.d.ts +0 -71
- package/dist/api/express/schema/requestHandler.d.ts.map +0 -1
- package/dist/api/express/schema/requestHandler.js +0 -140
- package/dist/api/routing.d.ts +0 -103
- package/dist/api/routing.d.ts.map +0 -1
- package/dist/api/routing.js +0 -265
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect-app/prelude/_ext/misc";
|
|
2
|
-
import * as tsplus_module_2 from "effect/
|
|
2
|
+
import * as tsplus_module_2 from "effect/Option";
|
|
3
3
|
import * as tsplus_module_3 from "effect/Effect";
|
|
4
|
-
import * as tsplus_module_4 from "effect/Option";
|
|
5
|
-
import * as tsplus_module_5 from "effect/
|
|
4
|
+
import * as tsplus_module_4 from "@effect-app/core/Option";
|
|
5
|
+
import * as tsplus_module_5 from "effect/ReadonlyArray";
|
|
6
6
|
import { get } from "@effect-app/prelude/utils";
|
|
7
7
|
import { OptimisticConcurrencyException } from "../../errors.js";
|
|
8
8
|
import objectHash from "object-hash";
|
|
@@ -10,7 +10,7 @@ export const makeETag = ({ _etag, ...e }) => ({
|
|
|
10
10
|
...e,
|
|
11
11
|
_etag: objectHash(e)
|
|
12
12
|
});
|
|
13
|
-
export const makeUpdateETag = (type) => (e, current) => tsplus_module_3.
|
|
13
|
+
export const makeUpdateETag = (type) => (e, current) => tsplus_module_3.gen(function* ($) {
|
|
14
14
|
if (e._etag) {
|
|
15
15
|
yield* $(tsplus_module_1.encaseMaybeInEffect_(current, () => new OptimisticConcurrencyException({ type, id: e.id, current: "", found: e._etag })));
|
|
16
16
|
}
|
|
@@ -29,19 +29,19 @@ export function codeFilter(filter) {
|
|
|
29
29
|
return (x) => filter.type === "startsWith"
|
|
30
30
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
31
|
? lowercaseIfString(x[filter.by]).startsWith(filter.value.toLowerCase())
|
|
32
|
-
?
|
|
33
|
-
: tsplus_module_4.
|
|
32
|
+
? tsplus_module_2.some(x)
|
|
33
|
+
: tsplus_module_4.none
|
|
34
34
|
: filter.type === "endsWith"
|
|
35
35
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
36
|
? lowercaseIfString(x[filter.by]).endsWith(filter.value.toLowerCase())
|
|
37
|
-
?
|
|
38
|
-
: tsplus_module_4.
|
|
37
|
+
? tsplus_module_2.some(x)
|
|
38
|
+
: tsplus_module_4.none
|
|
39
39
|
: filter.type === "contains"
|
|
40
40
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
41
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
42
42
|
? lowercaseIfString(x[filter.by]).includes(filter.value.toLowerCase())
|
|
43
|
-
?
|
|
44
|
-
: tsplus_module_4.
|
|
43
|
+
? tsplus_module_2.some(x)
|
|
44
|
+
: tsplus_module_4.none
|
|
45
45
|
: filter.type === "join_find"
|
|
46
46
|
? filter.keys.some((k) => {
|
|
47
47
|
const value = get(x, k);
|
|
@@ -49,8 +49,8 @@ export function codeFilter(filter) {
|
|
|
49
49
|
return (value
|
|
50
50
|
&& value.some((v) => compareCaseInsensitive(v[filter.valueKey], filter.value)));
|
|
51
51
|
})
|
|
52
|
-
?
|
|
53
|
-
: tsplus_module_4.
|
|
52
|
+
? tsplus_module_2.some(x)
|
|
53
|
+
: tsplus_module_4.none
|
|
54
54
|
// TODO: support mixed or/and
|
|
55
55
|
: filter.mode === "or"
|
|
56
56
|
? filter
|
|
@@ -87,8 +87,8 @@ export function codeFilter(filter) {
|
|
|
87
87
|
return compareCaseInsensitive(k, p.value);
|
|
88
88
|
}
|
|
89
89
|
})
|
|
90
|
-
?
|
|
91
|
-
: tsplus_module_4.
|
|
90
|
+
? tsplus_module_2.some(x)
|
|
91
|
+
: tsplus_module_4.none
|
|
92
92
|
: filter
|
|
93
93
|
.where
|
|
94
94
|
.every((p) => {
|
|
@@ -131,8 +131,8 @@ export function codeFilter(filter) {
|
|
|
131
131
|
: compareCaseInsensitive(k, p.value);
|
|
132
132
|
}
|
|
133
133
|
})
|
|
134
|
-
?
|
|
135
|
-
: tsplus_module_4.
|
|
134
|
+
? tsplus_module_2.some(x)
|
|
135
|
+
: tsplus_module_4.none;
|
|
136
136
|
}
|
|
137
137
|
export function codeFilterJoinSelect(filter) {
|
|
138
138
|
return (x) => tsplus_module_5.filterMap(filter
|
|
@@ -140,12 +140,12 @@ export function codeFilterJoinSelect(filter) {
|
|
|
140
140
|
const value = get(x, k);
|
|
141
141
|
// we mimic the behavior of cosmosdb; if the shape in db does not match what we're looking for, we imagine false hit
|
|
142
142
|
return value
|
|
143
|
-
?
|
|
143
|
+
? tsplus_module_2.some(tsplus_module_5.filterMap(value, (v) =>
|
|
144
144
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
145
145
|
compareCaseInsensitive(v[filter.valueKey], filter.value)
|
|
146
|
-
?
|
|
147
|
-
: tsplus_module_4.
|
|
148
|
-
: tsplus_module_4.
|
|
146
|
+
? tsplus_module_2.some({ ...v, _rootId: x.id })
|
|
147
|
+
: tsplus_module_4.none))
|
|
148
|
+
: tsplus_module_4.none;
|
|
149
149
|
})
|
|
150
150
|
.flatMap((_) => _);
|
|
151
151
|
}
|
|
@@ -180,4 +180,4 @@ function gteCaseInsensitive(valA, valB) {
|
|
|
180
180
|
? valA.toLowerCase() >= valB.toLowerCase()
|
|
181
181
|
: valA >= valB;
|
|
182
182
|
}
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1N0b3JlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRS9DLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSWhFLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQTtBQUVwQyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FDdEIsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUssRUFDZixFQUFFLENBQ0wsQ0FBQztJQUNDLEdBQUcsQ0FBQztJQUNKLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0NBQ3JCLENBQVEsQ0FBQTtBQUNYLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FDekIsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQXdELENBQUksRUFBRSxPQUFrQixFQUFFLEVBQUUsQ0FDcEcsZ0JBQUEsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO0lBQ3BCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1osS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNOLHFDQUFBLE9BQU8sRUFDVyxHQUFHLEVBQUUsQ0FBQyxJQUFJLDhCQUE4QixDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQzdHLENBQUE7SUFDSCxDQUFDO0lBQ0QsSUFBSSx1QkFBQSxPQUFPLENBQVMsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ2Is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
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1N0b3JlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRS9DLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSWhFLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQTtBQUVwQyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FDdEIsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUssRUFDZixFQUFFLENBQ0wsQ0FBQztJQUNDLEdBQUcsQ0FBQztJQUNKLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0NBQ3JCLENBQVEsQ0FBQTtBQUNYLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FDekIsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQXdELENBQUksRUFBRSxPQUFrQixFQUFFLEVBQUUsQ0FDcEcsb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztJQUNwQixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNaLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDTixxQ0FBQSxPQUFPLEVBQ1csR0FBRyxFQUFFLENBQUMsSUFBSSw4QkFBOEIsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUM3RyxDQUFBO0lBQ0gsQ0FBQztJQUNELElBQUksdUJBQUEsT0FBTyxDQUFTLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNiLElBQUksOEJBQThCLENBQUM7WUFD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
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Data } from "effect/Data";
|
|
2
2
|
import { Effect } from "effect/Effect";
|
|
3
|
-
import { Option } from "effect/Option";
|
|
3
|
+
import { Option } from "@effect-app/core/Option";
|
|
4
4
|
import type { IndexingPolicy } from "@azure/cosmos";
|
|
5
5
|
import * as Cosmos from "@effect-app/infra-adapters/cosmos-client";
|
|
6
6
|
import type { DBRecord } from "./shared.js";
|
|
7
7
|
import { OptimisticLockException } from "./shared.js";
|
|
8
8
|
import * as simpledb from "./simpledb.js";
|
|
9
|
-
export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => Effect<REncode, never, EA>, decode: (d: EA) => Effect<RDecode, EDecode, A>, indexes: IndexingPolicy) => import("effect").Effect<Cosmos.CosmosClient, unknown, {
|
|
10
|
-
find: (id: string) => import("effect").Effect<Cosmos.CosmosClient | simpledb.RecordCache | RDecode, unknown, import("effect").Option<A>>;
|
|
11
|
-
findBy: (parameters: Record<string, string>) => import("effect").Effect<Cosmos.CosmosClient, unknown, import("effect").Option<any>>;
|
|
12
|
-
save: (record: A) => import("effect").Effect<Cosmos.CosmosClient | simpledb.RecordCache | REncode, OptimisticLockException, A>;
|
|
9
|
+
export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => Effect<REncode, never, EA>, decode: (d: EA) => Effect<RDecode, EDecode, A>, indexes: IndexingPolicy) => import("effect/Effect").Effect<Cosmos.CosmosClient, unknown, {
|
|
10
|
+
find: (id: string) => import("effect/Effect").Effect<Cosmos.CosmosClient | simpledb.RecordCache | RDecode, unknown, import("effect/Option").Option<A>>;
|
|
11
|
+
findBy: (parameters: Record<string, string>) => import("effect/Effect").Effect<Cosmos.CosmosClient, unknown, import("effect/Option").Option<any>>;
|
|
12
|
+
save: (record: A) => import("effect/Effect").Effect<Cosmos.CosmosClient | simpledb.RecordCache | REncode, OptimisticLockException, A>;
|
|
13
13
|
}>;
|
|
14
14
|
//# sourceMappingURL=cosmosdb.d.ts.map
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "effect/Data";
|
|
2
2
|
import * as tsplus_module_2 from "effect/Effect";
|
|
3
|
-
import * as tsplus_module_3 from "effect/
|
|
4
|
-
import * as tsplus_module_4 from "effect/
|
|
5
|
-
import * as tsplus_module_5 from "effect/Option";
|
|
6
|
-
import * as tsplus_module_6 from "effect/impl/ReadonlyArray";
|
|
3
|
+
import * as tsplus_module_3 from "effect/Option";
|
|
4
|
+
import * as tsplus_module_4 from "effect/ReadonlyArray";
|
|
7
5
|
import { typedKeysOf } from "@effect-app/core/utils";
|
|
8
6
|
import * as Cosmos from "@effect-app/infra-adapters/cosmos-client";
|
|
9
7
|
import { OptimisticLockException } from "./shared.js";
|
|
10
8
|
import * as simpledb from "./simpledb.js";
|
|
11
|
-
class CosmosDbOperationError extends tsplus_module_1.
|
|
9
|
+
class CosmosDbOperationError extends tsplus_module_1.TaggedError("CosmosDbOperationError") {
|
|
12
10
|
constructor(message) {
|
|
13
11
|
super({ message });
|
|
14
12
|
}
|
|
15
13
|
}
|
|
16
|
-
const setup = (type, indexingPolicy) =>
|
|
14
|
+
const setup = (type, indexingPolicy) => tsplus_module_2.tap(Cosmos.CosmosClient, ({ db }) => tsplus_module_2.tryPromise(() => db
|
|
17
15
|
.containers
|
|
18
16
|
.create({ id: type, indexingPolicy })
|
|
19
17
|
.catch((err) => console.warn(err))));
|
|
@@ -23,18 +21,18 @@ export function createContext() {
|
|
|
23
21
|
return (type, encode, decode,
|
|
24
22
|
// schemaVersion: string,
|
|
25
23
|
indexes) => {
|
|
26
|
-
return
|
|
24
|
+
return tsplus_module_2.map(setup(type, indexes), () => ({
|
|
27
25
|
find: simpledb.find(find, decode, type),
|
|
28
26
|
findBy,
|
|
29
27
|
save: simpledb.storeDirectly(store, type)
|
|
30
28
|
}));
|
|
31
29
|
function find(id) {
|
|
32
|
-
return
|
|
33
|
-
.CosmosClient, ({ db }) => tsplus_module_2.
|
|
30
|
+
return tsplus_module_2.map(tsplus_module_2.map(tsplus_module_2.flatMap(Cosmos
|
|
31
|
+
.CosmosClient, ({ db }) => tsplus_module_2.tryPromise(() => db.container(type).item(id).read())), (i) => tsplus_module_3.fromNullable(i.resource)), (_) => tsplus_module_3.map(_, ({ _etag, data }) => ({ version: _etag, data })));
|
|
34
32
|
}
|
|
35
33
|
function findBy(parameters) {
|
|
36
|
-
return
|
|
37
|
-
.CosmosClient, ({ db }) => tsplus_module_2.
|
|
34
|
+
return tsplus_module_2.map(tsplus_module_2.map(tsplus_module_2.flatMap(Cosmos
|
|
35
|
+
.CosmosClient, ({ db }) => tsplus_module_2.tryPromise(() => db
|
|
38
36
|
.container(type)
|
|
39
37
|
.items
|
|
40
38
|
.query({
|
|
@@ -52,20 +50,20 @@ WHERE (
|
|
|
52
50
|
value: parameters[p]
|
|
53
51
|
}))
|
|
54
52
|
})
|
|
55
|
-
.fetchAll())), (x) =>
|
|
53
|
+
.fetchAll())), (x) => tsplus_module_4.head(x.resources)), (_) => tsplus_module_3.map(_, (_) => _.id));
|
|
56
54
|
}
|
|
57
55
|
function store(record, currentVersion) {
|
|
58
|
-
return tsplus_module_2.
|
|
56
|
+
return tsplus_module_2.gen(function* ($) {
|
|
59
57
|
const version = "_etag"; // we get this from the etag anyway.
|
|
60
58
|
const { db } = yield* $(Cosmos.CosmosClient);
|
|
61
59
|
const data = yield* $(encode(record));
|
|
62
|
-
yield* $(
|
|
63
|
-
onNone: () =>
|
|
60
|
+
yield* $(tsplus_module_3.match(currentVersion, {
|
|
61
|
+
onNone: () => tsplus_module_2.orDie(tsplus_module_2.asUnit(tsplus_module_2.tryPromise(() => db.container(type).items.create({
|
|
64
62
|
id: record.id,
|
|
65
63
|
timestamp: new Date(),
|
|
66
64
|
data
|
|
67
65
|
})))),
|
|
68
|
-
onSome: (currentVersion) =>
|
|
66
|
+
onSome: (currentVersion) => tsplus_module_2.flatMap(tsplus_module_2.orDie(tsplus_module_2.tryPromise(() => db
|
|
69
67
|
.container(type)
|
|
70
68
|
.item(record.id)
|
|
71
69
|
.replace({
|
|
@@ -82,9 +80,9 @@ WHERE (
|
|
|
82
80
|
return new OptimisticLockException(type, record.id);
|
|
83
81
|
}
|
|
84
82
|
if (x.statusCode > 299 || x.statusCode < 200) {
|
|
85
|
-
return tsplus_module_2.
|
|
83
|
+
return tsplus_module_2.die(new CosmosDbOperationError("not able to update record: " + x.statusCode));
|
|
86
84
|
}
|
|
87
|
-
return tsplus_module_2.
|
|
85
|
+
return tsplus_module_2.unit;
|
|
88
86
|
})
|
|
89
87
|
}));
|
|
90
88
|
return { version, data: record };
|
|
@@ -92,4 +90,4 @@ WHERE (
|
|
|
92
90
|
}
|
|
93
91
|
};
|
|
94
92
|
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zbW9zZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL2Nvc21vc2RiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFFcEQsT0FBTyxLQUFLLE1BQU0sTUFBTSwwQ0FBMEMsQ0FBQTtBQUVsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDckQsT0FBTyxLQUFLLFFBQVEsTUFBTSxlQUFlLENBQUE7QUFHekMsTUFBTSxzQkFBdUIsU0FBUSw0QkFBaUIsd0JBQXdCLENBQXNCO0lBQ2xHLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQ3BCLENBQUM7Q0FDRjtBQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBWSxFQUFFLGNBQThCLEVBQUUsRUFBRSxDQUM3RCxvQkFBQSxNQUFNLENBQUMsWUFBWSxFQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQ2pDLDJCQUFrQixHQUFHLEVBQUUsQ0FDckIsRUFBRTtLQUNDLFVBQVU7S0FDVixNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDO0tBQ3BDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNyQyxDQUNGLENBQUE7QUFDSCx1REFBdUQ7QUFDdkQsZ0ZBQWdGO0FBQ2hGLE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FDTCxJQUFZLEVBQ1osTUFBaUQsRUFDakQsTUFBOEM7SUFDOUMseUJBQXlCO0lBQ3pCLE9BQXVCLEVBQ3ZCLEVBQUU7UUFDRixPQUFPLG9CQUFBLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUssR0FBRyxFQUFF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
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Effect } from "effect/Effect";
|
|
2
|
-
import { Option } from "effect/Option";
|
|
2
|
+
import { Option } from "@effect-app/core/Option";
|
|
3
3
|
import type { DBRecord, Index } from "./shared.js";
|
|
4
4
|
import { CouldNotAquireDbLockException } from "./shared.js";
|
|
5
5
|
import * as simpledb from "./simpledb.js";
|
|
6
6
|
export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => Effect<REncode, never, EA>, decode: (d: EA) => Effect<RDecode, EDecode, A>, schemaVersion: string, makeIndexKey: (r: A) => Index, dir?: string) => {
|
|
7
|
-
find: (id: string) => import("effect").Effect<simpledb.RecordCache | RDecode, simpledb.InvalidStateError, import("effect").Option<A>>;
|
|
8
|
-
findByIndex: (index: Index) => import("effect").Effect<never, never, import("effect").Option<TKey & {}>>;
|
|
9
|
-
save: (record: A) => import("effect").Effect<simpledb.RecordCache | REncode, CouldNotAquireDbLockException | import("./shared.js").OptimisticLockException | simpledb.InvalidStateError, A>;
|
|
7
|
+
find: (id: string) => import("effect/Effect").Effect<simpledb.RecordCache | RDecode, simpledb.InvalidStateError, import("effect/Option").Option<A>>;
|
|
8
|
+
findByIndex: (index: Index) => import("effect/Effect").Effect<never, never, import("effect/Option").Option<TKey & {}>>;
|
|
9
|
+
save: (record: A) => import("effect/Effect").Effect<simpledb.RecordCache | REncode, CouldNotAquireDbLockException | import("./shared.js").OptimisticLockException | simpledb.InvalidStateError, A>;
|
|
10
10
|
};
|
|
11
11
|
export declare function initialise(dir: string): void;
|
|
12
12
|
//# sourceMappingURL=diskdb.d.ts.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "effect/
|
|
2
|
-
import * as tsplus_module_2 from "effect/
|
|
3
|
-
import * as tsplus_module_3 from "effect/
|
|
4
|
-
import * as tsplus_module_4 from "effect/Option";
|
|
1
|
+
import * as tsplus_module_1 from "effect/Option";
|
|
2
|
+
import * as tsplus_module_2 from "effect/Effect";
|
|
3
|
+
import * as tsplus_module_3 from "@effect-app/core/Option";
|
|
5
4
|
import { flow, pipe } from "@effect-app/core/Function";
|
|
6
5
|
import fs from "fs";
|
|
7
6
|
import * as PLF from "proper-lockfile";
|
|
@@ -28,7 +27,7 @@ export function createContext() {
|
|
|
28
27
|
const idx = makeIndexKey(record);
|
|
29
28
|
return tsplus_module_1.isSome(currentVersion)
|
|
30
29
|
? tsplus_module_2.map(tsplus_module_2.scoped(tsplus_module_2.zipRight(lockIndex(record), tsplus_module_2.orDie(tsplus_module_2.flatMap(readIndex(idx), (x) => x[record.id]
|
|
31
|
-
?
|
|
30
|
+
? tsplus_module_2.fail(() => new Error("Combination already exists, abort"))
|
|
32
31
|
: tsplus_module_2.zipRight(tsplus_module_2.flatMap(getData(record), (serialised) => fu.writeTextFile(getFilename(type, record.id), serialised)), writeIndex(idx, { ...x, [idx.key]: record.id })))))), () => ({ version, data: record }))
|
|
33
32
|
: tsplus_module_2.map(tsplus_module_2.flatMap(getData(record), (serialised) => fu.writeTextFile(getFilename(type, record.id), serialised)), () => ({ version, data: record }));
|
|
34
33
|
}
|
|
@@ -58,7 +57,7 @@ export function createContext() {
|
|
|
58
57
|
}
|
|
59
58
|
function readFile(filePath) {
|
|
60
59
|
return tsplus_module_2.catchAll(fu
|
|
61
|
-
.readTextFile(filePath), (err) =>
|
|
60
|
+
.readTextFile(filePath), (err) => tsplus_module_2.die(new ConnectionException(err)));
|
|
62
61
|
}
|
|
63
62
|
function find(type) {
|
|
64
63
|
return (id) => {
|
|
@@ -66,7 +65,7 @@ export function createContext() {
|
|
|
66
65
|
};
|
|
67
66
|
}
|
|
68
67
|
function getIdx(index) {
|
|
69
|
-
return tsplus_module_2.map(readIndex(index), (idx) =>
|
|
68
|
+
return tsplus_module_2.map(readIndex(index), (idx) => tsplus_module_1.fromNullable(idx[index.key]));
|
|
70
69
|
}
|
|
71
70
|
function readIndex(index) {
|
|
72
71
|
return tsplus_module_2.map(tryRead(getIdxName(type, index.doc)), (_) => tsplus_module_1.match(_, { onNone: () => ({}), onSome: (x) => JSON.parse(x) }));
|
|
@@ -76,7 +75,7 @@ export function createContext() {
|
|
|
76
75
|
}
|
|
77
76
|
function tryRead(filePath) {
|
|
78
77
|
return tsplus_module_2.flatMap(fu
|
|
79
|
-
.fileExists(filePath), (exists) => !exists ?
|
|
78
|
+
.fileExists(filePath), (exists) => !exists ? tsplus_module_2.sync(() => tsplus_module_3.none) : tsplus_module_2.map(readFile(filePath), tsplus_module_1.some));
|
|
80
79
|
}
|
|
81
80
|
function getFilename(type, id) {
|
|
82
81
|
return `${dir}/v${schemaVersion}.${getRecordName(type, id)}.json`;
|
|
@@ -87,7 +86,7 @@ export function createContext() {
|
|
|
87
86
|
};
|
|
88
87
|
}
|
|
89
88
|
function lockFile(fileName) {
|
|
90
|
-
return
|
|
89
|
+
return tsplus_module_2.tryPromise(() => PLF.lock(fileName).then(flow(tsplus_module_2.tryPromise, (_) => tsplus_module_2.orDie(_))));
|
|
91
90
|
}
|
|
92
91
|
// TODO: ugh.
|
|
93
92
|
let initialised = false;
|
|
@@ -100,4 +99,4 @@ export function initialise(dir) {
|
|
|
100
99
|
}
|
|
101
100
|
initialised = true;
|
|
102
101
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlza2RiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9zaW1wbGVkYi9kaXNrZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDbkIsT0FBTyxLQUFLLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQTtBQUV0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDL0MsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsNkJBQTZCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUM3RyxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUd6QyxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQ0wsSUFBWSxFQUNaLE1BQWlELEVBQ2pELE1BQThDLEVBQzlDLGFBQXFCLEVBQ3JCLFlBQTZCLEVBQzdCLEdBQUcsR0FBRyxXQUFXLEVBQ2pCLEVBQUU7UUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDZixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUE7UUFDaEMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUNoRCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2hDLEVBQUUsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUM1QyxDQUFDO1FBRUQsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lB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
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Effect } from "effect/Effect";
|
|
2
2
|
import { Equivalence } from "effect/Equivalence";
|
|
3
|
-
import { Option } from "effect/Option";
|
|
3
|
+
import { Option } from "@effect-app/core/Option";
|
|
4
4
|
import * as MO from "@effect-app/schema";
|
|
5
5
|
import type { DBRecord } from "./shared.js";
|
|
6
6
|
import * as simpledb from "./simpledb.js";
|
|
7
7
|
export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => Effect<REncode, never, EA>, decode: (d: EA) => Effect<RDecode, EDecode, A>) => {
|
|
8
|
-
find: (id: string) => import("effect").Effect<simpledb.RecordCache | RDecode,
|
|
9
|
-
findBy: <V extends Partial<A>>(keys: V, eq: Equivalence<V>) => import("effect").Effect<RDecode, MO.CondemnException, import("effect").Option<A & {}>>;
|
|
10
|
-
save: (record: A) => import("effect").Effect<simpledb.RecordCache | REncode,
|
|
8
|
+
find: (id: string) => import("effect/Effect").Effect<simpledb.RecordCache | RDecode, simpledb.InvalidStateError | MO.CondemnException, import("effect/Option").Option<A>>;
|
|
9
|
+
findBy: <V extends Partial<A>>(keys: V, eq: Equivalence<V>) => import("effect/Effect").Effect<RDecode, MO.CondemnException, import("effect/Option").Option<A & {}>>;
|
|
10
|
+
save: (record: A) => import("effect/Effect").Effect<simpledb.RecordCache | REncode, import("./shared.js").OptimisticLockException | simpledb.InvalidStateError | MO.CondemnException, A>;
|
|
11
11
|
};
|
|
12
12
|
//# sourceMappingURL=memdb.d.ts.map
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "effect/
|
|
2
|
-
import * as tsplus_module_2 from "effect/
|
|
3
|
-
import * as tsplus_module_3 from "@effect-app/core/
|
|
4
|
-
import * as tsplus_module_4 from "effect/
|
|
5
|
-
import * as tsplus_module_5 from "effect/Effect";
|
|
6
|
-
import * as tsplus_module_6 from "effect/impl/Exit";
|
|
1
|
+
import * as tsplus_module_1 from "effect/Option";
|
|
2
|
+
import * as tsplus_module_2 from "effect/Effect";
|
|
3
|
+
import * as tsplus_module_3 from "@effect-app/core/Effect";
|
|
4
|
+
import * as tsplus_module_4 from "effect/Exit";
|
|
7
5
|
import { flow } from "@effect-app/core/Function";
|
|
8
6
|
import * as MO from "@effect-app/schema";
|
|
9
7
|
import { getRecordName, makeMap, SerializedDBRecord } from "./shared.js";
|
|
@@ -28,20 +26,20 @@ export function createContext() {
|
|
|
28
26
|
}
|
|
29
27
|
function findBy(keys, eq) {
|
|
30
28
|
// Naive implementation, fine for in memory testing purposes.
|
|
31
|
-
return tsplus_module_2.map(
|
|
29
|
+
return tsplus_module_2.map(tsplus_module_2.gen(function* ($) {
|
|
32
30
|
for (const [, value] of storage) {
|
|
33
31
|
const sdb_ = JSON.parse(value);
|
|
34
32
|
const sdb = yield* $(parseSDB(sdb_));
|
|
35
33
|
const cr = { data: JSON.parse(sdb.data), version: sdb.version };
|
|
36
34
|
const r = yield* $(tsplus_module_2.exit(tsplus_module_2.flatMap(decode(cr.data), (d) => eq(keys, d)
|
|
37
|
-
?
|
|
38
|
-
:
|
|
39
|
-
if (
|
|
35
|
+
? tsplus_module_2.sync(() => d)
|
|
36
|
+
: tsplus_module_2.fail("not equals"))));
|
|
37
|
+
if (tsplus_module_4.isSuccess(r)) {
|
|
40
38
|
return r.value;
|
|
41
39
|
}
|
|
42
40
|
}
|
|
43
41
|
return null;
|
|
44
|
-
}),
|
|
42
|
+
}), tsplus_module_1.fromNullable);
|
|
45
43
|
}
|
|
46
44
|
function store(record, currentVersion) {
|
|
47
45
|
const version = tsplus_module_1.getOrElse(tsplus_module_1.map(currentVersion, (cv) => (parseInt(cv) + 1).toString()), () => "1");
|
|
@@ -51,6 +49,6 @@ export function createContext() {
|
|
|
51
49
|
};
|
|
52
50
|
}
|
|
53
51
|
function bogusLock() {
|
|
54
|
-
return tsplus_module_2.acquireRelease(
|
|
52
|
+
return tsplus_module_2.acquireRelease(tsplus_module_2.unit, () => tsplus_module_2.unit);
|
|
55
53
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL21lbWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDaEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUd4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN4RSxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUd6Qyw0REFBNEQ7QUFDNUQsMkJBQTJCO0FBQzNCLE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBa0IsQ0FBQTtBQUV6QyxNQUFNLFFBQVEsR0FBZ0MsRUFBRSxDQUFDLFdBQVcsQ0FBM0Msa0JBQWtCLENBQUMsTUFBTSxDQUFrQixDQUFBO0FBRTVELE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FDTCxJQUFZLEVBQ1osTUFBaUQsRUFDakQsTUFBOEMsRUFDOUMsRUFBRTtRQUNGLE9BQU87WUFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztZQUN2QyxNQUFNO1lBQ04sSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDO1NBQ25ELENBQUE7UUFFRCxTQUFTLElBQUksQ0FBQyxFQUFVO1lBQ3RCLE9BQU8sMEJBQUEsOEJBQUEsb0JBQUEsT0FBTztpQkFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN6QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsb0JBQUEsQ0FBQyxFQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FB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
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Effect } from "effect/Effect";
|
|
2
|
-
import { Option } from "effect/Option";
|
|
2
|
+
import { Option } from "@effect-app/core/Option";
|
|
3
3
|
import { MongoClient } from "@effect-app/infra-adapters/mongo-client";
|
|
4
4
|
import type { IndexDescription } from "mongodb";
|
|
5
5
|
import type { DBRecord } from "./shared.js";
|
|
6
6
|
import { OptimisticLockException } from "./shared.js";
|
|
7
7
|
import * as simpledb from "./simpledb.js";
|
|
8
|
-
export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => Effect<REncode, never, EA>, decode: (d: EA) => Effect<RDecode, EDecode, A>, indexes: IndexDescription[]) => import("effect").Effect<MongoClient, unknown, {
|
|
9
|
-
find: (id: string) => import("effect").Effect<simpledb.RecordCache | RDecode | MongoClient, unknown, import("effect").Option<A>>;
|
|
10
|
-
findBy: (keys: Record<string, string>) => import("effect").Effect<MongoClient, unknown, import("effect").Option<TKey>>;
|
|
11
|
-
save: (record: A) => import("effect").Effect<simpledb.RecordCache | REncode | MongoClient, OptimisticLockException, A>;
|
|
8
|
+
export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => Effect<REncode, never, EA>, decode: (d: EA) => Effect<RDecode, EDecode, A>, indexes: IndexDescription[]) => import("effect/Effect").Effect<MongoClient, unknown, {
|
|
9
|
+
find: (id: string) => import("effect/Effect").Effect<simpledb.RecordCache | RDecode | MongoClient, unknown, import("effect/Option").Option<A>>;
|
|
10
|
+
findBy: (keys: Record<string, string>) => import("effect/Effect").Effect<MongoClient, unknown, import("effect/Option").Option<TKey>>;
|
|
11
|
+
save: (record: A) => import("effect/Effect").Effect<simpledb.RecordCache | REncode | MongoClient, OptimisticLockException, A>;
|
|
12
12
|
}>;
|
|
13
13
|
//# sourceMappingURL=mongodb.d.ts.map
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "effect/Effect";
|
|
2
|
-
import * as tsplus_module_2 from "effect/
|
|
3
|
-
import * as tsplus_module_3 from "effect/
|
|
4
|
-
import * as tsplus_module_4 from "@effect-app/core/EffectX";
|
|
5
|
-
import * as tsplus_module_5 from "effect/impl/Option";
|
|
2
|
+
import * as tsplus_module_2 from "effect/Option";
|
|
3
|
+
import * as tsplus_module_3 from "@effect-app/core/Effect";
|
|
6
4
|
import { MongoClient } from "@effect-app/infra-adapters/mongo-client";
|
|
7
5
|
import { OptimisticLockException } from "./shared.js";
|
|
8
6
|
import * as simpledb from "./simpledb.js";
|
|
@@ -10,36 +8,36 @@ import * as simpledb from "./simpledb.js";
|
|
|
10
8
|
// prev[cur] = 1
|
|
11
9
|
// return prev
|
|
12
10
|
// }, {} as Record<string, number>)
|
|
13
|
-
const setup = (type, indexes) =>
|
|
11
|
+
const setup = (type, indexes) => tsplus_module_1.flatMap(tsplus_module_1.tap(MongoClient, ({ db }) => tsplus_module_1.tryPromise(() => db.createCollection(type).catch((err) => console.warn(err)))), ({ db }) => tsplus_module_1.tryPromise(() => db.collection(type).createIndexes(indexes)));
|
|
14
12
|
export function createContext() {
|
|
15
13
|
return (type, encode, decode,
|
|
16
14
|
// schemaVersion: string,
|
|
17
15
|
indexes) => {
|
|
18
|
-
return
|
|
16
|
+
return tsplus_module_1.map(setup(type, indexes), () => ({
|
|
19
17
|
find: simpledb.find(find, decode, type),
|
|
20
18
|
findBy,
|
|
21
19
|
save: simpledb.storeDirectly(store, type)
|
|
22
20
|
}));
|
|
23
21
|
function find(id) {
|
|
24
|
-
return
|
|
22
|
+
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(MongoClient, ({ db }) => tsplus_module_1.tryPromise(() => db
|
|
25
23
|
.collection(type)
|
|
26
|
-
.findOne({ _id: { equals: id } }))),
|
|
24
|
+
.findOne({ _id: { equals: id } }))), tsplus_module_2.fromNullable), ({ data, version }) => ({ version, data }));
|
|
27
25
|
}
|
|
28
26
|
function findBy(keys) {
|
|
29
|
-
return
|
|
27
|
+
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(MongoClient, ({ db }) => tsplus_module_1.tryPromise(() => db.collection(type).findOne(keys, { projection: { _id: 1 } }))), tsplus_module_2.fromNullable), ({ _id }) => _id);
|
|
30
28
|
}
|
|
31
29
|
function store(record, currentVersion) {
|
|
32
|
-
return tsplus_module_1.
|
|
33
|
-
const version =
|
|
30
|
+
return tsplus_module_1.gen(function* ($) {
|
|
31
|
+
const version = tsplus_module_2.getOrElse(tsplus_module_2.map(currentVersion, (cv) => (parseInt(cv) + 1).toString()), () => "1");
|
|
34
32
|
const { db } = yield* $(MongoClient);
|
|
35
33
|
const data = yield* $(encode(record));
|
|
36
|
-
yield* $(
|
|
37
|
-
onNone: () =>
|
|
34
|
+
yield* $(tsplus_module_2.match(currentVersion, {
|
|
35
|
+
onNone: () => tsplus_module_1.orDie(tsplus_module_1.asUnit(tsplus_module_1.tryPromise(() => db
|
|
38
36
|
.collection(type)
|
|
39
37
|
.insertOne({ _id: record.id, version, timestamp: new Date(), data }, {
|
|
40
38
|
checkKeys: false // support for keys with `.` and `$`. NOTE: you can write them, read them, but NOT query for them.
|
|
41
39
|
})))),
|
|
42
|
-
onSome: (currentVersion) =>
|
|
40
|
+
onSome: (currentVersion) => tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => db.collection(type).replaceOne({ _id: record.id, version: currentVersion }, {
|
|
43
41
|
version,
|
|
44
42
|
timestamp: new Date(),
|
|
45
43
|
data
|
|
@@ -47,7 +45,7 @@ export function createContext() {
|
|
|
47
45
|
if (!x.modifiedCount) {
|
|
48
46
|
return new OptimisticLockException(type, record.id);
|
|
49
47
|
}
|
|
50
|
-
return tsplus_module_1.
|
|
48
|
+
return tsplus_module_1.unit;
|
|
51
49
|
})
|
|
52
50
|
}));
|
|
53
51
|
return { version, data: record };
|
|
@@ -55,4 +53,4 @@ export function createContext() {
|
|
|
55
53
|
}
|
|
56
54
|
};
|
|
57
55
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvbW9uZ29kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFHckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3JELE9BQU8sS0FBSyxRQUFRLE1BQU0sZUFBZSxDQUFBO0FBR3pDLHdHQUF3RztBQUN4RyxrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCLG1DQUFtQztBQUVuQyxNQUFNLEtBQUssR0FBRyxDQUFDLElBQVksRUFBRSxPQUEyQixFQUFFLEVBQUUsQ0FDMUQsd0JBQUEsb0JBQUEsV0FBVyxFQUNKLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsMkJBQWtCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzdGLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsMkJBQWtCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUU3RixNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQ0wsSUFBWSxFQUNaLE1BQWlELEVBQ2pELE1BQThDO0lBQzlDLHlCQUF5QjtJQUN6QixPQUEyQixFQUMzQixFQUFFO1FBQ0YsT0FBTyxvQkFBQSxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDckMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMs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
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Effect } from "effect/Effect";
|
|
2
|
-
import { Option } from "effect/Option";
|
|
2
|
+
import { Option } from "@effect-app/core/Option";
|
|
3
3
|
import { RedisClient } from "@effect-app/infra-adapters/redis-client";
|
|
4
4
|
import * as MO from "@effect-app/schema";
|
|
5
5
|
import type { DBRecord, Index } from "./shared.js";
|
|
6
6
|
import { CouldNotAquireDbLockException } from "./shared.js";
|
|
7
7
|
import * as simpledb from "./simpledb.js";
|
|
8
8
|
export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => Effect<REncode, never, EA>, decode: (d: EA) => Effect<RDecode, EDecode, A>, schemaVersion: string, makeIndexKey: (r: A) => Index) => {
|
|
9
|
-
find: (id: string) => import("effect").Effect<RedisClient | simpledb.RecordCache | RDecode, simpledb.InvalidStateError, import("effect").Option<A>>;
|
|
10
|
-
findByIndex: (index: Index) => import("effect").Effect<RedisClient, import("@effect-app/infra-adapters/redis-client").ConnectionException, import("effect").Option<TKey>>;
|
|
11
|
-
save: (record: A) => import("effect").Effect<RedisClient | simpledb.RecordCache | REncode, CouldNotAquireDbLockException | import("./shared.js").OptimisticLockException | simpledb.InvalidStateError, A>;
|
|
9
|
+
find: (id: string) => import("effect/Effect").Effect<RedisClient | simpledb.RecordCache | RDecode, simpledb.InvalidStateError, import("effect/Option").Option<A>>;
|
|
10
|
+
findByIndex: (index: Index) => import("effect/Effect").Effect<RedisClient, import("@effect-app/infra-adapters/redis-client").ConnectionException, import("effect/Option").Option<TKey>>;
|
|
11
|
+
save: (record: A) => import("effect/Effect").Effect<RedisClient | simpledb.RecordCache | REncode, CouldNotAquireDbLockException | import("./shared.js").OptimisticLockException | simpledb.InvalidStateError, A>;
|
|
12
12
|
};
|
|
13
13
|
declare const RedisSerializedDBRecord_base: MO.Model<RedisSerializedDBRecord, MO.SchemaProperties<MO.ToProps<{
|
|
14
14
|
version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|