@quereus/store 2.4.1 → 2.6.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/dist/src/common/encoding.d.ts +6 -1
- package/dist/src/common/encoding.d.ts.map +1 -1
- package/dist/src/common/encoding.js +15 -2
- package/dist/src/common/encoding.js.map +1 -1
- package/dist/src/common/key-builder.d.ts +16 -6
- package/dist/src/common/key-builder.d.ts.map +1 -1
- package/dist/src/common/key-builder.js +21 -10
- package/dist/src/common/key-builder.js.map +1 -1
- package/dist/src/common/kv-store.d.ts +12 -0
- package/dist/src/common/kv-store.d.ts.map +1 -1
- package/dist/src/common/store-module.d.ts +11 -0
- package/dist/src/common/store-module.d.ts.map +1 -1
- package/dist/src/common/store-module.js +208 -13
- package/dist/src/common/store-module.js.map +1 -1
- package/dist/src/common/store-table.d.ts +86 -1
- package/dist/src/common/store-table.d.ts.map +1 -1
- package/dist/src/common/store-table.js +323 -20
- package/dist/src/common/store-table.js.map +1 -1
- package/dist/src/common/transaction.d.ts +18 -0
- package/dist/src/common/transaction.d.ts.map +1 -1
- package/dist/src/common/transaction.js +29 -0
- package/dist/src/common/transaction.js.map +1 -1
- package/package.json +3 -3
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
* providing multi-table atomicity.
|
|
6
6
|
*/
|
|
7
7
|
import { QuereusError, StatusCode } from '@quereus/quereus';
|
|
8
|
+
/** Hex-encode a key for use as a Map key. */
|
|
9
|
+
function keyToHex(key) {
|
|
10
|
+
return Array.from(key).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
11
|
+
}
|
|
8
12
|
/**
|
|
9
13
|
* Coordinates transactions across multiple tables.
|
|
10
14
|
*
|
|
@@ -161,5 +165,30 @@ export class TransactionCoordinator {
|
|
|
161
165
|
getStore() {
|
|
162
166
|
return this.store;
|
|
163
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Snapshot pending ops targeting the given store (or the default if omitted),
|
|
170
|
+
* collapsed to last-write-wins. Used by reads that need to see
|
|
171
|
+
* intra-transaction writes (e.g. UNIQUE constraint checks).
|
|
172
|
+
*/
|
|
173
|
+
getPendingOpsForStore(store) {
|
|
174
|
+
const target = store ?? this.store;
|
|
175
|
+
const puts = new Map();
|
|
176
|
+
const deletes = new Set();
|
|
177
|
+
for (const op of this.pendingOps) {
|
|
178
|
+
const opStore = op.store ?? this.store;
|
|
179
|
+
if (opStore !== target)
|
|
180
|
+
continue;
|
|
181
|
+
const hex = keyToHex(op.key);
|
|
182
|
+
if (op.type === 'put') {
|
|
183
|
+
puts.set(hex, { key: op.key, value: op.value });
|
|
184
|
+
deletes.delete(hex);
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
deletes.add(hex);
|
|
188
|
+
puts.delete(hex);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return { puts, deletes };
|
|
192
|
+
}
|
|
164
193
|
}
|
|
165
194
|
//# sourceMappingURL=transaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/common/transaction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/common/transaction.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quereus/store",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Abstract key-value storage module for Quereus",
|
|
6
6
|
"keywords": [
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"test:single": "cd ../.. && node --import ./packages/quereus-store/register.mjs node_modules/mocha/bin/mocha.js --bail"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
|
-
"@quereus/isolation": "^2.
|
|
44
|
-
"@quereus/quereus": "^2.
|
|
43
|
+
"@quereus/isolation": "^2.6.0",
|
|
44
|
+
"@quereus/quereus": "^2.6.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@quereus/isolation": "*",
|