You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							46 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							46 lines
						
					
					
						
							1.1 KiB
						
					
					
				/* | 
						|
	MIT License http://www.opensource.org/licenses/mit-license.php | 
						|
	Author Tobias Koppers @sokra | 
						|
*/ | 
						|
"use strict"; | 
						|
 | 
						|
module.exports = class DirectoryExistsPlugin { | 
						|
	constructor(source, target) { | 
						|
		this.source = source; | 
						|
		this.target = target; | 
						|
	} | 
						|
 | 
						|
	apply(resolver) { | 
						|
		const target = resolver.ensureHook(this.target); | 
						|
		resolver | 
						|
			.getHook(this.source) | 
						|
			.tapAsync( | 
						|
				"DirectoryExistsPlugin", | 
						|
				(request, resolveContext, callback) => { | 
						|
					const fs = resolver.fileSystem; | 
						|
					const directory = request.path; | 
						|
					fs.stat(directory, (err, stat) => { | 
						|
						if (err || !stat) { | 
						|
							if (resolveContext.missing) resolveContext.missing.add(directory); | 
						|
							if (resolveContext.log) | 
						|
								resolveContext.log(directory + " doesn't exist"); | 
						|
							return callback(); | 
						|
						} | 
						|
						if (!stat.isDirectory()) { | 
						|
							if (resolveContext.missing) resolveContext.missing.add(directory); | 
						|
							if (resolveContext.log) | 
						|
								resolveContext.log(directory + " is not a directory"); | 
						|
							return callback(); | 
						|
						} | 
						|
						resolver.doResolve( | 
						|
							target, | 
						|
							request, | 
						|
							"existing directory", | 
						|
							resolveContext, | 
						|
							callback | 
						|
						); | 
						|
					}); | 
						|
				} | 
						|
			); | 
						|
	} | 
						|
};
 | 
						|
 |