@effect-app/infra 0.164.2 → 0.164.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 +18 -0
- package/_cjs/api/routing/base.cjs +5 -5
- package/_cjs/api/routing/base.cjs.map +1 -1
- package/_cjs/api/routing/defaultErrorHandler.cjs +1 -1
- package/_cjs/api/routing/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/routing/makeRequestHandler.cjs +9 -10
- package/_cjs/api/routing/makeRequestHandler.cjs.map +1 -1
- package/_cjs/api/setupRequest.cjs +5 -5
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +1 -2
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/logger/jsonLogger.cjs +10 -11
- package/_cjs/logger/jsonLogger.cjs.map +1 -1
- package/_cjs/logger/logFmtLogger.cjs +8 -9
- package/_cjs/logger/logFmtLogger.cjs.map +1 -1
- package/_cjs/logger/shared.cjs +1 -2
- package/_cjs/logger/shared.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +6 -6
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +3 -3
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +3 -3
- package/_cjs/services/Operations/service.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +11 -12
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +12 -13
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +45 -46
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +4 -4
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/_cjs/services/Store/ContextMapContainer.cjs +1 -1
- package/_cjs/services/Store/ContextMapContainer.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +15 -16
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +5 -5
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +43 -44
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +5 -6
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +13 -14
- package/_cjs/services/Store/codeFilter.test.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +2 -3
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +3 -3
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +14 -14
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +11 -11
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +2 -2
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +2 -2
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +5 -5
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/dist/api/routing/base.js +16 -6
- package/dist/api/routing/defaultErrorHandler.js +2 -2
- package/dist/api/routing/makeRequestHandler.js +13 -11
- package/dist/api/setupRequest.js +10 -7
- package/dist/errorReporter.js +2 -3
- package/dist/logger/jsonLogger.js +11 -12
- package/dist/logger/logFmtLogger.js +10 -11
- package/dist/logger/shared.js +2 -3
- package/dist/rateLimit.js +11 -7
- package/dist/services/Operations/live.js +8 -5
- package/dist/services/Operations/service.js +11 -7
- package/dist/services/QueueMaker/memQueue.js +11 -11
- package/dist/services/Repository.js +14 -14
- package/dist/services/RepositoryBase.js +50 -47
- package/dist/services/RequestContextContainer.js +5 -4
- package/dist/services/Store/ContextMapContainer.js +3 -2
- package/dist/services/Store/Cosmos.js +27 -20
- package/dist/services/Store/Disk.js +7 -6
- package/dist/services/Store/Memory.js +52 -47
- package/dist/services/Store/Redis.js +10 -8
- package/dist/services/Store/utils.js +5 -5
- package/dist/services/simpledb/cosmosdb.js +4 -4
- package/dist/services/simpledb/diskdb.js +22 -20
- package/dist/services/simpledb/memdb.js +15 -13
- package/dist/services/simpledb/mongodb.js +6 -3
- package/dist/services/simpledb/redisdb.js +5 -3
- package/dist/services/simpledb/simpledb.js +9 -6
- package/package.json +5 -5
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/schema/Schema";
|
|
2
|
-
import * as tsplus_module_2 from "effect/
|
|
3
|
-
import * as tsplus_module_3 from "effect/Effect";
|
|
4
|
-
import * as tsplus_module_4 from "
|
|
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/Option";
|
|
5
5
|
import * as tsplus_module_5 from "effect/Exit";
|
|
6
6
|
import { flow } from "@effect-app/core/Function";
|
|
7
7
|
import { getRecordName, makeMap, SerializedDBRecord } from "./shared.js";
|
|
@@ -18,35 +18,37 @@ export function createContext() {
|
|
|
18
18
|
save: simpledb.store(find, store, bogusLock, type)
|
|
19
19
|
};
|
|
20
20
|
function find(id) {
|
|
21
|
-
return
|
|
22
|
-
.find(getRecordName(type, id)), (_) =>
|
|
21
|
+
return tsplus_module_3.mapOption(tsplus_module_3.flatMapOption(tsplus_module_2.map(storage
|
|
22
|
+
.find(getRecordName(type, id)), (_) => _.map((s) => JSON.parse(s))), parseSDB), ({ data, version }) => ({
|
|
23
23
|
data: JSON.parse(data),
|
|
24
24
|
version
|
|
25
25
|
}));
|
|
26
26
|
}
|
|
27
27
|
function findBy(keys, eq) {
|
|
28
28
|
// Naive implementation, fine for in memory testing purposes.
|
|
29
|
-
return
|
|
29
|
+
return tsplus_module_2.map(tsplus_module_2.gen(function* ($) {
|
|
30
30
|
for (const [, value] of storage) {
|
|
31
31
|
const sdb_ = JSON.parse(value);
|
|
32
32
|
const sdb = yield* $(parseSDB(sdb_));
|
|
33
33
|
const cr = { data: JSON.parse(sdb.data), version: sdb.version };
|
|
34
|
-
const r = yield* $(
|
|
34
|
+
const r = yield* $(tsplus_module_2.exit(tsplus_module_2.filterOrFail(decode(cr.data), (d) => eq(keys, d), () => "not equals")));
|
|
35
35
|
if (tsplus_module_5.isSuccess(r)) {
|
|
36
36
|
return r.value;
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
return null;
|
|
40
|
-
}),
|
|
40
|
+
}), tsplus_module_4.fromNullable);
|
|
41
41
|
}
|
|
42
42
|
function store(record, currentVersion) {
|
|
43
|
-
const version =
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
const version = currentVersion
|
|
44
|
+
.map((cv) => (parseInt(cv) + 1).toString())
|
|
45
|
+
.getOrElse(() => "1");
|
|
46
|
+
const getData = flow(encode, (_) => tsplus_module_2.map(tsplus_module_2.map(_, JSON.stringify), (data) => JSON.stringify({ version, timestamp: new Date(), data })));
|
|
47
|
+
return tsplus_module_2.map(tsplus_module_2.flatMap(getData(record), (serialised) => storage.set(getRecordName(type, record.id), serialised)), () => ({ version, data: record }));
|
|
46
48
|
}
|
|
47
49
|
};
|
|
48
50
|
}
|
|
49
51
|
function bogusLock() {
|
|
50
|
-
return
|
|
52
|
+
return tsplus_module_2.acquireRelease(tsplus_module_2.unit, () => tsplus_module_2.unit);
|
|
51
53
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL21lbWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBR2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3hFLE9BQU8sS0FBSyxRQUFRLE1BQU0sZUFBZSxDQUFBO0FBR3pDLDREQUE0RDtBQUM1RCwyQkFBMkI7QUFDM0IsTUFBTSxPQUFPLEdBQUcsT0FBTyxFQUFrQixDQUFBO0FBRXpDLE1BQU0sUUFBUSxpQ0FBRyxrQkFBa0IsQ0FBYyxDQUFBO0FBRWpELE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FDTCxJQUFZLEVBQ1osTUFBaUQsRUFDakQsTUFBOEMsRUFDOUMsRUFBRTtRQUNGLE9BQU87WUFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztZQUN2QyxNQUFNO1lBQ04sSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDO1NBQ25ELENBQUE7UUFFRCxTQUFTLElBQUksQ0FBQyxFQUFVO1lBQ3RCLE9BQU8sMEJBQUEsOEJBQUEsb0JBQUEsT0FBTztpQkFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN6QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzVCLFFBQVEsQ0FBQyxFQUNiLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVB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
|
|
@@ -8,7 +8,8 @@ import * as simpledb from "./simpledb.js";
|
|
|
8
8
|
// prev[cur] = 1
|
|
9
9
|
// return prev
|
|
10
10
|
// }, {} as Record<string, number>)
|
|
11
|
-
const setup = (type, indexes) => tsplus_module_1.flatMap(
|
|
11
|
+
const setup = (type, indexes) => tsplus_module_1.flatMap(MongoClient
|
|
12
|
+
.tap(({ db }) => tsplus_module_1.tryPromise(() => db.createCollection(type).catch((err) => console.warn(err)))), ({ db }) => tsplus_module_1.tryPromise(() => db.collection(type).createIndexes(indexes)));
|
|
12
13
|
export function createContext() {
|
|
13
14
|
return (type, encode, decode,
|
|
14
15
|
// schemaVersion: string,
|
|
@@ -28,7 +29,9 @@ export function createContext() {
|
|
|
28
29
|
}
|
|
29
30
|
function store(record, currentVersion) {
|
|
30
31
|
return tsplus_module_1.gen(function* ($) {
|
|
31
|
-
const version =
|
|
32
|
+
const version = currentVersion
|
|
33
|
+
.map((cv) => (parseInt(cv) + 1).toString())
|
|
34
|
+
.getOrElse(() => "1");
|
|
32
35
|
const { db } = yield* $(MongoClient);
|
|
33
36
|
const data = yield* $(encode(record));
|
|
34
37
|
yield* $(tsplus_module_2.match(currentVersion, {
|
|
@@ -53,4 +56,4 @@ export function createContext() {
|
|
|
53
56
|
}
|
|
54
57
|
};
|
|
55
58
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvbW9uZ29kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFHckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3JELE9BQU8sS0FBSyxRQUFRLE1BQU0sZUFBZSxDQUFBO0FBR3pDLHdHQUF3RztBQUN4RyxrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCLG1DQUFtQztBQUVuQyxNQUFNLEtBQUssR0FBRyxDQUFDLElBQVksRUFBRSxPQUEyQixFQUFFLEVBQUUsQ0FDMUQsd0JBQUEsV0FBVztLQUNSLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLDJCQUFrQixHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUM3RixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLDJCQUFrQixHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFFN0YsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxDQUNMLElBQVksRUFDWixNQUFpRCxFQUNqRCxNQUE4QztJQUM5Qyx5QkFBeUI7SUFDekIsT0FBMkIsRUFDM0IsRUFBRTtRQUNGLE9BQU8sb0JBQUEsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ3ZDLE1BQU07WUFDTixJQUFJLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1NBQzFDLENBQUMsQ0FBQyxDQUFBO1FBRUgsU0FBUyxJQUFJLENBQUMsRUFBVTtZQUN0QixPQUFPLDBCQUFBLG9CQUFBLHdCQUFBLFdBQVcsRUFDUCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUNsQiwyQkFBa0IsR0FBRyxFQUFFLENBQ3JCLEVBQUU7aUJBQ0MsVUFBVSxDQUFDLElBQUksQ0FBQztpQkFDaEIsT0FBTyxDQUE0QyxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQy9FLENBQ0YsK0JBQ3dCLEVBQ2pCLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUF1QixDQUFBLENBQUMsQ0FBQTtRQUMzRSxDQUFDO1FBRUQsU0FBUyxNQUFNLENBQUMsSUFBNEI7WUFDMUMsT0FBTywwQkFBQSxvQkFBQSx3QkFBQSxXQUFXLEVBQ1AsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FDbEIsMkJBQWtCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFnQixJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ3RHLCtCQUN3QixFQUNqQixDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzdCLENBQUM7UUFFRCxTQUFTLEtBQUssQ0FBQyxNQUFTLEVBQUUsY0FBK0I7WUFDdkQsT0FBTyxvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO2dCQUMzQixNQUFNLE9BQU8sR0FBRyxjQUFjO3FCQUMzQixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO3FCQUMxQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBRXZCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUE7Z0JBQ3BDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtnQkFDckMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNOLHNCQUFBLGNBQWMsRUFDWjtvQkFDRSxNQUFNLEVBQUUsR0FBRyxFQUFFLDhDQUNYLDJCQUNjLEdBQUcsRUFBRSxDQUNmLEVBQUU7eUJBQ0MsVUFBVSxDQUFDLElBQUksQ0FBQzt5QkFDaEIsU0FBUyxDQUNSLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxFQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUMvRDt3QkFDRSxTQUFTLEVBQUUsS0FBSyxDQUFDLGtHQUFrRztxQkFDaEcsQ0FDdEIsQ0FDSixFQUVLO29CQUNWLE1BQU0sRUFBRSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQ3pCLDhDQUFBLDJCQUNjLEdBQUcsRUFBRSxDQUNmLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUM1QixFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBUyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsRUFDbEQ7d0JBQ0UsT0FBTzt3QkFDUCxTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUU7d0JBQ3JCLElBQUk7cUJBQ0wsRUFDRCxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FDbEIsQ0FDRixHQUVRLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ2IsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQzs0QkFDckIsT0FBTyxJQUFJLHVCQUF1QixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7d0JBQ3JELENBQUM7d0JBQ0QsNEJBQWtCO29CQUNwQixDQUFDLENBQUM7aUJBQ1AsQ0FDRixDQUNGLENBQUE7Z0JBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFxQixDQUFBO1lBQ3JELENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQztJQUNILENBQUMsQ0FBQTtBQUNILENBQUMifQ==
|
|
@@ -25,7 +25,9 @@ export function createContext() {
|
|
|
25
25
|
})), (e) => new ConnectionException(new Error(e.toString())))));
|
|
26
26
|
}
|
|
27
27
|
function store(record, currentVersion) {
|
|
28
|
-
const version =
|
|
28
|
+
const version = currentVersion
|
|
29
|
+
.map((cv) => (parseInt(cv) + 1).toString())
|
|
30
|
+
.getOrElse(() => "1");
|
|
29
31
|
return tsplus_module_4.match(currentVersion, {
|
|
30
32
|
onNone: () => tsplus_module_1.scoped(tsplus_module_1.zipRight(lockIndex(record), tsplus_module_1.map(tsplus_module_1.orDie(tsplus_module_1.zipRight(tsplus_module_1.flatMap(tsplus_module_1.zipRight(tsplus_module_3.zipRightOption(getIndex(record), tsplus_module_1.fail(() => new Error("Combination already exists, abort"))), getData(record))
|
|
31
33
|
// TODO: instead use MULTI & EXEC to make it in one command?
|
|
@@ -54,7 +56,7 @@ export function createContext() {
|
|
|
54
56
|
return lockRedisIdx(index);
|
|
55
57
|
}
|
|
56
58
|
function getIdx(index) {
|
|
57
|
-
return tsplus_module_1.flatMap(RedisClient, (_) => tsplus_module_1.map(_.hget(getIdxKey(index), index.key), (_) =>
|
|
59
|
+
return tsplus_module_1.flatMap(RedisClient, (_) => tsplus_module_1.map(_.hget(getIdxKey(index), index.key), (_) => _.map((i) => i)));
|
|
58
60
|
}
|
|
59
61
|
function setIdx(index, r) {
|
|
60
62
|
return tsplus_module_1.flatMap(RedisClient, (_) => _.hset(getIdxKey(index), index.key, r.id));
|
|
@@ -109,4 +111,4 @@ export class RedisSerializedDBRecord extends S.Class()({
|
|
|
109
111
|
data: S.string
|
|
110
112
|
}) {
|
|
111
113
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNkYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvcmVkaXNkYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQ3JFLE9BQU8sS0FBSyxDQUFDLE1BQU0sNEJBQTRCLENBQUE7QUFHL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDZCQUE2QixFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDN0csT0FBTyxLQUFLLFFBQVEsTUFBTSxlQUFlLENBQUE7QUFFekMsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQTtBQUVyQixNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQ0wsSUFBWSxFQUNaLE1BQWlELEVBQ2pELE1BQThDLEVBQzlDLGFBQXFCLEVBQ3JCLFlBQTZCLEVBQzdCLEVBQUU7UUFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxvQkFBQSxDQUFDLEVBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7UUFDMUQsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ3ZDLFdBQVcsRUFBRSxNQUFNO1lBQ25CLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQztTQUN6RCxDQUFBO1FBRUQsU0FBUyxJQUFJLENBQUMsRUFBVTtZQUN0Qiw2QkFBTyw4QkFBQSx3QkFBQSxXQUFXLEVBQ1AsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFD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
|
|
@@ -44,17 +44,20 @@ export function find(tryRead, decode, type) {
|
|
|
44
44
|
}
|
|
45
45
|
export function storeDirectly(save, type) {
|
|
46
46
|
const getCache = getM(type);
|
|
47
|
-
return (record) => getCache((c) => tsplus_module_1.map(tsplus_module_1.
|
|
48
|
-
.find(record.id), (x) => x.version), (cv) => save(record, cv))
|
|
47
|
+
return (record) => getCache((c) => tsplus_module_1.map(tsplus_module_1.flatMap(tsplus_module_4.mapOption(c
|
|
48
|
+
.find(record.id), (x) => x.version), (cv) => save(record, cv))
|
|
49
|
+
.tap((r) => c.set(record.id, r)), (r) => r.data));
|
|
49
50
|
}
|
|
50
51
|
export function store(tryRead, save, lock, type) {
|
|
51
52
|
const getCache = getM(type);
|
|
52
|
-
return (record) => getCache((c) => tsplus_module_1.map(tsplus_module_1.
|
|
53
|
-
.find(record.id), (x) => x.version), (_) => tsplus_module_6.match(_, { onNone: () => save(record, tsplus_module_5.none), onSome: confirmVersionAndSave(record) }))
|
|
53
|
+
return (record) => getCache((c) => tsplus_module_1.map(tsplus_module_1.flatMap(tsplus_module_4.mapOption(c
|
|
54
|
+
.find(record.id), (x) => x.version), (_) => tsplus_module_6.match(_, { onNone: () => save(record, tsplus_module_5.none), onSome: confirmVersionAndSave(record) }))
|
|
55
|
+
.tap((r) => c.set(record.id, r)), (r) => r.data));
|
|
54
56
|
function confirmVersionAndSave(record) {
|
|
55
|
-
return (cv) => tsplus_module_1.scoped(tsplus_module_1.zipRight(lock(record.id), tsplus_module_1.zipRight(tsplus_module_1.
|
|
57
|
+
return (cv) => tsplus_module_1.scoped(tsplus_module_1.zipRight(lock(record.id), tsplus_module_1.zipRight(tsplus_module_1.flatMap(tryRead(record.id), (_) => tsplus_module_6.match(_, { onNone: () => tsplus_module_1.fail(new InvalidStateError("record is gone")), onSome: tsplus_module_1.succeed }))
|
|
58
|
+
.tap(({ version }) => version !== cv
|
|
56
59
|
? new OptimisticLockException(type, record.id)
|
|
57
60
|
: tsplus_module_1.unit), save(record, tsplus_module_6.some(cv)))));
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL3NpbXBsZWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFHOUQsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QixZQUFxQixPQUFlLEVBQVcsT0FBaUI7UUFBM0MsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFXLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFEdkQsU0FBSSxHQUFHLG1CQUFtQixDQUFBO0lBQ2dDLENBQUM7Q0FDckU7QUFFRCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE1BQU0sQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFzQyxDQUFBO0lBQ3ZELE9BQU87UUFDTCxHQUFHLEVBQUUsQ0FBSSxJQUFZLEVBQUUsRUFBRSxDQUN2QixxQkFBWSxHQUFHLEVBQUU7WUFDZixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3RCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDUixNQUFNLEVBQUUsR0FBRyxPQUFPLEVBQW1CLENBQUE7Z0JBQ3JDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO2dCQUNmLE9BQU8sRUFBd0MsQ0FBQTtZQUNqRCxDQUFDO1lBQ0QsT0FBTyxFQUF3QyxDQUFBO1FBQ2pELENBQUMsQ0FBQztLQUNMLENBQUE7QUFDSCxDQUFDO0FBSUQsYUFBYTtBQUNiLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxnQkFBQSxHQUFHLEVBQWUsQ0FBQTtBQUU3QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsdUJBQWlELFdBQVcsRUFBNUQscUJBQVksR0FBRyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFxQixDQUFBO0FBRTVGLE1B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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "0.164.
|
|
3
|
+
"version": "0.164.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
"proper-lockfile": "^4.1.2",
|
|
22
22
|
"pure-rand": "6.0.4",
|
|
23
23
|
"redlock": "^4.2.0",
|
|
24
|
-
"@effect-app/
|
|
25
|
-
"@effect-app/
|
|
24
|
+
"@effect-app/fluent-extensions": "0.115.0",
|
|
25
|
+
"@effect-app/core": "0.120.0",
|
|
26
|
+
"@effect-app/infra-adapters": "0.111.4",
|
|
26
27
|
"@effect-app/schema": "0.177.2",
|
|
27
|
-
"@effect-app/prelude": "0.
|
|
28
|
-
"@effect-app/core": "0.120.0"
|
|
28
|
+
"@effect-app/prelude": "0.142.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@babel/cli": "^7.23.9",
|