| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 | 
							- /*
 
- 	MIT License http://www.opensource.org/licenses/mit-license.php
 
- 	Author Tobias Koppers @sokra
 
- */
 
- "use strict";
 
- const ResolverFactory = require("./ResolverFactory");
 
- const NodeJsInputFileSystem = require("./NodeJsInputFileSystem");
 
- const CachedInputFileSystem = require("./CachedInputFileSystem");
 
- const nodeFileSystem = new CachedInputFileSystem(
 
- 	new NodeJsInputFileSystem(),
 
- 	4000
 
- );
 
- const nodeContext = {
 
- 	environments: ["node+es3+es5+process+native"]
 
- };
 
- const asyncResolver = ResolverFactory.createResolver({
 
- 	extensions: [".js", ".json", ".node"],
 
- 	fileSystem: nodeFileSystem
 
- });
 
- module.exports = function resolve(
 
- 	context,
 
- 	path,
 
- 	request,
 
- 	resolveContext,
 
- 	callback
 
- ) {
 
- 	if (typeof context === "string") {
 
- 		callback = resolveContext;
 
- 		resolveContext = request;
 
- 		request = path;
 
- 		path = context;
 
- 		context = nodeContext;
 
- 	}
 
- 	if (typeof callback !== "function") {
 
- 		callback = resolveContext;
 
- 	}
 
- 	asyncResolver.resolve(context, path, request, resolveContext, callback);
 
- };
 
- const syncResolver = ResolverFactory.createResolver({
 
- 	extensions: [".js", ".json", ".node"],
 
- 	useSyncFileSystemCalls: true,
 
- 	fileSystem: nodeFileSystem
 
- });
 
- module.exports.sync = function resolveSync(context, path, request) {
 
- 	if (typeof context === "string") {
 
- 		request = path;
 
- 		path = context;
 
- 		context = nodeContext;
 
- 	}
 
- 	return syncResolver.resolveSync(context, path, request);
 
- };
 
- const asyncContextResolver = ResolverFactory.createResolver({
 
- 	extensions: [".js", ".json", ".node"],
 
- 	resolveToContext: true,
 
- 	fileSystem: nodeFileSystem
 
- });
 
- module.exports.context = function resolveContext(
 
- 	context,
 
- 	path,
 
- 	request,
 
- 	resolveContext,
 
- 	callback
 
- ) {
 
- 	if (typeof context === "string") {
 
- 		callback = resolveContext;
 
- 		resolveContext = request;
 
- 		request = path;
 
- 		path = context;
 
- 		context = nodeContext;
 
- 	}
 
- 	if (typeof callback !== "function") {
 
- 		callback = resolveContext;
 
- 	}
 
- 	asyncContextResolver.resolve(
 
- 		context,
 
- 		path,
 
- 		request,
 
- 		resolveContext,
 
- 		callback
 
- 	);
 
- };
 
- const syncContextResolver = ResolverFactory.createResolver({
 
- 	extensions: [".js", ".json", ".node"],
 
- 	resolveToContext: true,
 
- 	useSyncFileSystemCalls: true,
 
- 	fileSystem: nodeFileSystem
 
- });
 
- module.exports.context.sync = function resolveContextSync(
 
- 	context,
 
- 	path,
 
- 	request
 
- ) {
 
- 	if (typeof context === "string") {
 
- 		request = path;
 
- 		path = context;
 
- 		context = nodeContext;
 
- 	}
 
- 	return syncContextResolver.resolveSync(context, path, request);
 
- };
 
- const asyncLoaderResolver = ResolverFactory.createResolver({
 
- 	extensions: [".js", ".json", ".node"],
 
- 	moduleExtensions: ["-loader"],
 
- 	mainFields: ["loader", "main"],
 
- 	fileSystem: nodeFileSystem
 
- });
 
- module.exports.loader = function resolveLoader(
 
- 	context,
 
- 	path,
 
- 	request,
 
- 	resolveContext,
 
- 	callback
 
- ) {
 
- 	if (typeof context === "string") {
 
- 		callback = resolveContext;
 
- 		resolveContext = request;
 
- 		request = path;
 
- 		path = context;
 
- 		context = nodeContext;
 
- 	}
 
- 	if (typeof callback !== "function") {
 
- 		callback = resolveContext;
 
- 	}
 
- 	asyncLoaderResolver.resolve(context, path, request, resolveContext, callback);
 
- };
 
- const syncLoaderResolver = ResolverFactory.createResolver({
 
- 	extensions: [".js", ".json", ".node"],
 
- 	moduleExtensions: ["-loader"],
 
- 	mainFields: ["loader", "main"],
 
- 	useSyncFileSystemCalls: true,
 
- 	fileSystem: nodeFileSystem
 
- });
 
- module.exports.loader.sync = function resolveLoaderSync(
 
- 	context,
 
- 	path,
 
- 	request
 
- ) {
 
- 	if (typeof context === "string") {
 
- 		request = path;
 
- 		path = context;
 
- 		context = nodeContext;
 
- 	}
 
- 	return syncLoaderResolver.resolveSync(context, path, request);
 
- };
 
- module.exports.create = function create(options) {
 
- 	options = Object.assign(
 
- 		{
 
- 			fileSystem: nodeFileSystem
 
- 		},
 
- 		options
 
- 	);
 
- 	const resolver = ResolverFactory.createResolver(options);
 
- 	return function(context, path, request, resolveContext, callback) {
 
- 		if (typeof context === "string") {
 
- 			callback = resolveContext;
 
- 			resolveContext = request;
 
- 			request = path;
 
- 			path = context;
 
- 			context = nodeContext;
 
- 		}
 
- 		if (typeof callback !== "function") {
 
- 			callback = resolveContext;
 
- 		}
 
- 		resolver.resolve(context, path, request, resolveContext, callback);
 
- 	};
 
- };
 
- module.exports.create.sync = function createSync(options) {
 
- 	options = Object.assign(
 
- 		{
 
- 			useSyncFileSystemCalls: true,
 
- 			fileSystem: nodeFileSystem
 
- 		},
 
- 		options
 
- 	);
 
- 	const resolver = ResolverFactory.createResolver(options);
 
- 	return function(context, path, request) {
 
- 		if (typeof context === "string") {
 
- 			request = path;
 
- 			path = context;
 
- 			context = nodeContext;
 
- 		}
 
- 		return resolver.resolveSync(context, path, request);
 
- 	};
 
- };
 
- // Export Resolver, FileSystems and Plugins
 
- module.exports.ResolverFactory = ResolverFactory;
 
- module.exports.NodeJsInputFileSystem = NodeJsInputFileSystem;
 
- module.exports.CachedInputFileSystem = CachedInputFileSystem;
 
 
  |