| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | /*	MIT License http://www.opensource.org/licenses/mit-license.php	Author Tobias Koppers @sokra*/"use strict";const Dependency = require("../Dependency");const CriticalDependencyWarning = require("./CriticalDependencyWarning");const regExpToString = r => (r ? r + "" : "");class ContextDependency extends Dependency {	// options: { request, recursive, regExp, include, exclude, mode, chunkName, groupOptions }	constructor(options) {		super();		this.options = options;		this.userRequest = this.options.request;		/** @type {false | string} */		this.critical = false;		this.hadGlobalOrStickyRegExp = false;		if (this.options.regExp.global || this.options.regExp.sticky) {			this.options.regExp = null;			this.hadGlobalOrStickyRegExp = true;		}	}	getResourceIdentifier() {		return (			`context${this.options.request} ${this.options.recursive} ` +			`${regExpToString(this.options.regExp)} ${regExpToString(				this.options.include			)} ${regExpToString(this.options.exclude)} ` +			`${this.options.mode} ${this.options.chunkName} ` +			`${JSON.stringify(this.options.groupOptions)}`		);	}	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;	}}// TODO remove in webpack 5Object.defineProperty(ContextDependency.prototype, "async", {	configurable: false,	get() {		throw new Error(			"ContextDependency.async was removed. Use ContextDependency.options.mode instead."		);	},	set() {		throw new Error(			"ContextDependency.async was removed. Pass options.mode to constructor instead"		);	}});module.exports = ContextDependency;
 |