mirror of
				https://github.com/excalidraw/excalidraw.git
				synced 2025-11-04 12:54:23 +01:00 
			
		
		
		
	* 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;
 | 
						|
  }
 | 
						|
}
 |