@effect-app/infra 0.14.0 → 0.14.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.
- package/CHANGELOG.md +11 -0
- package/_cjs/api/express/schema/requestHandler.cjs +8 -7
- package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
- package/_cjs/api/routing.cjs +7 -7
- package/_cjs/api/routing.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +2 -4
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +3 -3
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +2 -4
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +4 -6
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +5 -5
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +5 -7
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/dist/api/express/schema/requestHandler.js +6 -8
- package/dist/api/routing.js +6 -8
- package/dist/services/Repository.js +3 -5
- package/dist/services/Store/Cosmos.js +3 -5
- package/dist/services/simpledb/memdb.js +4 -6
- package/dist/services/simpledb/mongodb.js +4 -6
- package/dist/services/simpledb/redisdb.js +4 -6
- package/dist/services/simpledb/simpledb.js +8 -10
- package/package.json +6 -6
- package/tsconfig.json +5 -1
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
-
const fileName_1 = "packages/infra/_src/services/simpledb/simpledb.ts";
|
|
3
1
|
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
4
2
|
import * as tsplus_module_2 from "@fp-ts/data/Context";
|
|
5
3
|
import * as tsplus_module_3 from "@effect-app/core/Effect";
|
|
@@ -36,23 +34,23 @@ const getM = (type) => (eff) => tsplus_module_1.gen(function* ($) {
|
|
|
36
34
|
});
|
|
37
35
|
export function find(tryRead, decode, type) {
|
|
38
36
|
const getCache = getM(type);
|
|
39
|
-
const read = (id) =>
|
|
40
|
-
return (id) => getCache(c => tsplus_module_1.orElse(
|
|
41
|
-
.find(id), existing => existing.data)
|
|
37
|
+
const read = (id) => tsplus_module_3.mapOpt(tsplus_module_3.tapOpt(tsplus_module_3.flatMapOpt(tryRead(id), ({ data, version }) => tsplus_module_1.mapBoth(decode(data), err => new InvalidStateError("DB serialisation Issue", err), data => ({ data, version }))), r => getCache(c => c.set(id, r))), r => r.data);
|
|
38
|
+
return (id) => getCache(c => tsplus_module_1.orElse(tsplus_module_3.mapOpt(c
|
|
39
|
+
.find(id), existing => existing.data), () => read(id)));
|
|
42
40
|
}
|
|
43
41
|
export function storeDirectly(save, type) {
|
|
44
42
|
const getCache = getM(type);
|
|
45
|
-
return (record) => getCache(c => tsplus_module_1.map(tsplus_module_1.tap(tsplus_module_1.flatMap(
|
|
46
|
-
.find(record.id), x => x.version)
|
|
43
|
+
return (record) => getCache(c => tsplus_module_1.map(tsplus_module_1.tap(tsplus_module_1.flatMap(tsplus_module_3.mapOpt(c
|
|
44
|
+
.find(record.id), x => x.version), cv => save(record, cv)), r => c.set(record.id, r)), r => r.data));
|
|
47
45
|
}
|
|
48
46
|
export function store(tryRead, save, lock, type) {
|
|
49
47
|
const getCache = getM(type);
|
|
50
|
-
return (record) => getCache(c => tsplus_module_1.map(tsplus_module_1.tap(tsplus_module_1.flatMap(
|
|
51
|
-
.find(record.id), x => x.version)
|
|
48
|
+
return (record) => getCache(c => tsplus_module_1.map(tsplus_module_1.tap(tsplus_module_1.flatMap(tsplus_module_3.mapOpt(c
|
|
49
|
+
.find(record.id), x => x.version), _ => tsplus_module_5.match(() => save(record, tsplus_module_4.none), confirmVersionAndSave(record))(_)), r => c.set(record.id, r)), r => r.data));
|
|
52
50
|
function confirmVersionAndSave(record) {
|
|
53
51
|
return (cv) => tsplus_module_1.scoped(tsplus_module_1.zipRight(lock(record.id), tsplus_module_1.zipRight(tsplus_module_1.tap(tsplus_module_1.flatMap(tryRead(record.id), _ => tsplus_module_5.match(() => tsplus_module_1.fail(new InvalidStateError("record is gone")), tsplus_module_1.succeed)(_)), ({ version }) => version !== cv
|
|
54
52
|
? tsplus_module_1.fail(new OptimisticLockException(type, record.id))
|
|
55
53
|
: tsplus_module_3.unit), save(record, tsplus_module_5.some(cv)))));
|
|
56
54
|
}
|
|
57
55
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL3NpbXBsZWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUc5RCxNQUFNLE9BQU8saUJBQWlCO0lBRTVCLFlBQXFCLE9BQWUsRUFBVyxPQUFpQjtRQUEzQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQVcsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUR2RCxTQUFJLEdBQUcsbUJBQW1CLENBQUE7SUFDZ0MsQ0FBQztDQUNyRTtBQUVELE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQXNDLENBQUE7SUFDdkQsT0FBTztRQUNMLEdBQUcsRUFBRSxDQUFJLElBQVksRUFBRSxFQUFFLENBQ3ZCLHFCQUFPLEdBQUcsRUFBRTtZQUNWLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdEIsSUFBSSxDQUFDLEVBQUUsRUFBRTtnQkFDUCxNQUFNLEVBQUUsR0FBRyxPQUFPLEVBQW1CLENBQUE7Z0JBQ3JDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO2dCQUNmLE9BQU8sRUFBd0MsQ0FBQTthQUNoRDtZQUNELE9BQU8sRUFBd0MsQ0FBQTtRQUNqRCxDQUFDLENBQUM7S0FDTCxDQUFBO0FBQ0gsQ0FBQztBQUlELGFBQWE7QUFDYixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsZ0JBQUEsR0FBRyxFQUFlLENBQUE7QUFFN0MsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLHdCQUFBLDJCQUFPLG1CQUFtQixFQUFFLENBQUMsRUFBUyxXQUFXLENBQUMsQ0FBQTtBQUVqRixNQUFNLElBQUksR0FBRyxDQUFJLElBQVksRUFBRSxF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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"proper-lockfile": "^4.1.2",
|
|
20
20
|
"pure-rand": "^6.0.0",
|
|
21
21
|
"redlock": "^4.2.0",
|
|
22
|
-
"@effect-app/prelude": "0.12.
|
|
23
|
-
"@effect-app/core": "0.12.
|
|
24
|
-
"@effect-app/infra-adapters": "0.12.
|
|
25
|
-
"@effect-app/schema": "0.12.
|
|
22
|
+
"@effect-app/prelude": "0.12.1",
|
|
23
|
+
"@effect-app/core": "0.12.1",
|
|
24
|
+
"@effect-app/infra-adapters": "0.12.1",
|
|
25
|
+
"@effect-app/schema": "0.12.1"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@babel/cli": "^7.20.7",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"ts-node": "^10.9.1",
|
|
43
43
|
"typescript": "https://cdn.jsdelivr.net/npm/@tsplus/installer@0.0.164/compiler/typescript.tgz",
|
|
44
44
|
"vitest": "^0.28.2",
|
|
45
|
-
"@effect-app/compiler": "0.7.
|
|
45
|
+
"@effect-app/compiler": "0.7.3"
|
|
46
46
|
},
|
|
47
47
|
"typesVersions": {
|
|
48
48
|
"*": {
|