diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-08-14 05:01:11 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-08-14 05:02:09 +0200 |
commit | 363723fc84f7b8477592e0105aeb331ec9a017af (patch) | |
tree | 29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/webpack/lib/ContextModuleFactory.js | |
parent | 5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff) |
node_modules
Diffstat (limited to 'node_modules/webpack/lib/ContextModuleFactory.js')
-rw-r--r-- | node_modules/webpack/lib/ContextModuleFactory.js | 261 |
1 files changed, 131 insertions, 130 deletions
diff --git a/node_modules/webpack/lib/ContextModuleFactory.js b/node_modules/webpack/lib/ContextModuleFactory.js index a2b666fad..a5947064b 100644 --- a/node_modules/webpack/lib/ContextModuleFactory.js +++ b/node_modules/webpack/lib/ContextModuleFactory.js @@ -2,158 +2,159 @@ MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
-var asyncLib = require("async");
-var path = require("path");
-
-var Tapable = require("tapable");
-var ContextModule = require("./ContextModule");
-var ContextElementDependency = require("./dependencies/ContextElementDependency");
-
-function ContextModuleFactory(resolvers) {
- Tapable.call(this);
- this.resolvers = resolvers;
-}
-module.exports = ContextModuleFactory;
-
-ContextModuleFactory.prototype = Object.create(Tapable.prototype);
-ContextModuleFactory.prototype.constructor = ContextModuleFactory;
-
-ContextModuleFactory.prototype.create = function(data, callback) {
- var module = this;
- var context = data.context;
- var dependencies = data.dependencies;
- var dependency = dependencies[0];
- this.applyPluginsAsyncWaterfall("before-resolve", {
- context: context,
- request: dependency.request,
- recursive: dependency.recursive,
- regExp: dependency.regExp,
- async: dependency.async,
- dependencies: dependencies
- }, function(err, result) {
- if(err) return callback(err);
-
- // Ignored
- if(!result) return callback();
-
- var context = result.context;
- var request = result.request;
- var recursive = result.recursive;
- var regExp = result.regExp;
- var asyncContext = result.async;
- var dependencies = result.dependencies;
-
- var loaders, resource, loadersPrefix = "";
- var idx = request.lastIndexOf("!");
- if(idx >= 0) {
- loaders = request.substr(0, idx + 1);
- for(var i = 0; i < loaders.length && loaders[i] === "!"; i++) {
- loadersPrefix += "!";
+"use strict";
+
+const asyncLib = require("async");
+const path = require("path");
+
+const Tapable = require("tapable");
+const ContextModule = require("./ContextModule");
+const ContextElementDependency = require("./dependencies/ContextElementDependency");
+
+module.exports = class ContextModuleFactory extends Tapable {
+ constructor(resolvers) {
+ super();
+ this.resolvers = resolvers;
+ }
+
+ create(data, callback) {
+ const module = this;
+ const context = data.context;
+ const dependencies = data.dependencies;
+ const dependency = dependencies[0];
+ this.applyPluginsAsyncWaterfall("before-resolve", {
+ context: context,
+ request: dependency.request,
+ recursive: dependency.recursive,
+ regExp: dependency.regExp,
+ async: dependency.async,
+ dependencies: dependencies
+ }, (err, result) => {
+ if(err) return callback(err);
+
+ // Ignored
+ if(!result) return callback();
+
+ const context = result.context;
+ const request = result.request;
+ const recursive = result.recursive;
+ const regExp = result.regExp;
+ const asyncContext = result.async;
+ const dependencies = result.dependencies;
+
+ let loaders, resource, loadersPrefix = "";
+ const idx = request.lastIndexOf("!");
+ if(idx >= 0) {
+ loaders = request.substr(0, idx + 1);
+ let i;
+ for(i = 0; i < loaders.length && loaders[i] === "!"; i++) {
+ loadersPrefix += "!";
+ }
+ loaders = loaders.substr(i).replace(/!+$/, "").replace(/!!+/g, "!");
+ if(loaders === "") loaders = [];
+ else loaders = loaders.split("!");
+ resource = request.substr(idx + 1);
+ } else {
+ loaders = [];
+ resource = request;
}
- loaders = loaders.substr(i).replace(/!+$/, "").replace(/!!+/g, "!");
- if(loaders === "") loaders = [];
- else loaders = loaders.split("!");
- resource = request.substr(idx + 1);
- } else {
- loaders = [];
- resource = request;
- }
-
- var resolvers = module.resolvers;
-
- asyncLib.parallel([
- function(callback) {
- resolvers.context.resolve({}, context, resource, function(err, result) {
- if(err) return callback(err);
- callback(null, result);
- });
- },
- function(callback) {
- asyncLib.map(loaders, function(loader, callback) {
- resolvers.loader.resolve({}, context, loader, function(err, result) {
+
+ const resolvers = module.resolvers;
+
+ asyncLib.parallel([
+ function(callback) {
+ resolvers.context.resolve({}, context, resource, function(err, result) {
if(err) return callback(err);
callback(null, result);
});
- }, callback);
- }
- ], function(err, result) {
- if(err) return callback(err);
-
- module.applyPluginsAsyncWaterfall("after-resolve", {
- loaders: loadersPrefix + result[1].join("!") + (result[1].length > 0 ? "!" : ""),
- resource: result[0],
- recursive: recursive,
- regExp: regExp,
- async: asyncContext,
- dependencies: dependencies,
- resolveDependencies: module.resolveDependencies.bind(module)
- }, function(err, result) {
+ },
+ function(callback) {
+ asyncLib.map(loaders, function(loader, callback) {
+ resolvers.loader.resolve({}, context, loader, function(err, result) {
+ if(err) return callback(err);
+ callback(null, result);
+ });
+ }, callback);
+ }
+ ], (err, result) => {
if(err) return callback(err);
- // Ignored
- if(!result) return callback();
+ module.applyPluginsAsyncWaterfall("after-resolve", {
+ loaders: loadersPrefix + result[1].join("!") + (result[1].length > 0 ? "!" : ""),
+ resource: result[0],
+ recursive: recursive,
+ regExp: regExp,
+ async: asyncContext,
+ dependencies: dependencies,
+ resolveDependencies: module.resolveDependencies.bind(module)
+ }, function(err, result) {
+ if(err) return callback(err);
+
+ // Ignored
+ if(!result) return callback();
- return callback(null, new ContextModule(result.resolveDependencies, result.resource, result.recursive, result.regExp, result.loaders, result.async, dependency.chunkName));
+ return callback(null, new ContextModule(result.resolveDependencies, result.resource, result.recursive, result.regExp, result.loaders, result.async, dependency.chunkName));
+ });
});
});
- });
-};
+ }
-ContextModuleFactory.prototype.resolveDependencies = function resolveDependencies(fs, resource, recursive, regExp, callback) {
- if(!regExp || !resource)
- return callback(null, []);
- (function addDirectory(directory, callback) {
- fs.readdir(directory, function(err, files) {
- if(err) return callback(err);
- if(!files || files.length === 0) return callback(null, []);
- asyncLib.map(files.filter(function(p) {
- return p.indexOf(".") !== 0;
- }), function(seqment, callback) {
+ resolveDependencies(fs, resource, recursive, regExp, callback) {
+ if(!regExp || !resource)
+ return callback(null, []);
+ (function addDirectory(directory, callback) {
+ fs.readdir(directory, (err, files) => {
+ if(err) return callback(err);
+ if(!files || files.length === 0) return callback(null, []);
+ asyncLib.map(files.filter(function(p) {
+ return p.indexOf(".") !== 0;
+ }), (seqment, callback) => {
- var subResource = path.join(directory, seqment);
+ const subResource = path.join(directory, seqment);
- fs.stat(subResource, function(err, stat) {
- if(err) return callback(err);
+ fs.stat(subResource, (err, stat) => {
+ if(err) return callback(err);
- if(stat.isDirectory()) {
+ if(stat.isDirectory()) {
- if(!recursive) return callback();
- addDirectory.call(this, subResource, callback);
+ if(!recursive) return callback();
+ addDirectory.call(this, subResource, callback);
- } else if(stat.isFile()) {
+ } else if(stat.isFile()) {
- var obj = {
- context: resource,
- request: "." + subResource.substr(resource.length).replace(/\\/g, "/")
- };
+ const obj = {
+ context: resource,
+ request: "." + subResource.substr(resource.length).replace(/\\/g, "/")
+ };
- this.applyPluginsAsyncWaterfall("alternatives", [obj], function(err, alternatives) {
- if(err) return callback(err);
- alternatives = alternatives.filter(function(obj) {
- return regExp.test(obj.request);
- }).map(function(obj) {
- var dep = new ContextElementDependency(obj.request);
- dep.optional = true;
- return dep;
+ this.applyPluginsAsyncWaterfall("alternatives", [obj], (err, alternatives) => {
+ if(err) return callback(err);
+ alternatives = alternatives.filter(function(obj) {
+ return regExp.test(obj.request);
+ }).map(function(obj) {
+ const dep = new ContextElementDependency(obj.request);
+ dep.optional = true;
+ return dep;
+ });
+ callback(null, alternatives);
});
- callback(null, alternatives);
- });
- } else callback();
+ } else callback();
- }.bind(this));
+ });
- }.bind(this), function(err, result) {
- if(err) return callback(err);
+ }, (err, result) => {
+ if(err) return callback(err);
- if(!result) return callback(null, []);
+ if(!result) return callback(null, []);
- callback(null, result.filter(function(i) {
- return !!i;
- }).reduce(function(a, i) {
- return a.concat(i);
- }, []));
+ callback(null, result.filter(function(i) {
+ return !!i;
+ }).reduce(function(a, i) {
+ return a.concat(i);
+ }, []));
+ });
});
- }.bind(this));
- }.call(this, resource, callback));
+ }.call(this, resource, callback));
+ }
};
|