aboutsummaryrefslogtreecommitdiff
path: root/packages/idb-bridge/src/backend-common.ts
diff options
context:
space:
mode:
authorÖzgür Kesim <oec-taler@kesim.org>2023-08-25 13:24:08 +0200
committerÖzgür Kesim <oec-taler@kesim.org>2023-08-25 13:24:08 +0200
commit5ab3070b3a63c2e8fed0e413dea06cf03fb48f1e (patch)
tree121425d99c9465f2daf8ac91c6dc2254ebac5906 /packages/idb-bridge/src/backend-common.ts
parent70fca92e781696a057089bc8bc48adebdf6e017e (diff)
parent2051aded501cddac1a4c869fb1f9731ac4523a1e (diff)
Merge branch 'master' into age-withdraw
Diffstat (limited to 'packages/idb-bridge/src/backend-common.ts')
-rw-r--r--packages/idb-bridge/src/backend-common.ts29
1 files changed, 29 insertions, 0 deletions
diff --git a/packages/idb-bridge/src/backend-common.ts b/packages/idb-bridge/src/backend-common.ts
new file mode 100644
index 000000000..d52071939
--- /dev/null
+++ b/packages/idb-bridge/src/backend-common.ts
@@ -0,0 +1,29 @@
+import { openPromise } from "./util/openPromise.js";
+
+export class AsyncCondition {
+ _waitPromise: Promise<void>;
+ _resolveWaitPromise: () => void;
+ constructor() {
+ const op = openPromise<void>();
+ this._waitPromise = op.promise;
+ this._resolveWaitPromise = op.resolve;
+ }
+
+ wait(): Promise<void> {
+ return this._waitPromise;
+ }
+
+ trigger(): void {
+ this._resolveWaitPromise();
+ const op = openPromise<void>();
+ this._waitPromise = op.promise;
+ this._resolveWaitPromise = op.resolve;
+ }
+}
+
+export enum TransactionLevel {
+ None = 0,
+ Read = 1,
+ Write = 2,
+ VersionChange = 3,
+}