78 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			78 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import * as fs from 'fs' | ||
|  | 
 | ||
|  | export function directoryExistsSync(path: string, required?: boolean): boolean { | ||
|  |   if (!path) { | ||
|  |     throw new Error("Arg 'path' must not be empty") | ||
|  |   } | ||
|  | 
 | ||
|  |   let stats: fs.Stats | ||
|  |   try { | ||
|  |     stats = fs.statSync(path) | ||
|  |   } catch (error) { | ||
|  |     if (error.code === 'ENOENT') { | ||
|  |       if (!required) { | ||
|  |         return false | ||
|  |       } | ||
|  | 
 | ||
|  |       throw new Error(`Directory '${path}' does not exist`) | ||
|  |     } | ||
|  | 
 | ||
|  |     throw new Error( | ||
|  |       `Encountered an error when checking whether path '${path}' exists: ${error.message}` | ||
|  |     ) | ||
|  |   } | ||
|  | 
 | ||
|  |   if (stats.isDirectory()) { | ||
|  |     return true | ||
|  |   } else if (!required) { | ||
|  |     return false | ||
|  |   } | ||
|  | 
 | ||
|  |   throw new Error(`Directory '${path}' does not exist`) | ||
|  | } | ||
|  | 
 | ||
|  | export function existsSync(path: string): boolean { | ||
|  |   if (!path) { | ||
|  |     throw new Error("Arg 'path' must not be empty") | ||
|  |   } | ||
|  | 
 | ||
|  |   try { | ||
|  |     fs.statSync(path) | ||
|  |   } catch (error) { | ||
|  |     if (error.code === 'ENOENT') { | ||
|  |       return false | ||
|  |     } | ||
|  | 
 | ||
|  |     throw new Error( | ||
|  |       `Encountered an error when checking whether path '${path}' exists: ${error.message}` | ||
|  |     ) | ||
|  |   } | ||
|  | 
 | ||
|  |   return true | ||
|  | } | ||
|  | 
 | ||
|  | export function fileExistsSync(path: string): boolean { | ||
|  |   if (!path) { | ||
|  |     throw new Error("Arg 'path' must not be empty") | ||
|  |   } | ||
|  | 
 | ||
|  |   let stats: fs.Stats | ||
|  |   try { | ||
|  |     stats = fs.statSync(path) | ||
|  |   } catch (error) { | ||
|  |     if (error.code === 'ENOENT') { | ||
|  |       return false | ||
|  |     } | ||
|  | 
 | ||
|  |     throw new Error( | ||
|  |       `Encountered an error when checking whether path '${path}' exists: ${error.message}` | ||
|  |     ) | ||
|  |   } | ||
|  | 
 | ||
|  |   if (!stats.isDirectory()) { | ||
|  |     return true | ||
|  |   } | ||
|  | 
 | ||
|  |   return false | ||
|  | } |