50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | |
| 	MIT License http://www.opensource.org/licenses/mit-license.php
 | |
| 	Author Tobias Koppers @sokra
 | |
| */
 | |
| "use strict";
 | |
| const Dependency = require("../Dependency");
 | |
| const CriticalDependencyWarning = require("./CriticalDependencyWarning");
 | |
| 
 | |
| class ContextDependency extends Dependency {
 | |
| 	constructor(request, recursive, regExp) {
 | |
| 		super();
 | |
| 		this.request = request;
 | |
| 		this.userRequest = request;
 | |
| 		this.recursive = recursive;
 | |
| 		this.regExp = regExp;
 | |
| 		this.async = false;
 | |
| 
 | |
| 		this.hadGlobalOrStickyRegExp = false;
 | |
| 		if(this.regExp.global || this.regExp.sticky) {
 | |
| 			this.regExp = null;
 | |
| 			this.hadGlobalOrStickyRegExp = true;
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	isEqualResource(other) {
 | |
| 		if(!(other instanceof ContextDependency))
 | |
| 			return false;
 | |
| 
 | |
| 		return this.request === other.request &&
 | |
| 			this.recursive === other.recursive &&
 | |
| 			this.regExp === other.regExp &&
 | |
| 			this.async === other.async;
 | |
| 	}
 | |
| 
 | |
| 	getWarnings() {
 | |
| 		let warnings = super.getWarnings() || [];
 | |
| 		if(this.critical) {
 | |
| 			warnings.push(new CriticalDependencyWarning(this.critical));
 | |
| 		}
 | |
| 		if(this.hadGlobalOrStickyRegExp) {
 | |
| 			warnings.push(new CriticalDependencyWarning("Contexts can't use RegExps with the 'g' or 'y' flags."));
 | |
| 		}
 | |
| 		return warnings;
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 | |
| module.exports = ContextDependency;
 |