@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
|
@@ -5,10 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.createContext = createContext;
|
|
7
7
|
exports.initialise = initialise;
|
|
8
|
-
var tsplus_module_1 = _interopRequireWildcard(require("effect/
|
|
9
|
-
var tsplus_module_2 = _interopRequireWildcard(require("effect/
|
|
10
|
-
var tsplus_module_3 = _interopRequireWildcard(require("effect/
|
|
11
|
-
var tsplus_module_4 = _interopRequireWildcard(require("effect/Option"));
|
|
8
|
+
var tsplus_module_1 = _interopRequireWildcard(require("effect/Option"));
|
|
9
|
+
var tsplus_module_2 = _interopRequireWildcard(require("effect/Effect"));
|
|
10
|
+
var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/core/Option"));
|
|
12
11
|
var _Function = require("@effect-app/core/Function");
|
|
13
12
|
var _fs = _interopRequireDefault(require("fs"));
|
|
14
13
|
var PLF = _interopRequireWildcard(require("proper-lockfile"));
|
|
@@ -40,7 +39,7 @@ function createContext() {
|
|
|
40
39
|
data
|
|
41
40
|
})));
|
|
42
41
|
const idx = makeIndexKey(record);
|
|
43
|
-
return tsplus_module_1.isSome(currentVersion) ? 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] ?
|
|
42
|
+
return tsplus_module_1.isSome(currentVersion) ? 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] ? tsplus_module_2.fail(() => new Error("Combination already exists, abort")) : tsplus_module_2.zipRight(tsplus_module_2.flatMap(getData(record), serialised => fu.writeTextFile(getFilename(type, record.id), serialised)), writeIndex(idx, {
|
|
44
43
|
...x,
|
|
45
44
|
[idx.key]: record.id
|
|
46
45
|
})))))), () => ({
|
|
@@ -80,7 +79,7 @@ function createContext() {
|
|
|
80
79
|
}), l => l.release);
|
|
81
80
|
}
|
|
82
81
|
function readFile(filePath) {
|
|
83
|
-
return tsplus_module_2.catchAll(fu.readTextFile(filePath), err =>
|
|
82
|
+
return tsplus_module_2.catchAll(fu.readTextFile(filePath), err => tsplus_module_2.die(new _shared.ConnectionException(err)));
|
|
84
83
|
}
|
|
85
84
|
function find(type) {
|
|
86
85
|
return id => {
|
|
@@ -88,7 +87,7 @@ function createContext() {
|
|
|
88
87
|
};
|
|
89
88
|
}
|
|
90
89
|
function getIdx(index) {
|
|
91
|
-
return tsplus_module_2.map(readIndex(index), idx =>
|
|
90
|
+
return tsplus_module_2.map(readIndex(index), idx => tsplus_module_1.fromNullable(idx[index.key]));
|
|
92
91
|
}
|
|
93
92
|
function readIndex(index) {
|
|
94
93
|
return tsplus_module_2.map(tryRead(getIdxName(type, index.doc)), _ => tsplus_module_1.match(_, {
|
|
@@ -100,7 +99,7 @@ function createContext() {
|
|
|
100
99
|
return (0, _Function.pipe)(JSON.stringify(content), serialised => fu.writeTextFile(getIdxName(type, index.doc), serialised));
|
|
101
100
|
}
|
|
102
101
|
function tryRead(filePath) {
|
|
103
|
-
return tsplus_module_2.flatMap(fu.fileExists(filePath), exists => !exists ?
|
|
102
|
+
return tsplus_module_2.flatMap(fu.fileExists(filePath), exists => !exists ? tsplus_module_2.sync(() => tsplus_module_3.none) : tsplus_module_2.map(readFile(filePath), tsplus_module_1.some));
|
|
104
103
|
}
|
|
105
104
|
function getFilename(type, id) {
|
|
106
105
|
return `${dir}/v${schemaVersion}.${(0, _shared.getRecordName)(type, id)}.json`;
|
|
@@ -111,7 +110,7 @@ function createContext() {
|
|
|
111
110
|
};
|
|
112
111
|
}
|
|
113
112
|
function lockFile(fileName) {
|
|
114
|
-
return
|
|
113
|
+
return tsplus_module_2.tryPromise(() => PLF.lock(fileName).then((0, _Function.flow)(tsplus_module_2.tryPromise, _ => tsplus_module_2.orDie(_))));
|
|
115
114
|
}
|
|
116
115
|
// TODO: ugh.
|
|
117
116
|
let initialised = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diskdb.cjs","names":["_Function","require","_fs","_interopRequireDefault","PLF","_interopRequireWildcard","_utils","fu","_shared","simpledb","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","createContext","type","encode","decode","schemaVersion","makeIndexKey","dir","initialise","globalLock","typeLockKey","getIdxName","fs","existsSync","writeFileSync","find","findByIndex","getIdx","save","store","lockRecordOnDisk","record","currentVersion","version","tsplus_module_1","getOrElse","map","cv","parseInt","toString","getData","flow","_","tsplus_module_2","data","pretty","timestamp","Date","idx","isSome","scoped","zipRight","lockIndex","orDie","flatMap","readIndex","x","id","
|
|
1
|
+
{"version":3,"file":"diskdb.cjs","names":["_Function","require","_fs","_interopRequireDefault","PLF","_interopRequireWildcard","_utils","fu","_shared","simpledb","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","createContext","type","encode","decode","schemaVersion","makeIndexKey","dir","initialise","globalLock","typeLockKey","getIdxName","fs","existsSync","writeFileSync","find","findByIndex","getIdx","save","store","lockRecordOnDisk","record","currentVersion","version","tsplus_module_1","getOrElse","map","cv","parseInt","toString","getData","flow","_","tsplus_module_2","data","pretty","timestamp","Date","idx","isSome","scoped","zipRight","lockIndex","orDie","flatMap","readIndex","x","id","fail","Error","serialised","writeTextFile","getFilename","writeIndex","key","index","lockDiskIndex","lockKey","lockIndexOnDisk","acquireRelease","mapBoth","lockFile","onFailure","err","CouldNotAquireDbLockException","onSuccess","release","l","readFile","filePath","catchAll","readTextFile","die","ConnectionException","tryRead","s","JSON","parse","fromNullable","doc","match","onNone","onSome","content","pipe","stringify","fileExists","exists","sync","tsplus_module_3","none","some","getRecordName","getIndexName","fileName","tryPromise","lock","then","initialised","mkdirSync"],"sources":["../../../_src/services/simpledb/diskdb.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -4,12 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.createContext = createContext;
|
|
7
|
-
var tsplus_module_1 = _interopRequireWildcard(require("effect/
|
|
8
|
-
var tsplus_module_2 = _interopRequireWildcard(require("effect/
|
|
9
|
-
var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/core/
|
|
10
|
-
var tsplus_module_4 = _interopRequireWildcard(require("effect/
|
|
11
|
-
var tsplus_module_5 = _interopRequireWildcard(require("effect/Effect"));
|
|
12
|
-
var tsplus_module_6 = _interopRequireWildcard(require("effect/impl/Exit"));
|
|
7
|
+
var tsplus_module_1 = _interopRequireWildcard(require("effect/Option"));
|
|
8
|
+
var tsplus_module_2 = _interopRequireWildcard(require("effect/Effect"));
|
|
9
|
+
var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
10
|
+
var tsplus_module_4 = _interopRequireWildcard(require("effect/Exit"));
|
|
13
11
|
var _Function = require("@effect-app/core/Function");
|
|
14
12
|
var MO = _interopRequireWildcard(require("@effect-app/schema"));
|
|
15
13
|
var _shared = require("./shared.cjs");
|
|
@@ -38,7 +36,7 @@ function createContext() {
|
|
|
38
36
|
}
|
|
39
37
|
function findBy(keys, eq) {
|
|
40
38
|
// Naive implementation, fine for in memory testing purposes.
|
|
41
|
-
return tsplus_module_2.map(
|
|
39
|
+
return tsplus_module_2.map(tsplus_module_2.gen(function* ($) {
|
|
42
40
|
for (const [, value] of storage) {
|
|
43
41
|
const sdb_ = JSON.parse(value);
|
|
44
42
|
const sdb = yield* $(parseSDB(sdb_));
|
|
@@ -46,13 +44,13 @@ function createContext() {
|
|
|
46
44
|
data: JSON.parse(sdb.data),
|
|
47
45
|
version: sdb.version
|
|
48
46
|
};
|
|
49
|
-
const r = yield* $(tsplus_module_2.exit(tsplus_module_2.flatMap(decode(cr.data), d => eq(keys, d) ?
|
|
50
|
-
if (
|
|
47
|
+
const r = yield* $(tsplus_module_2.exit(tsplus_module_2.flatMap(decode(cr.data), d => eq(keys, d) ? tsplus_module_2.sync(() => d) : tsplus_module_2.fail("not equals"))));
|
|
48
|
+
if (tsplus_module_4.isSuccess(r)) {
|
|
51
49
|
return r.value;
|
|
52
50
|
}
|
|
53
51
|
}
|
|
54
52
|
return null;
|
|
55
|
-
}),
|
|
53
|
+
}), tsplus_module_1.fromNullable);
|
|
56
54
|
}
|
|
57
55
|
function store(record, currentVersion) {
|
|
58
56
|
const version = tsplus_module_1.getOrElse(tsplus_module_1.map(currentVersion, cv => (parseInt(cv) + 1).toString()), () => "1");
|
|
@@ -69,6 +67,6 @@ function createContext() {
|
|
|
69
67
|
};
|
|
70
68
|
}
|
|
71
69
|
function bogusLock() {
|
|
72
|
-
return tsplus_module_2.acquireRelease(
|
|
70
|
+
return tsplus_module_2.acquireRelease(tsplus_module_2.unit, () => tsplus_module_2.unit);
|
|
73
71
|
}
|
|
74
72
|
//# sourceMappingURL=memdb.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memdb.cjs","names":["_Function","require","MO","_interopRequireWildcard","_shared","simpledb","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","storage","makeMap","parseSDB","condemnFail","SerializedDBRecord","Parser","createContext","type","encode","decode","find","findBy","save","store","bogusLock","id","tsplus_module_3","mapOption","flatMapOption","tsplus_module_2","map","getRecordName","_","tsplus_module_1","s","JSON","parse","data","version","keys","eq","
|
|
1
|
+
{"version":3,"file":"memdb.cjs","names":["_Function","require","MO","_interopRequireWildcard","_shared","simpledb","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","storage","makeMap","parseSDB","condemnFail","SerializedDBRecord","Parser","createContext","type","encode","decode","find","findBy","save","store","bogusLock","id","tsplus_module_3","mapOption","flatMapOption","tsplus_module_2","map","getRecordName","_","tsplus_module_1","s","JSON","parse","data","version","keys","eq","gen","$","value","sdb_","sdb","cr","exit","flatMap","d","sync","fail","tsplus_module_4","isSuccess","fromNullable","record","currentVersion","getOrElse","cv","parseInt","toString","getData","flow","stringify","timestamp","Date","serialised","acquireRelease","unit"],"sources":["../../../_src/services/simpledb/memdb.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -5,10 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.createContext = createContext;
|
|
7
7
|
var tsplus_module_1 = _interopRequireWildcard(require("effect/Effect"));
|
|
8
|
-
var tsplus_module_2 = _interopRequireWildcard(require("effect/
|
|
9
|
-
var tsplus_module_3 = _interopRequireWildcard(require("effect/
|
|
10
|
-
var tsplus_module_4 = _interopRequireWildcard(require("@effect-app/core/EffectX"));
|
|
11
|
-
var tsplus_module_5 = _interopRequireWildcard(require("effect/impl/Option"));
|
|
8
|
+
var tsplus_module_2 = _interopRequireWildcard(require("effect/Option"));
|
|
9
|
+
var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
12
10
|
var _mongoClient = require("@effect-app/infra-adapters/mongo-client");
|
|
13
11
|
var _shared = require("./shared.cjs");
|
|
14
12
|
var simpledb = _interopRequireWildcard(require("./simpledb.cjs"));
|
|
@@ -18,28 +16,28 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
18
16
|
// prev[cur] = 1
|
|
19
17
|
// return prev
|
|
20
18
|
// }, {} as Record<string, number>)
|
|
21
|
-
const setup = (type, indexes) =>
|
|
19
|
+
const setup = (type, indexes) => tsplus_module_1.flatMap(tsplus_module_1.tap(_mongoClient.MongoClient, ({
|
|
22
20
|
db
|
|
23
|
-
}) => tsplus_module_1.
|
|
21
|
+
}) => tsplus_module_1.tryPromise(() => db.createCollection(type).catch(err => console.warn(err)))), ({
|
|
24
22
|
db
|
|
25
|
-
}) => tsplus_module_1.
|
|
23
|
+
}) => tsplus_module_1.tryPromise(() => db.collection(type).createIndexes(indexes)));
|
|
26
24
|
function createContext() {
|
|
27
25
|
return (type, encode, decode,
|
|
28
26
|
// schemaVersion: string,
|
|
29
27
|
indexes) => {
|
|
30
|
-
return
|
|
28
|
+
return tsplus_module_1.map(setup(type, indexes), () => ({
|
|
31
29
|
find: simpledb.find(find, decode, type),
|
|
32
30
|
findBy,
|
|
33
31
|
save: simpledb.storeDirectly(store, type)
|
|
34
32
|
}));
|
|
35
33
|
function find(id) {
|
|
36
|
-
return
|
|
34
|
+
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(_mongoClient.MongoClient, ({
|
|
37
35
|
db
|
|
38
|
-
}) => tsplus_module_1.
|
|
36
|
+
}) => tsplus_module_1.tryPromise(() => db.collection(type).findOne({
|
|
39
37
|
_id: {
|
|
40
38
|
equals: id
|
|
41
39
|
}
|
|
42
|
-
}))),
|
|
40
|
+
}))), tsplus_module_2.fromNullable), ({
|
|
43
41
|
data,
|
|
44
42
|
version
|
|
45
43
|
}) => ({
|
|
@@ -48,25 +46,25 @@ function createContext() {
|
|
|
48
46
|
}));
|
|
49
47
|
}
|
|
50
48
|
function findBy(keys) {
|
|
51
|
-
return
|
|
49
|
+
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(_mongoClient.MongoClient, ({
|
|
52
50
|
db
|
|
53
|
-
}) => tsplus_module_1.
|
|
51
|
+
}) => tsplus_module_1.tryPromise(() => db.collection(type).findOne(keys, {
|
|
54
52
|
projection: {
|
|
55
53
|
_id: 1
|
|
56
54
|
}
|
|
57
|
-
}))),
|
|
55
|
+
}))), tsplus_module_2.fromNullable), ({
|
|
58
56
|
_id
|
|
59
57
|
}) => _id);
|
|
60
58
|
}
|
|
61
59
|
function store(record, currentVersion) {
|
|
62
|
-
return tsplus_module_1.
|
|
63
|
-
const version =
|
|
60
|
+
return tsplus_module_1.gen(function* ($) {
|
|
61
|
+
const version = tsplus_module_2.getOrElse(tsplus_module_2.map(currentVersion, cv => (parseInt(cv) + 1).toString()), () => "1");
|
|
64
62
|
const {
|
|
65
63
|
db
|
|
66
64
|
} = yield* $(_mongoClient.MongoClient);
|
|
67
65
|
const data = yield* $(encode(record));
|
|
68
|
-
yield* $(
|
|
69
|
-
onNone: () =>
|
|
66
|
+
yield* $(tsplus_module_2.match(currentVersion, {
|
|
67
|
+
onNone: () => tsplus_module_1.orDie(tsplus_module_1.asUnit(tsplus_module_1.tryPromise(() => db.collection(type).insertOne({
|
|
70
68
|
_id: record.id,
|
|
71
69
|
version,
|
|
72
70
|
timestamp: new Date(),
|
|
@@ -75,7 +73,7 @@ function createContext() {
|
|
|
75
73
|
checkKeys: false // support for keys with `.` and `$`. NOTE: you can write them, read them, but NOT query for them.
|
|
76
74
|
})))),
|
|
77
75
|
|
|
78
|
-
onSome: currentVersion =>
|
|
76
|
+
onSome: currentVersion => tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => db.collection(type).replaceOne({
|
|
79
77
|
_id: record.id,
|
|
80
78
|
version: currentVersion
|
|
81
79
|
}, {
|
|
@@ -88,7 +86,7 @@ function createContext() {
|
|
|
88
86
|
if (!x.modifiedCount) {
|
|
89
87
|
return new _shared.OptimisticLockException(type, record.id);
|
|
90
88
|
}
|
|
91
|
-
return tsplus_module_1.
|
|
89
|
+
return tsplus_module_1.unit;
|
|
92
90
|
})
|
|
93
91
|
}));
|
|
94
92
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb.cjs","names":["_mongoClient","require","_shared","simpledb","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","setup","type","indexes","
|
|
1
|
+
{"version":3,"file":"mongodb.cjs","names":["_mongoClient","require","_shared","simpledb","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","setup","type","indexes","tsplus_module_1","flatMap","tap","MongoClient","db","tryPromise","createCollection","catch","err","console","warn","collection","createIndexes","createContext","encode","decode","map","find","findBy","save","storeDirectly","store","id","tsplus_module_3","mapOption","findOne","_id","equals","tsplus_module_2","fromNullable","data","version","keys","projection","record","currentVersion","gen","$","getOrElse","cv","parseInt","toString","match","onNone","orDie","asUnit","insertOne","timestamp","Date","checkKeys","onSome","replaceOne","upsert","x","modifiedCount","OptimisticLockException","unit"],"sources":["../../../_src/services/simpledb/mongodb.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -5,10 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.RedisSerializedDBRecord = void 0;
|
|
7
7
|
exports.createContext = createContext;
|
|
8
|
-
var tsplus_module_1 = _interopRequireWildcard(require("effect/
|
|
9
|
-
var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/core/
|
|
10
|
-
var tsplus_module_3 = _interopRequireWildcard(require("effect/
|
|
11
|
-
var tsplus_module_4 = _interopRequireWildcard(require("effect/Effect"));
|
|
8
|
+
var tsplus_module_1 = _interopRequireWildcard(require("effect/Effect"));
|
|
9
|
+
var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
10
|
+
var tsplus_module_3 = _interopRequireWildcard(require("effect/Option"));
|
|
12
11
|
var _Function = require("@effect-app/core/Function");
|
|
13
12
|
var _redisClient = require("@effect-app/infra-adapters/redis-client");
|
|
14
13
|
var MO = _interopRequireWildcard(require("@effect-app/schema"));
|
|
@@ -39,7 +38,7 @@ function createContext() {
|
|
|
39
38
|
function store(record, currentVersion) {
|
|
40
39
|
const version = tsplus_module_3.getOrElse(tsplus_module_3.map(currentVersion, cv => (parseInt(cv) + 1).toString()), () => "1");
|
|
41
40
|
return tsplus_module_3.match(currentVersion, {
|
|
42
|
-
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_2.zipRightOption(getIndex(record),
|
|
41
|
+
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_2.zipRightOption(getIndex(record), tsplus_module_1.fail(() => new Error("Combination already exists, abort"))), getData(record))
|
|
43
42
|
// TODO: instead use MULTI & EXEC to make it in one command?
|
|
44
43
|
, data => hmSetRec(getKey(record.id), {
|
|
45
44
|
version,
|
|
@@ -82,11 +81,11 @@ function createContext() {
|
|
|
82
81
|
// acquire
|
|
83
82
|
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(_redisClient.RedisClient, ({
|
|
84
83
|
lock
|
|
85
|
-
}) =>
|
|
84
|
+
}) => tsplus_module_1.tryPromise(() => lock.lock(lockKey, ttl))), {
|
|
86
85
|
onFailure: err => new _shared.CouldNotAquireDbLockException(type, lockKey, err),
|
|
87
86
|
// release
|
|
88
87
|
onSuccess: lock => ({
|
|
89
|
-
release: tsplus_module_1.orDie(
|
|
88
|
+
release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
|
|
90
89
|
})
|
|
91
90
|
}), l => l.release);
|
|
92
91
|
}
|
|
@@ -94,12 +93,12 @@ function createContext() {
|
|
|
94
93
|
// acquire
|
|
95
94
|
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(_redisClient.RedisClient, ({
|
|
96
95
|
lock
|
|
97
|
-
}) =>
|
|
96
|
+
}) => tsplus_module_1.tryPromise(() => lock.lock(getLockKey(id), ttl))), {
|
|
98
97
|
onFailure: err => new _shared.CouldNotAquireDbLockException(type, id, err),
|
|
99
98
|
// release
|
|
100
99
|
onSuccess: lock => ({
|
|
101
100
|
// TODO
|
|
102
|
-
release: tsplus_module_1.orDie(
|
|
101
|
+
release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
|
|
103
102
|
})
|
|
104
103
|
}), l => l.release);
|
|
105
104
|
}
|
|
@@ -120,8 +119,8 @@ function createContext() {
|
|
|
120
119
|
const enc = RedisSerializedDBRecord.Encoder(val);
|
|
121
120
|
return tsplus_module_1.flatMap(_redisClient.RedisClient, ({
|
|
122
121
|
client
|
|
123
|
-
}) => tsplus_module_1.uninterruptible(
|
|
124
|
-
client.hmset(key, "version", enc.version, "timestamp", enc.timestamp, "data", enc.data, err => err ? res(new _shared.ConnectionException(err)) : res(
|
|
122
|
+
}) => tsplus_module_1.uninterruptible(tsplus_module_1.async(res => {
|
|
123
|
+
client.hmset(key, "version", enc.version, "timestamp", enc.timestamp, "data", enc.data, err => err ? res(new _shared.ConnectionException(err)) : res(tsplus_module_1.sync(() => void 0)));
|
|
125
124
|
})));
|
|
126
125
|
}
|
|
127
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redisdb.cjs","names":["_Function","require","_redisClient","MO","_interopRequireWildcard","_shared","simpledb","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ttl","createContext","type","encode","decode","schemaVersion","makeIndexKey","getData","flow","_","tsplus_module_1","map","JSON","stringify","find","findByIndex","getIdx","save","store","lockRedisRecord","id","orDie","tsplus_module_2","flatMapOption","flatMap","RedisClient","hmgetAll","getKey","v","mapError","pipe","RedisSerializedDBRecord","Parser","condemnFail","data","version","parse","ConnectionException","Error","toString","record","currentVersion","tsplus_module_3","getOrElse","cv","parseInt","match","onNone","scoped","zipRight","lockIndex","zipRightOption","getIndex","
|
|
1
|
+
{"version":3,"file":"redisdb.cjs","names":["_Function","require","_redisClient","MO","_interopRequireWildcard","_shared","simpledb","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ttl","createContext","type","encode","decode","schemaVersion","makeIndexKey","getData","flow","_","tsplus_module_1","map","JSON","stringify","find","findByIndex","getIdx","save","store","lockRedisRecord","id","orDie","tsplus_module_2","flatMapOption","flatMap","RedisClient","hmgetAll","getKey","v","mapError","pipe","RedisSerializedDBRecord","Parser","condemnFail","data","version","parse","ConnectionException","Error","toString","record","currentVersion","tsplus_module_3","getOrElse","cv","parseInt","match","onNone","scoped","zipRight","lockIndex","zipRightOption","getIndex","fail","hmSetRec","timestamp","Date","setIndex","onSome","index","setIdx","lockRedisIdx","hget","getIdxKey","key","hset","lockKey","getIdxLockKey","acquireRelease","mapBoth","lock","tryPromise","onFailure","err","CouldNotAquireDbLockException","onSuccess","release","unlock","l","getLockKey","getRecordName","getIndexName","doc","val","enc","Encoder","client","uninterruptible","async","res","hmset","sync","Model","prop","string","date","exports"],"sources":["../../../_src/services/simpledb/redisdb.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ var tsplus_module_3 = _interopRequireWildcard(require("effect/Effect"));
|
|
|
14
14
|
var MO = _interopRequireWildcard(require("@effect-app/schema"));
|
|
15
15
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
16
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
|
-
class CouldNotAquireDbLockException extends tsplus_module_1.
|
|
17
|
+
class CouldNotAquireDbLockException extends tsplus_module_1.TaggedError("CouldNotAquireDbLockException") {
|
|
18
18
|
constructor(type, id, error) {
|
|
19
19
|
super({
|
|
20
20
|
type,
|
|
@@ -25,7 +25,7 @@ class CouldNotAquireDbLockException extends tsplus_module_1.Data.TaggedError("Co
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
exports.CouldNotAquireDbLockException = CouldNotAquireDbLockException;
|
|
28
|
-
class OptimisticLockException extends tsplus_module_1.
|
|
28
|
+
class OptimisticLockException extends tsplus_module_1.TaggedError("OptimisticLockException") {
|
|
29
29
|
constructor(type, id) {
|
|
30
30
|
super({
|
|
31
31
|
type,
|
|
@@ -35,7 +35,7 @@ class OptimisticLockException extends tsplus_module_1.Data.TaggedError("Optimist
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
exports.OptimisticLockException = OptimisticLockException;
|
|
38
|
-
class ConnectionException extends tsplus_module_1.
|
|
38
|
+
class ConnectionException extends tsplus_module_1.TaggedError("ConnectionException") {
|
|
39
39
|
constructor(cause) {
|
|
40
40
|
super({
|
|
41
41
|
cause,
|
|
@@ -68,9 +68,9 @@ function getRecordName(type, id) {
|
|
|
68
68
|
function makeMap() {
|
|
69
69
|
const map = new Map();
|
|
70
70
|
return {
|
|
71
|
-
find: k => tsplus_module_3.
|
|
71
|
+
find: k => tsplus_module_3.sync(() => tsplus_module_2.fromNullable(map.get(k))),
|
|
72
72
|
[Symbol.iterator]: () => map[Symbol.iterator](),
|
|
73
|
-
set: (k, v) => tsplus_module_3.
|
|
73
|
+
set: (k, v) => tsplus_module_3.sync(() => {
|
|
74
74
|
map.set(k, v);
|
|
75
75
|
})
|
|
76
76
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.cjs","names":["MO","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","CouldNotAquireDbLockException","tsplus_module_1","
|
|
1
|
+
{"version":3,"file":"shared.cjs","names":["MO","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","CouldNotAquireDbLockException","tsplus_module_1","TaggedError","constructor","type","id","error","message","exports","OptimisticLockException","ConnectionException","cause","_errorTag","SerializedDBRecord","Model","version","prop","string","timestamp","date","data","makeSerialisedDBRecord","s","props","number","getIndexName","getRecordName","makeMap","map","Map","find","k","tsplus_module_3","sync","tsplus_module_2","fromNullable","Symbol","iterator","v"],"sources":["../../../_src/services/simpledb/shared.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -10,11 +10,10 @@ exports.store = store;
|
|
|
10
10
|
exports.storeDirectly = storeDirectly;
|
|
11
11
|
var tsplus_module_1 = _interopRequireWildcard(require("effect/Effect"));
|
|
12
12
|
var tsplus_module_2 = _interopRequireWildcard(require("effect/Context"));
|
|
13
|
-
var tsplus_module_3 = _interopRequireWildcard(require("effect/
|
|
14
|
-
var tsplus_module_4 = _interopRequireWildcard(require("effect/
|
|
15
|
-
var tsplus_module_5 = _interopRequireWildcard(require("@effect-app/core/
|
|
13
|
+
var tsplus_module_3 = _interopRequireWildcard(require("effect/Layer"));
|
|
14
|
+
var tsplus_module_4 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
15
|
+
var tsplus_module_5 = _interopRequireWildcard(require("@effect-app/core/Option"));
|
|
16
16
|
var tsplus_module_6 = _interopRequireWildcard(require("effect/Option"));
|
|
17
|
-
var tsplus_module_7 = _interopRequireWildcard(require("effect/impl/Option"));
|
|
18
17
|
var _shared = require("./shared.cjs");
|
|
19
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
20
19
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -29,7 +28,7 @@ exports.InvalidStateError = InvalidStateError;
|
|
|
29
28
|
function makeLiveRecordCache() {
|
|
30
29
|
const m = new Map();
|
|
31
30
|
return {
|
|
32
|
-
get: type => tsplus_module_1.
|
|
31
|
+
get: type => tsplus_module_1.sync(() => {
|
|
33
32
|
const ex = m.get(type);
|
|
34
33
|
if (!ex) {
|
|
35
34
|
const nm = (0, _shared.makeMap)();
|
|
@@ -42,44 +41,44 @@ function makeLiveRecordCache() {
|
|
|
42
41
|
}
|
|
43
42
|
// module tag
|
|
44
43
|
const RecordCache = exports.RecordCache = tsplus_module_2.Tag();
|
|
45
|
-
const LiveRecordCache = exports.LiveRecordCache = tsplus_module_3.effect(RecordCache)(tsplus_module_1.
|
|
46
|
-
const getM = type => eff => tsplus_module_1.
|
|
44
|
+
const LiveRecordCache = exports.LiveRecordCache = tsplus_module_3.effect(RecordCache)(tsplus_module_1.sync(() => makeLiveRecordCache()));
|
|
45
|
+
const getM = type => eff => tsplus_module_1.gen(function* ($) {
|
|
47
46
|
const {
|
|
48
47
|
get
|
|
49
48
|
} = yield* $(RecordCache);
|
|
50
|
-
return yield* $(
|
|
49
|
+
return yield* $(tsplus_module_1.flatMap(get(type), eff));
|
|
51
50
|
});
|
|
52
51
|
function find(tryRead, decode, type) {
|
|
53
52
|
const getCache = getM(type);
|
|
54
|
-
const read = id =>
|
|
53
|
+
const read = id => tsplus_module_4.mapOption(tsplus_module_4.tapOption(tsplus_module_4.flatMapOption(tryRead(id), ({
|
|
55
54
|
data,
|
|
56
55
|
version
|
|
57
|
-
}) =>
|
|
56
|
+
}) => tsplus_module_1.mapBoth(decode(data), {
|
|
58
57
|
onFailure: err => new InvalidStateError("DB serialisation Issue", err),
|
|
59
58
|
onSuccess: data => ({
|
|
60
59
|
data,
|
|
61
60
|
version
|
|
62
61
|
})
|
|
63
62
|
})), r => getCache(c => c.set(id, r))), r => r.data);
|
|
64
|
-
return id => getCache(c =>
|
|
63
|
+
return id => getCache(c => tsplus_module_1.orElse(tsplus_module_4.mapOption(c.find(id), existing => existing.data), () => read(id)));
|
|
65
64
|
}
|
|
66
65
|
function storeDirectly(save, type) {
|
|
67
66
|
const getCache = getM(type);
|
|
68
|
-
return record => getCache(c =>
|
|
67
|
+
return record => getCache(c => tsplus_module_1.map(tsplus_module_1.tap(tsplus_module_1.flatMap(tsplus_module_4.mapOption(c.find(record.id), x => x.version), cv => save(record, cv)), r => c.set(record.id, r)), r => r.data));
|
|
69
68
|
}
|
|
70
69
|
function store(tryRead, save, lock, type) {
|
|
71
70
|
const getCache = getM(type);
|
|
72
|
-
return record => getCache(c =>
|
|
73
|
-
onNone: () => save(record,
|
|
71
|
+
return record => getCache(c => tsplus_module_1.map(tsplus_module_1.tap(tsplus_module_1.flatMap(tsplus_module_4.mapOption(c.find(record.id), x => x.version), _ => tsplus_module_6.match(_, {
|
|
72
|
+
onNone: () => save(record, tsplus_module_5.none),
|
|
74
73
|
onSome: confirmVersionAndSave(record)
|
|
75
74
|
})), r => c.set(record.id, r)), r => r.data));
|
|
76
75
|
function confirmVersionAndSave(record) {
|
|
77
|
-
return cv =>
|
|
78
|
-
onNone: () => tsplus_module_1.
|
|
79
|
-
onSome: tsplus_module_1.
|
|
76
|
+
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_6.match(_, {
|
|
77
|
+
onNone: () => tsplus_module_1.fail(new InvalidStateError("record is gone")),
|
|
78
|
+
onSome: tsplus_module_1.succeed
|
|
80
79
|
})), ({
|
|
81
80
|
version
|
|
82
|
-
}) => version !== cv ? new _shared.OptimisticLockException(type, record.id) : tsplus_module_1.
|
|
81
|
+
}) => version !== cv ? new _shared.OptimisticLockException(type, record.id) : tsplus_module_1.unit), save(record, tsplus_module_6.some(cv)))));
|
|
83
82
|
}
|
|
84
83
|
}
|
|
85
84
|
//# sourceMappingURL=simpledb.cjs.map
|