@effect-app/infra 0.44.5 → 0.45.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 +25 -0
- package/_cjs/services/simpledb/cosmosdb.cjs +6 -6
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +1 -1
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +5 -5
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +4 -4
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_src/services/simpledb/cosmosdb.ts +6 -6
- package/_src/services/simpledb/diskdb.ts +1 -1
- package/_src/services/simpledb/mongodb.ts +6 -6
- package/_src/services/simpledb/redisdb.ts +4 -4
- package/dist/services/simpledb/cosmosdb.js +7 -7
- package/dist/services/simpledb/diskdb.js +2 -2
- package/dist/services/simpledb/mongodb.js +6 -6
- package/dist/services/simpledb/redisdb.js +5 -5
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 0.45.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
- @effect-app/core@0.39.1
|
|
9
|
+
- @effect-app/infra-adapters@0.33.1
|
|
10
|
+
- @effect-app/prelude@0.34.1
|
|
11
|
+
- @effect-app/schema@0.31.1
|
|
12
|
+
|
|
13
|
+
## 0.45.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- update packages
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies
|
|
22
|
+
- Updated dependencies [ba4849c9]
|
|
23
|
+
- @effect-app/infra-adapters@0.33.0
|
|
24
|
+
- @effect-app/prelude@0.34.0
|
|
25
|
+
- @effect-app/schema@0.31.0
|
|
26
|
+
- @effect-app/core@0.39.0
|
|
27
|
+
|
|
3
28
|
## 0.44.5
|
|
4
29
|
|
|
5
30
|
### Patch Changes
|
|
@@ -19,12 +19,12 @@ class CosmosDbOperationError {
|
|
|
19
19
|
this.message = message;
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
const setup = (type, indexingPolicy) => tsplus_module_1.tap(Cosmos.db, db => tsplus_module_1.
|
|
22
|
+
const setup = (type, indexingPolicy) => tsplus_module_1.tap(Cosmos.db, db => tsplus_module_1.tryPromise(() => db.containers.create({
|
|
23
23
|
id: type,
|
|
24
24
|
indexingPolicy
|
|
25
25
|
}).catch(err => console.warn(err))));
|
|
26
26
|
// TODO: Error if current indexingPolicy does not match
|
|
27
|
-
// Effect.flatMap((db) => Effect.
|
|
27
|
+
// Effect.flatMap((db) => Effect.tryPromise(() => db.container(type).(indexes)))
|
|
28
28
|
function createContext() {
|
|
29
29
|
return (type, encode, decode,
|
|
30
30
|
// schemaVersion: string,
|
|
@@ -35,7 +35,7 @@ function createContext() {
|
|
|
35
35
|
save: simpledb.storeDirectly(store, type)
|
|
36
36
|
}));
|
|
37
37
|
function find(id) {
|
|
38
|
-
return tsplus_module_1.map(tsplus_module_1.map(tsplus_module_1.flatMap(Cosmos.db, db => tsplus_module_1.
|
|
38
|
+
return tsplus_module_1.map(tsplus_module_1.map(tsplus_module_1.flatMap(Cosmos.db, db => tsplus_module_1.tryPromise(() => db.container(type).item(id).read())), i => tsplus_module_2.fromNullable(i.resource)), _ => tsplus_module_2.map(_, ({
|
|
39
39
|
_etag,
|
|
40
40
|
data
|
|
41
41
|
}) => ({
|
|
@@ -44,7 +44,7 @@ function createContext() {
|
|
|
44
44
|
})));
|
|
45
45
|
}
|
|
46
46
|
function findBy(parameters) {
|
|
47
|
-
return tsplus_module_1.map(tsplus_module_1.map(tsplus_module_1.flatMap(Cosmos.db, db => tsplus_module_1.
|
|
47
|
+
return tsplus_module_1.map(tsplus_module_1.map(tsplus_module_1.flatMap(Cosmos.db, db => tsplus_module_1.tryPromise(() => db.container(type).items.query({
|
|
48
48
|
query: `
|
|
49
49
|
SELECT TOP 1 ${type}.id
|
|
50
50
|
FROM ${type} i
|
|
@@ -63,11 +63,11 @@ WHERE (
|
|
|
63
63
|
const version = "_etag"; // we get this from the etag anyway.
|
|
64
64
|
const db = yield* $(Cosmos.db);
|
|
65
65
|
const data = yield* $(encode(record));
|
|
66
|
-
yield* $(tsplus_module_2.match(currentVersion, () => tsplus_module_1.orDie(tsplus_module_1.asUnit(tsplus_module_1.
|
|
66
|
+
yield* $(tsplus_module_2.match(currentVersion, () => tsplus_module_1.orDie(tsplus_module_1.asUnit(tsplus_module_1.tryPromise(() => db.container(type).items.create({
|
|
67
67
|
id: record.id,
|
|
68
68
|
timestamp: new Date(),
|
|
69
69
|
data
|
|
70
|
-
})))), currentVersion => tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.
|
|
70
|
+
})))), currentVersion => tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => db.container(type).item(record.id).replace({
|
|
71
71
|
id: record.id,
|
|
72
72
|
timestamp: new Date(),
|
|
73
73
|
data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmosdb.cjs","names":["_utils","require","Cosmos","_interopRequireWildcard","_shared","simpledb","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","CosmosDbOperationError","constructor","message","setup","type","indexingPolicy","tsplus_module_1","tap","db","
|
|
1
|
+
{"version":3,"file":"cosmosdb.cjs","names":["_utils","require","Cosmos","_interopRequireWildcard","_shared","simpledb","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","CosmosDbOperationError","constructor","message","setup","type","indexingPolicy","tsplus_module_1","tap","db","tryPromise","containers","create","id","catch","err","console","warn","createContext","encode","decode","indexes","map","find","findBy","save","storeDirectly","store","flatMap","container","item","read","i","tsplus_module_2","fromNullable","resource","_","_etag","data","version","parameters","items","query","typedKeysOf","k","join","p","name","value","fetchAll","x","tsplus_module_3","head","resources","record","currentVersion","gen","$","match","orDie","asUnit","timestamp","Date","replace","accessCondition","condition","statusCode","fail","OptimisticLockException","die","tsplus_module_4","unit"],"sources":["../../../_src/services/simpledb/cosmosdb.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -101,7 +101,7 @@ function createContext() {
|
|
|
101
101
|
};
|
|
102
102
|
}
|
|
103
103
|
function lockFile(fileName) {
|
|
104
|
-
return tsplus_module_2.
|
|
104
|
+
return tsplus_module_2.tryPromise(() => PLF.lock(fileName).then((0, _Function.flow)(tsplus_module_2.tryPromise, _ => tsplus_module_2.orDie(_))));
|
|
105
105
|
}
|
|
106
106
|
// TODO: ugh.
|
|
107
107
|
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","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","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","index","lockDiskIndex","lockKey","lockIndexOnDisk","acquireRelease","mapBoth","lockFile","err","CouldNotAquireDbLockException","release","l","readFile","filePath","catchAll","readTextFile","die","ConnectionException","tryRead","s","JSON","parse","fromNullable","doc","match","content","pipe","stringify","fileExists","exists","sync","tsplus_module_3","none","some","getRecordName","getIndexName","fileName","
|
|
1
|
+
{"version":3,"file":"diskdb.cjs","names":["_Function","require","_fs","_interopRequireDefault","PLF","_interopRequireWildcard","_utils","fu","_shared","simpledb","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","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","index","lockDiskIndex","lockKey","lockIndexOnDisk","acquireRelease","mapBoth","lockFile","err","CouldNotAquireDbLockException","release","l","readFile","filePath","catchAll","readTextFile","die","ConnectionException","tryRead","s","JSON","parse","fromNullable","doc","match","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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"}
|
|
@@ -16,7 +16,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
16
16
|
// prev[cur] = 1
|
|
17
17
|
// return prev
|
|
18
18
|
// }, {} as Record<string, number>)
|
|
19
|
-
const setup = (type, indexes) => tsplus_module_1.flatMap(tsplus_module_1.tap(Mongo.db, db => tsplus_module_1.
|
|
19
|
+
const setup = (type, indexes) => tsplus_module_1.flatMap(tsplus_module_1.tap(Mongo.db, db => tsplus_module_1.tryPromise(() => db.createCollection(type).catch(err => console.warn(err)))), db => tsplus_module_1.tryPromise(() => db.collection(type).createIndexes(indexes)));
|
|
20
20
|
function createContext() {
|
|
21
21
|
return (type, encode, decode,
|
|
22
22
|
// schemaVersion: string,
|
|
@@ -27,7 +27,7 @@ function createContext() {
|
|
|
27
27
|
save: simpledb.storeDirectly(store, type)
|
|
28
28
|
}));
|
|
29
29
|
function find(id) {
|
|
30
|
-
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(Mongo.db, db => tsplus_module_1.
|
|
30
|
+
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(Mongo.db, db => tsplus_module_1.tryPromise(() => db.collection(type).findOne({
|
|
31
31
|
_id: {
|
|
32
32
|
equals: id
|
|
33
33
|
}
|
|
@@ -40,7 +40,7 @@ function createContext() {
|
|
|
40
40
|
}));
|
|
41
41
|
}
|
|
42
42
|
function findBy(keys) {
|
|
43
|
-
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(Mongo.db, db => tsplus_module_1.
|
|
43
|
+
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(Mongo.db, db => tsplus_module_1.tryPromise(() => db.collection(type).findOne(keys, {
|
|
44
44
|
projection: {
|
|
45
45
|
_id: 1
|
|
46
46
|
}
|
|
@@ -53,14 +53,14 @@ function createContext() {
|
|
|
53
53
|
const version = tsplus_module_2.getOrElse(tsplus_module_2.map(currentVersion, cv => (parseInt(cv) + 1).toString()), () => "1");
|
|
54
54
|
const db = yield* $(Mongo.db);
|
|
55
55
|
const data = yield* $(encode(record));
|
|
56
|
-
yield* $(tsplus_module_2.match(currentVersion, () => tsplus_module_1.orDie(tsplus_module_1.asUnit(tsplus_module_1.
|
|
56
|
+
yield* $(tsplus_module_2.match(currentVersion, () => tsplus_module_1.orDie(tsplus_module_1.asUnit(tsplus_module_1.tryPromise(() => db.collection(type).insertOne({
|
|
57
57
|
_id: record.id,
|
|
58
58
|
version,
|
|
59
59
|
timestamp: new Date(),
|
|
60
60
|
data
|
|
61
61
|
}, {
|
|
62
62
|
checkKeys: false // support for keys with `.` and `$`. NOTE: you can write them, read them, but NOT query for them.
|
|
63
|
-
})))), currentVersion => tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.
|
|
63
|
+
})))), currentVersion => tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => db.collection(type).replaceOne({
|
|
64
64
|
_id: record.id,
|
|
65
65
|
version: currentVersion
|
|
66
66
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb.cjs","names":["Mongo","_interopRequireWildcard","require","_shared","simpledb","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","setup","type","indexes","tsplus_module_1","flatMap","tap","db","
|
|
1
|
+
{"version":3,"file":"mongodb.cjs","names":["Mongo","_interopRequireWildcard","require","_shared","simpledb","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","setup","type","indexes","tsplus_module_1","flatMap","tap","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","orDie","asUnit","insertOne","timestamp","Date","checkKeys","replaceOne","upsert","x","modifiedCount","fail","OptimisticLockException","unit"],"sources":["../../../_src/services/simpledb/mongodb.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -76,19 +76,19 @@ function createContext() {
|
|
|
76
76
|
function lockRedisIdx(index) {
|
|
77
77
|
const lockKey = getIdxLockKey(index);
|
|
78
78
|
// acquire
|
|
79
|
-
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RED.lock, lock => tsplus_module_1.
|
|
79
|
+
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RED.lock, lock => tsplus_module_1.tryPromise(() => lock.lock(lockKey, ttl))), err => new _shared.CouldNotAquireDbLockException(type, lockKey, err),
|
|
80
80
|
// release
|
|
81
81
|
lock => ({
|
|
82
|
-
release: tsplus_module_1.orDie(tsplus_module_1.
|
|
82
|
+
release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
|
|
83
83
|
})), l => l.release);
|
|
84
84
|
}
|
|
85
85
|
function lockRedisRecord(id) {
|
|
86
86
|
// acquire
|
|
87
|
-
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RED.lock, lock => tsplus_module_1.
|
|
87
|
+
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RED.lock, lock => tsplus_module_1.tryPromise(() => lock.lock(getLockKey(id), ttl))), err => new _shared.CouldNotAquireDbLockException(type, id, err),
|
|
88
88
|
// release
|
|
89
89
|
lock => ({
|
|
90
90
|
// TODO
|
|
91
|
-
release: tsplus_module_1.orDie(tsplus_module_1.
|
|
91
|
+
release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
|
|
92
92
|
})), l => l.release);
|
|
93
93
|
}
|
|
94
94
|
function getKey(id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redisdb.cjs","names":["_Function","require","MO","_interopRequireWildcard","RED","_shared","simpledb","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","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","hmgetAll","getKey","v","mapError","pipe","RedisSerializedDBRecord","Parser","condemnFail","data","version","parse","e","ConnectionException","Error","toString","record","currentVersion","tsplus_module_3","getOrElse","cv","parseInt","match","scoped","zipRight","lockIndex","flatMap","zipRightOption","getIndex","fail","hmSetRec","timestamp","Date","setIndex","index","setIdx","lockRedisIdx","hget","getIdxKey","i","r","hset","lockKey","getIdxLockKey","acquireRelease","mapBoth","lock","
|
|
1
|
+
{"version":3,"file":"redisdb.cjs","names":["_Function","require","MO","_interopRequireWildcard","RED","_shared","simpledb","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","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","hmgetAll","getKey","v","mapError","pipe","RedisSerializedDBRecord","Parser","condemnFail","data","version","parse","e","ConnectionException","Error","toString","record","currentVersion","tsplus_module_3","getOrElse","cv","parseInt","match","scoped","zipRight","lockIndex","flatMap","zipRightOption","getIndex","fail","hmSetRec","timestamp","Date","setIndex","index","setIdx","lockRedisIdx","hget","getIdxKey","i","r","hset","lockKey","getIdxLockKey","acquireRelease","mapBoth","lock","tryPromise","err","CouldNotAquireDbLockException","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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"}
|
|
@@ -13,14 +13,14 @@ class CosmosDbOperationError {
|
|
|
13
13
|
|
|
14
14
|
const setup = (type: string, indexingPolicy: IndexingPolicy) =>
|
|
15
15
|
Cosmos.db.tap(db =>
|
|
16
|
-
Effect.
|
|
16
|
+
Effect.tryPromise(() =>
|
|
17
17
|
db.containers
|
|
18
18
|
.create({ id: type, indexingPolicy })
|
|
19
19
|
.catch(err => console.warn(err))
|
|
20
20
|
)
|
|
21
21
|
)
|
|
22
22
|
// TODO: Error if current indexingPolicy does not match
|
|
23
|
-
// Effect.flatMap((db) => Effect.
|
|
23
|
+
// Effect.flatMap((db) => Effect.tryPromise(() => db.container(type).(indexes)))
|
|
24
24
|
export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>() {
|
|
25
25
|
return <REncode, RDecode, EDecode>(
|
|
26
26
|
type: string,
|
|
@@ -37,7 +37,7 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
|
|
|
37
37
|
|
|
38
38
|
function find(id: string) {
|
|
39
39
|
return Cosmos.db
|
|
40
|
-
.flatMap(db => Effect.
|
|
40
|
+
.flatMap(db => Effect.tryPromise(() => db.container(type).item(id).read<{ data: EA }>()))
|
|
41
41
|
.map(i => Option.fromNullable(i.resource))
|
|
42
42
|
.map(
|
|
43
43
|
_ =>
|
|
@@ -50,7 +50,7 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
|
|
|
50
50
|
function findBy(parameters: Record<string, string>) {
|
|
51
51
|
return Cosmos.db
|
|
52
52
|
.flatMap(db =>
|
|
53
|
-
Effect.
|
|
53
|
+
Effect.tryPromise(() =>
|
|
54
54
|
db
|
|
55
55
|
.container(type)
|
|
56
56
|
.items.query({
|
|
@@ -87,7 +87,7 @@ WHERE (
|
|
|
87
87
|
yield* $(
|
|
88
88
|
currentVersion.match(
|
|
89
89
|
() =>
|
|
90
|
-
Effect.
|
|
90
|
+
Effect.tryPromise(() =>
|
|
91
91
|
db.container(type).items.create({
|
|
92
92
|
id: record.id,
|
|
93
93
|
timestamp: new Date(),
|
|
@@ -95,7 +95,7 @@ WHERE (
|
|
|
95
95
|
})
|
|
96
96
|
).asUnit.orDie,
|
|
97
97
|
currentVersion =>
|
|
98
|
-
Effect.
|
|
98
|
+
Effect.tryPromise(() =>
|
|
99
99
|
db
|
|
100
100
|
.container(type)
|
|
101
101
|
.item(record.id)
|
|
@@ -141,7 +141,7 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
|
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
function lockFile(fileName: string) {
|
|
144
|
-
return Effect.
|
|
144
|
+
return Effect.tryPromise(() => PLF.lock(fileName).then(flow(Effect.tryPromise, _ => _.orDie)))
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
// TODO: ugh.
|
|
@@ -13,8 +13,8 @@ import type { Version } from "./simpledb.js"
|
|
|
13
13
|
|
|
14
14
|
const setup = (type: string, indexes: IndexDescription[]) =>
|
|
15
15
|
Mongo.db
|
|
16
|
-
.tap(db => Effect.
|
|
17
|
-
.flatMap(db => Effect.
|
|
16
|
+
.tap(db => Effect.tryPromise(() => db.createCollection(type).catch(err => console.warn(err))))
|
|
17
|
+
.flatMap(db => Effect.tryPromise(() => db.collection(type).createIndexes(indexes)))
|
|
18
18
|
|
|
19
19
|
export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>() {
|
|
20
20
|
return <REncode, RDecode, EDecode>(
|
|
@@ -33,7 +33,7 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
|
|
|
33
33
|
function find(id: string) {
|
|
34
34
|
return Mongo.db
|
|
35
35
|
.flatMap(db =>
|
|
36
|
-
Effect.
|
|
36
|
+
Effect.tryPromise(() =>
|
|
37
37
|
db
|
|
38
38
|
.collection(type)
|
|
39
39
|
.findOne<{ _id: TKey; version: Version; data: EA }>({ _id: { equals: id } })
|
|
@@ -46,7 +46,7 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
|
|
|
46
46
|
function findBy(keys: Record<string, string>) {
|
|
47
47
|
return Mongo.db
|
|
48
48
|
.flatMap(db =>
|
|
49
|
-
Effect.
|
|
49
|
+
Effect.tryPromise(() => db.collection(type).findOne<{ _id: TKey }>(keys, { projection: { _id: 1 } }))
|
|
50
50
|
)
|
|
51
51
|
.map(Option.fromNullable)
|
|
52
52
|
.mapOpt(({ _id }) => _id)
|
|
@@ -63,7 +63,7 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
|
|
|
63
63
|
yield* $(
|
|
64
64
|
currentVersion.match(
|
|
65
65
|
() =>
|
|
66
|
-
Effect.
|
|
66
|
+
Effect.tryPromise(() =>
|
|
67
67
|
db
|
|
68
68
|
.collection(type)
|
|
69
69
|
.insertOne(
|
|
@@ -74,7 +74,7 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
|
|
|
74
74
|
)
|
|
75
75
|
).asUnit.orDie,
|
|
76
76
|
currentVersion =>
|
|
77
|
-
Effect.
|
|
77
|
+
Effect.tryPromise(() =>
|
|
78
78
|
db.collection(type).replaceOne(
|
|
79
79
|
{ _id: record.id, version: currentVersion },
|
|
80
80
|
{
|
|
@@ -102,12 +102,12 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
|
|
|
102
102
|
const lockKey = getIdxLockKey(index)
|
|
103
103
|
// acquire
|
|
104
104
|
return RED.lock
|
|
105
|
-
.flatMap(lock => Effect.
|
|
105
|
+
.flatMap(lock => Effect.tryPromise(() => lock.lock(lockKey, ttl) as unknown as Promise<Lock>))
|
|
106
106
|
.mapBoth(
|
|
107
107
|
err => new CouldNotAquireDbLockException(type, lockKey, err as Error),
|
|
108
108
|
// release
|
|
109
109
|
lock => ({
|
|
110
|
-
release: Effect.
|
|
110
|
+
release: Effect.tryPromise(() => lock.unlock() as unknown as Promise<void>)
|
|
111
111
|
.orDie
|
|
112
112
|
})
|
|
113
113
|
).acquireRelease(
|
|
@@ -119,7 +119,7 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
|
|
|
119
119
|
// acquire
|
|
120
120
|
return RED.lock
|
|
121
121
|
.flatMap(lock =>
|
|
122
|
-
Effect.
|
|
122
|
+
Effect.tryPromise(
|
|
123
123
|
() => lock.lock(getLockKey(id), ttl) as unknown as Promise<Lock>
|
|
124
124
|
)
|
|
125
125
|
)
|
|
@@ -128,7 +128,7 @@ export function createContext<TKey extends string, EA, A extends DBRecord<TKey>>
|
|
|
128
128
|
// release
|
|
129
129
|
lock => ({
|
|
130
130
|
// TODO
|
|
131
|
-
release: Effect.
|
|
131
|
+
release: Effect.tryPromise(() => lock.unlock() as unknown as Promise<void>)
|
|
132
132
|
.orDie
|
|
133
133
|
})
|
|
134
134
|
).acquireRelease(
|
|
@@ -11,11 +11,11 @@ class CosmosDbOperationError {
|
|
|
11
11
|
this.message = message;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
const setup = (type, indexingPolicy) => tsplus_module_1.tap(Cosmos.db, db => tsplus_module_1.
|
|
14
|
+
const setup = (type, indexingPolicy) => tsplus_module_1.tap(Cosmos.db, db => tsplus_module_1.tryPromise(() => db.containers
|
|
15
15
|
.create({ id: type, indexingPolicy })
|
|
16
16
|
.catch(err => console.warn(err))));
|
|
17
17
|
// TODO: Error if current indexingPolicy does not match
|
|
18
|
-
// Effect.flatMap((db) => Effect.
|
|
18
|
+
// Effect.flatMap((db) => Effect.tryPromise(() => db.container(type).(indexes)))
|
|
19
19
|
export function createContext() {
|
|
20
20
|
return (type, encode, decode,
|
|
21
21
|
// schemaVersion: string,
|
|
@@ -26,10 +26,10 @@ export function createContext() {
|
|
|
26
26
|
save: simpledb.storeDirectly(store, type)
|
|
27
27
|
}));
|
|
28
28
|
function find(id) {
|
|
29
|
-
return tsplus_module_1.map(tsplus_module_1.map(tsplus_module_1.flatMap(Cosmos.db, db => tsplus_module_1.
|
|
29
|
+
return tsplus_module_1.map(tsplus_module_1.map(tsplus_module_1.flatMap(Cosmos.db, db => tsplus_module_1.tryPromise(() => db.container(type).item(id).read())), i => tsplus_module_2.fromNullable(i.resource)), _ => tsplus_module_2.map(_, ({ _etag, data }) => ({ version: _etag, data })));
|
|
30
30
|
}
|
|
31
31
|
function findBy(parameters) {
|
|
32
|
-
return tsplus_module_1.map(tsplus_module_1.map(tsplus_module_1.flatMap(Cosmos.db, db => tsplus_module_1.
|
|
32
|
+
return tsplus_module_1.map(tsplus_module_1.map(tsplus_module_1.flatMap(Cosmos.db, db => tsplus_module_1.tryPromise(() => db
|
|
33
33
|
.container(type)
|
|
34
34
|
.items.query({
|
|
35
35
|
query: `
|
|
@@ -53,11 +53,11 @@ WHERE (
|
|
|
53
53
|
const version = "_etag"; // we get this from the etag anyway.
|
|
54
54
|
const db = yield* $(Cosmos.db);
|
|
55
55
|
const data = yield* $(encode(record));
|
|
56
|
-
yield* $(tsplus_module_2.match(currentVersion, () => tsplus_module_1.orDie(tsplus_module_1.asUnit(tsplus_module_1.
|
|
56
|
+
yield* $(tsplus_module_2.match(currentVersion, () => tsplus_module_1.orDie(tsplus_module_1.asUnit(tsplus_module_1.tryPromise(() => db.container(type).items.create({
|
|
57
57
|
id: record.id,
|
|
58
58
|
timestamp: new Date(),
|
|
59
59
|
data
|
|
60
|
-
})))), currentVersion => tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.
|
|
60
|
+
})))), currentVersion => tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => db
|
|
61
61
|
.container(type)
|
|
62
62
|
.item(record.id)
|
|
63
63
|
.replace({
|
|
@@ -83,4 +83,4 @@ WHERE (
|
|
|
83
83
|
}
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zbW9zZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL2Nvc21vc2RiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFFcEQsT0FBTyxLQUFLLE1BQU0sTUFBTSwwQ0FBMEMsQ0FBQTtBQUVsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDckQsT0FBTyxLQUFLLFFBQVEsTUFBTSxlQUFlLENBQUE7QUFHekMsTUFBTSxzQkFBc0I7SUFDMUIsWUFBcUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDO0NBQ3pDO0FBRUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFZLEVBQUUsY0FBOEIsRUFBRSxFQUFFLENBQzdELG9CQUFBLE1BQU0sQ0FBQyxFQUFFLEVBQUssRUFBRSxDQUFDLEVBQUUsQ0FDakIsMkJBQWtCLEdBQUcsRUFBRSxDQUNyQixFQUFFLENBQUMsVUFBVTtLQUNWLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUM7S0FDcEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNuQyxDQUNGLENBQUE7QUFDSCx1REFBdUQ7QUFDdkQsZ0ZBQWdGO0FBQ2hGLE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FDTCxJQUFZLEVBQ1osTUFBaUQsRUFDakQsTUFBOEM7SUFDOUMseUJBQXlCO0lBQ3pCLE9BQXVCLEVBQ3ZCLEVBQUU7UUFDRixPQUFPLG9CQUFBLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNyQyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFB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
|
|
@@ -80,7 +80,7 @@ export function createContext() {
|
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
82
|
function lockFile(fileName) {
|
|
83
|
-
return tsplus_module_2.
|
|
83
|
+
return tsplus_module_2.tryPromise(() => PLF.lock(fileName).then(flow(tsplus_module_2.tryPromise, _ => tsplus_module_2.orDie(_))));
|
|
84
84
|
}
|
|
85
85
|
// TODO: ugh.
|
|
86
86
|
let initialised = false;
|
|
@@ -93,4 +93,4 @@ export function initialise(dir) {
|
|
|
93
93
|
}
|
|
94
94
|
initialised = true;
|
|
95
95
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlza2RiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9zaW1wbGVkYi9kaXNrZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDbkIsT0FBTyxLQUFLLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQTtBQUV0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDL0MsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsNkJBQTZCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUM3RyxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUd6QyxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQ0wsSUFBWSxFQUNaLE1BQWlELEVBQ2pELE1BQThDLEVBQzlDLGFBQXFCLEVBQ3JCLFlBQTZCLEVBQzdCLEdBQUcsR0FBRyxXQUFXLEVBQ2pCLEVBQUU7UUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDZixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUE7UUFDaEMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUNoRCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMvQixFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUE7U0FDM0M7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDN0MsV0FBVyxF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
|
|
@@ -8,7 +8,7 @@ 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(tsplus_module_1.tap(Mongo.db, db => tsplus_module_1.
|
|
11
|
+
const setup = (type, indexes) => tsplus_module_1.flatMap(tsplus_module_1.tap(Mongo.db, db => tsplus_module_1.tryPromise(() => db.createCollection(type).catch(err => console.warn(err)))), db => tsplus_module_1.tryPromise(() => db.collection(type).createIndexes(indexes)));
|
|
12
12
|
export function createContext() {
|
|
13
13
|
return (type, encode, decode,
|
|
14
14
|
// schemaVersion: string,
|
|
@@ -19,23 +19,23 @@ export function createContext() {
|
|
|
19
19
|
save: simpledb.storeDirectly(store, type)
|
|
20
20
|
}));
|
|
21
21
|
function find(id) {
|
|
22
|
-
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(Mongo.db, db => tsplus_module_1.
|
|
22
|
+
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(Mongo.db, db => tsplus_module_1.tryPromise(() => db
|
|
23
23
|
.collection(type)
|
|
24
24
|
.findOne({ _id: { equals: id } }))), tsplus_module_2.fromNullable), ({ data, version }) => ({ version, data }));
|
|
25
25
|
}
|
|
26
26
|
function findBy(keys) {
|
|
27
|
-
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(Mongo.db, db => tsplus_module_1.
|
|
27
|
+
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(Mongo.db, db => tsplus_module_1.tryPromise(() => db.collection(type).findOne(keys, { projection: { _id: 1 } }))), tsplus_module_2.fromNullable), ({ _id }) => _id);
|
|
28
28
|
}
|
|
29
29
|
function store(record, currentVersion) {
|
|
30
30
|
return tsplus_module_1.gen(function* ($) {
|
|
31
31
|
const version = tsplus_module_2.getOrElse(tsplus_module_2.map(currentVersion, cv => (parseInt(cv) + 1).toString()), () => "1");
|
|
32
32
|
const db = yield* $(Mongo.db);
|
|
33
33
|
const data = yield* $(encode(record));
|
|
34
|
-
yield* $(tsplus_module_2.match(currentVersion, () => tsplus_module_1.orDie(tsplus_module_1.asUnit(tsplus_module_1.
|
|
34
|
+
yield* $(tsplus_module_2.match(currentVersion, () => tsplus_module_1.orDie(tsplus_module_1.asUnit(tsplus_module_1.tryPromise(() => db
|
|
35
35
|
.collection(type)
|
|
36
36
|
.insertOne({ _id: record.id, version, timestamp: new Date(), data }, {
|
|
37
37
|
checkKeys: false // support for keys with `.` and `$`. NOTE: you can write them, read them, but NOT query for them.
|
|
38
|
-
})))), currentVersion => tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.
|
|
38
|
+
})))), currentVersion => tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => db.collection(type).replaceOne({ _id: record.id, version: currentVersion }, {
|
|
39
39
|
version,
|
|
40
40
|
timestamp: new Date(),
|
|
41
41
|
data
|
|
@@ -50,4 +50,4 @@ export function createContext() {
|
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvbW9uZ29kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxPQUFPLEtBQUssS0FBSyxNQUFNLHlDQUF5QyxDQUFBO0FBRWhFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNyRCxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUd6Qyx3R0FBd0c7QUFDeEcsa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixtQ0FBbUM7QUFFbkMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFZLEVBQUUsT0FBMkIsRUFBRSxFQUFFLENBQzFELHdCQUFBLG9CQUFBLEtBQUssQ0FBQyxFQUFFLEVBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQywyQkFBa0IsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3JGLEVBQUUsQ0FBQyxFQUFFLENBQUMsMkJBQWtCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUV2RixNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQ0wsSUFBWSxFQUNaLE1BQWlELEVBQ2pELE1BQThDO0lBQzlDLHlCQUF5QjtJQUN6QixPQUEyQixFQUMzQixFQUFFO1FBQ0YsT0FBTyxvQkFBQSxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDckMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDdkMsTUFBTTtZQUNOLElBQUksRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7U0FDMUMsQ0FBQyxDQUFDLENBQUE7UUFFSCxTQUFTLElBQUksQ0FBQyxFQUFVO1lBQ3RCLE9BQU8sMEJBQUEsb0JBQUEsd0JBQUEsS0FBSyxDQUFDLEVBQUUsRUFDSixFQUFFLENBQUMsRUFBRSxDQUNaLDJCQUFrQixHQUFHLEVBQUUsQ0FDckIsRUFBRTtpQkFDQyxVQUFVLENBQUMsSUFBSSxDQUFDO2lCQUNoQixPQUFPLENBQTRDLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FDL0UsQ0FDRiwrQkFDd0IsRUFDakIsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQXVCLENBQUEsQ0FBQyxDQUFBO1FBQzNFLENBQUM7UUFFRCxTQUFTLE1BQU0sQ0FBQyxJQUE0QjtZQUMxQyxPQUFPLDBCQUFBLG9CQUFBLHdCQUFBLEtBQUssQ0FBQyxFQUFFLEVBQ0osRUFBRSxDQUFDLEVBQUUsQ0FDWiwyQkFBa0IsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQWdCLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FDdEcsK0JBQ3dCLEVBQ2pCLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDN0IsQ0FBQztRQUVELFNBQVMsS0FBSyxDQUFDLE1BQVMsRUFBRSxjQUErQjtZQUN2RCxPQUFPLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7Z0JBQzNCLE1BQU0sT0FBTyxHQUFHLDBCQUFBLG9CQUFBLGNBQWMsRUFDdkIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUM5QixHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFFdkIsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtnQkFDN0IsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO2dCQUNyQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ04sc0JBQUEsY0FBYyxFQUNaLEdBQUcsRUFBRSw4Q0FDSCwyQkFBa0IsR0FBRyxFQUFFLENBQ3JCLEVBQUU7cUJBQ0MsVUFBVSxDQUFDLElBQUksQ0FBQztxQkFDaEIsU0FBUyxDQUNSLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxFQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUMvRDtvQkFDRSxTQUFTLEVBQUUsS0FBSyxDQUFDLGtHQUFrRztpQkFDaEcsQ0FDdEIsQ0FDSixFQUFhLEVBQ2hCLGNBQWMsQ0FBQyxFQUFFLENBQ2YsOENBQUEsMkJBQWtCLEdBQUcsRUFBRSxDQUNyQixFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FDNUIsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLEVBQzNDO29CQUNFLE9BQU87b0JBQ1AsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFO29CQUNyQixJQUFJO2lCQUNMLEVBQ0QsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQ2xCLENBQ0YsR0FBZSxDQUFDLENBQUMsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUU7d0JBQ3BCLE9BQU8scUJBQVksSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7cUJBQ2pFO29CQUNELDRCQUFrQjtnQkFDcEIsQ0FBQyxDQUFDLENBQ0wsQ0FDRixDQUFBO2dCQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBcUIsQ0FBQTtZQUNyRCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7SUFDSCxDQUFDLENBQUE7QUFDSCxDQUFDIn0=
|
|
@@ -57,19 +57,19 @@ export function createContext() {
|
|
|
57
57
|
function lockRedisIdx(index) {
|
|
58
58
|
const lockKey = getIdxLockKey(index);
|
|
59
59
|
// acquire
|
|
60
|
-
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RED.lock, lock => tsplus_module_1.
|
|
60
|
+
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RED.lock, lock => tsplus_module_1.tryPromise(() => lock.lock(lockKey, ttl))), err => new CouldNotAquireDbLockException(type, lockKey, err),
|
|
61
61
|
// release
|
|
62
62
|
lock => ({
|
|
63
|
-
release: tsplus_module_1.orDie(tsplus_module_1.
|
|
63
|
+
release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
|
|
64
64
|
})), l => l.release);
|
|
65
65
|
}
|
|
66
66
|
function lockRedisRecord(id) {
|
|
67
67
|
// acquire
|
|
68
|
-
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RED.lock, lock => tsplus_module_1.
|
|
68
|
+
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RED.lock, lock => tsplus_module_1.tryPromise(() => lock.lock(getLockKey(id), ttl))), err => new CouldNotAquireDbLockException(type, id, err),
|
|
69
69
|
// release
|
|
70
70
|
lock => ({
|
|
71
71
|
// TODO
|
|
72
|
-
release: tsplus_module_1.orDie(tsplus_module_1.
|
|
72
|
+
release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
|
|
73
73
|
})), l => l.release);
|
|
74
74
|
}
|
|
75
75
|
function getKey(id) {
|
|
@@ -100,4 +100,4 @@ export class RedisSerializedDBRecord extends MO.Model()({
|
|
|
100
100
|
data: MO.prop(MO.string)
|
|
101
101
|
}) {
|
|
102
102
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNkYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvcmVkaXNkYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN0RCxPQUFPLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBR3hDLE9BQU8sS0FBSyxHQUFHLE1BQU0seUNBQXlDLENBQUE7QUFFOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDZCQUE2QixFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDN0csT0FBTyxLQUFLLFFBQVEsTUFBTSxlQUFlLENBQUE7QUFFekMsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQTtBQUVyQixNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQ0wsSUFBWSxFQUNaLE1BQWlELEVBQ2pELE1BQThDLEVBQzlDLGFBQXFCLEVBQ3JCLFlBQTZCLEVBQzdCLEVBQUU7UUFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsb0JBQUEsQ0FBQyxFQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO1FBQ3hELE9BQU87WUFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztZQUN2QyxXQUFXLEVBQUUsTUFBTTtZQUNuQixJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUM7U0FDekQsQ0FBQTtRQUVELFNBQVMsSUFBSSxDQUFDLEVBQVU7WUFDdEIsNkJBQU8sOEJBQUEsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENB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
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.45.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@azure/cosmos": "^3.17.3",
|
|
8
8
|
"@azure/service-bus": "^7.8.1",
|
|
9
|
-
"@effect/data": "^0.
|
|
10
|
-
"@effect/io": "^0.
|
|
9
|
+
"@effect/data": "^0.10.2",
|
|
10
|
+
"@effect/io": "^0.17.0",
|
|
11
11
|
"@sendgrid/helpers": "^7.7.0",
|
|
12
12
|
"@sendgrid/mail": "^7.7.0",
|
|
13
13
|
"change-case": "^4.1.2",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"proper-lockfile": "^4.1.2",
|
|
20
20
|
"pure-rand": "^6.0.1",
|
|
21
21
|
"redlock": "^4.2.0",
|
|
22
|
-
"@effect-app/
|
|
23
|
-
"@effect-app/
|
|
24
|
-
"@effect-app/
|
|
25
|
-
"@effect-app/
|
|
22
|
+
"@effect-app/infra-adapters": "0.33.1",
|
|
23
|
+
"@effect-app/prelude": "0.34.1",
|
|
24
|
+
"@effect-app/schema": "0.31.1",
|
|
25
|
+
"@effect-app/core": "0.39.1"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@babel/cli": "^7.21.0",
|