mirror of
https://github.com/excalidraw/excalidraw.git
synced 2024-11-10 11:35:52 +01:00
741d5f1a18
* refactor: move excalidraw-app outside src * move some tests to excal app and fix some * fix tests * fix * port remaining tests * fix * update snap * move tests inside test folder * fix * fix
19 lines
456 B
TypeScript
19 lines
456 B
TypeScript
export class Locker<T extends string> {
|
|
private locks = new Map<T, true>();
|
|
|
|
lock = (lockType: T) => {
|
|
this.locks.set(lockType, true);
|
|
};
|
|
|
|
/** @returns whether no locks remaining */
|
|
unlock = (lockType: T) => {
|
|
this.locks.delete(lockType);
|
|
return !this.isLocked();
|
|
};
|
|
|
|
/** @returns whether some (or specific) locks are present */
|
|
isLocked(lockType?: T) {
|
|
return lockType ? this.locks.has(lockType) : !!this.locks.size;
|
|
}
|
|
}
|