// Partial Copyright Jerome Benoit. 2021-2023. All Rights Reserved.
-import { Queue } from 'mnemonist';
+import Queue from 'mnemonist/queue.js';
export enum AsyncLockType {
configuration = 'configuration',
asyncLock.acquired = true;
return;
}
- return new Promise((resolve) => {
+ return new Promise<void>((resolve) => {
asyncLock.resolveQueue.enqueue(resolve);
});
}
asyncLock.acquired = false;
return;
}
- const queuedResolve = asyncLock.resolveQueue.dequeue();
- return new Promise((resolve) => {
+ const queuedResolve = asyncLock.resolveQueue.dequeue()!;
+ return new Promise<void>((resolve) => {
queuedResolve();
resolve();
});
if (!AsyncLock.asyncLocks.has(type)) {
AsyncLock.asyncLocks.set(type, new AsyncLock());
}
- return AsyncLock.asyncLocks.get(type);
+ return AsyncLock.asyncLocks.get(type)!;
}
}