Sha256: e79743abb9a67752b0dc8641057a7b6673f4981c528b34d1095e883a3cde75a5

Contents?: true

Size: 1.65 KB

Versions: 62

Compression:

Stored size: 1.65 KB

Contents

/*
	MIT License http://www.opensource.org/licenses/mit-license.php
	Author Tobias Koppers @sokra
*/
var createInnerCallback = require("./createInnerCallback");

function ModuleAliasPlugin(aliasMap) {
	this.aliasMap = aliasMap;
}
module.exports = ModuleAliasPlugin;

ModuleAliasPlugin.prototype.apply = function(resolver) {
	var aliasMap = this.aliasMap;
	resolver.plugin("module", function(request, callback) {
		var fs = this.fileSystem;
		var keys = Object.keys(aliasMap);
		var i = 0;
		(function next() {
			for(;i < keys.length; i++) {
				var aliasName = keys[i];
				var onlyModule = /\$$/.test(aliasName);
				if(onlyModule) aliasName = aliasName.substr(0, aliasName.length-1);
				if((!onlyModule && request.request.indexOf(aliasName + "/") === 0) || request.request === aliasName) {
					var aliasValue = aliasMap[keys[i]];
					if(request.request.indexOf(aliasValue + "/") !== 0 && request.request != aliasValue) {
						var newRequestStr = aliasValue + request.request.substr(aliasName.length);
						var newRequest = this.parse(newRequestStr);
						var obj = {
							path: request.path,
							request: newRequest.path,
							query: newRequest.query,
							directory: newRequest.directory
						};
						var newCallback = createInnerCallback(callback, callback, "aliased with mapping " + JSON.stringify(aliasName) + ": " + JSON.stringify(aliasValue) + " to " + newRequestStr);
						if(newRequest.module) return this.doResolve("module", obj, newCallback);
						if(newRequest.directory) return this.doResolve("directory", obj, newCallback);
						return this.doResolve(["file", "directory"], obj, newCallback);
					}
				}
			}
			return callback();
		}.call(this));
	});
};

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
smock-0.1.268 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.267 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.266 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.265 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.264 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.263 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.262 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.261 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.260 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.259 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.258 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.256 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.255 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.254 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.253 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.252 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.251 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.250 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.249 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js
smock-0.1.247 node_modules/webpack/node_modules/enhanced-resolve/lib/ModuleAliasPlugin.js