mirror of
				https://github.com/excalidraw/excalidraw.git
				synced 2025-10-31 10:54:33 +01:00 
			
		
		
		
	 741d5f1a18
			
		
	
	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;
 | |
|   }
 | |
| }
 |