webpack 2.2.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +39 -63
  2. package/lib/APIPlugin.js +2 -8
  3. package/lib/AsyncDependenciesBlock.js +46 -55
  4. package/lib/ChunkTemplate.js +25 -26
  5. package/lib/CompatibilityPlugin.js +49 -46
  6. package/lib/Compilation.js +279 -138
  7. package/lib/ConstPlugin.js +2 -6
  8. package/lib/DefinePlugin.js +9 -27
  9. package/lib/EnvironmentPlugin.js +25 -9
  10. package/lib/EvalDevToolModulePlugin.js +15 -10
  11. package/lib/EvalSourceMapDevToolPlugin.js +24 -18
  12. package/lib/ExtendedAPIPlugin.js +1 -6
  13. package/lib/FlagDependencyExportsPlugin.js +72 -79
  14. package/lib/FlagInitialModulesAsUsedPlugin.js +17 -13
  15. package/lib/FunctionModulePlugin.js +17 -11
  16. package/lib/HotModuleReplacementPlugin.js +3 -13
  17. package/lib/HotUpdateChunkTemplate.js +21 -22
  18. package/lib/JsonpTemplatePlugin.js +15 -11
  19. package/lib/LoaderTargetPlugin.js +14 -10
  20. package/lib/MainTemplate.js +193 -191
  21. package/lib/MultiWatching.js +16 -14
  22. package/lib/NoEmitOnErrorsPlugin.js +14 -11
  23. package/lib/NodeStuffPlugin.js +6 -30
  24. package/lib/NormalModuleFactory.js +2 -2
  25. package/lib/NormalModuleReplacementPlugin.js +36 -31
  26. package/lib/Parser.js +8 -7
  27. package/lib/ParserHelpers.js +19 -5
  28. package/lib/ProvidePlugin.js +2 -6
  29. package/lib/RequestShortener.js +49 -47
  30. package/lib/RequireJsStuffPlugin.js +5 -20
  31. package/lib/RuleSet.js +28 -20
  32. package/lib/Template.js +133 -132
  33. package/lib/compareLocations.js +9 -8
  34. package/lib/dependencies/AMDPlugin.js +111 -115
  35. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +157 -154
  36. package/lib/dependencies/CommonJsPlugin.js +81 -85
  37. package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +73 -75
  38. package/lib/dependencies/ContextDependencyTemplateAsId.js +21 -18
  39. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +23 -29
  40. package/lib/dependencies/CriticalDependencyWarning.js +13 -8
  41. package/lib/dependencies/{HarmonyCompatiblilityDependency.js → HarmonyCompatibilityDependency.js} +3 -3
  42. package/lib/dependencies/HarmonyDetectionParserPlugin.js +2 -2
  43. package/lib/dependencies/HarmonyModulesPlugin.js +51 -49
  44. package/lib/dependencies/ImportParserPlugin.js +31 -28
  45. package/lib/dependencies/ImportPlugin.js +28 -24
  46. package/lib/dependencies/LocalModule.js +17 -13
  47. package/lib/dependencies/ModuleDependencyTemplateAsId.js +15 -17
  48. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +15 -17
  49. package/lib/dependencies/RequireContextPlugin.js +59 -57
  50. package/lib/dependencies/RequireEnsurePlugin.js +22 -26
  51. package/lib/dependencies/RequireIncludePlugin.js +18 -23
  52. package/lib/dependencies/RequireResolveDependencyParserPlugin.js +59 -56
  53. package/lib/dependencies/SystemPlugin.js +34 -36
  54. package/lib/dependencies/WebpackMissingModule.js +10 -18
  55. package/lib/node/NodeTargetPlugin.js +8 -5
  56. package/lib/node/NodeWatchFileSystem.js +54 -53
  57. package/lib/optimize/CommonsChunkPlugin.js +163 -166
  58. package/lib/optimize/RemoveParentModulesPlugin.js +36 -27
  59. package/lib/validateSchema.js +18 -18
  60. package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +22 -20
  61. package/package.json +12 -6
@@ -2,90 +2,88 @@
2
2
  MIT License http://www.opensource.org/licenses/mit-license.php
3
3
  Author Tobias Koppers @sokra
4
4
  */
5
- var ConstDependency = require("./ConstDependency");
6
- var CommonJsRequireDependency = require("./CommonJsRequireDependency");
7
- var CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
8
- var RequireHeaderDependency = require("./RequireHeaderDependency");
9
- var LocalModuleDependency = require("./LocalModuleDependency");
10
- var ContextDependencyHelpers = require("./ContextDependencyHelpers");
11
- var LocalModulesHelpers = require("./LocalModulesHelpers");
5
+ "use strict";
12
6
 
13
- function CommonJsRequireDependencyParserPlugin(options) {
14
- this.options = options;
15
- }
7
+ const CommonJsRequireDependency = require("./CommonJsRequireDependency");
8
+ const CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
9
+ const RequireHeaderDependency = require("./RequireHeaderDependency");
10
+ const LocalModuleDependency = require("./LocalModuleDependency");
11
+ const ContextDependencyHelpers = require("./ContextDependencyHelpers");
12
+ const LocalModulesHelpers = require("./LocalModulesHelpers");
13
+ const ParserHelpers = require("../ParserHelpers");
16
14
 
17
- module.exports = CommonJsRequireDependencyParserPlugin;
15
+ class CommonJsRequireDependencyParserPlugin {
16
+ constructor(options) {
17
+ this.options = options;
18
+ }
18
19
 
19
- CommonJsRequireDependencyParserPlugin.prototype.apply = function(parser) {
20
- var options = this.options;
21
- parser.plugin("expression require.cache", function(expr) {
22
- var dep = new ConstDependency("__webpack_require__.c", expr.range);
23
- dep.loc = expr.loc;
24
- this.state.current.addDependency(dep);
25
- return true;
26
- });
27
- parser.plugin("expression require", function(expr) {
28
- var dep = new CommonJsRequireContextDependency(options.unknownContextRequest, options.unknownContextRecursive, options.unknownContextRegExp, expr.range);
29
- dep.critical = options.unknownContextCritical && "require function is used in a way in which dependencies cannot be statically extracted";
30
- dep.loc = expr.loc;
31
- dep.optional = !!this.scope.inTry;
32
- this.state.current.addDependency(dep);
33
- return true;
34
- });
35
- parser.plugin("call require", function(expr) {
36
- if(expr.arguments.length !== 1) return;
37
- var localModule, dep;
38
- var param = this.evaluateExpression(expr.arguments[0]);
39
- if(param.isConditional()) {
40
- var isExpression = false;
41
- var prevLength = this.state.current.dependencies.length;
42
- dep = new RequireHeaderDependency(expr.callee.range);
20
+ apply(parser) {
21
+ const options = this.options;
22
+ parser.plugin("expression require.cache", ParserHelpers.toConstantDependency("__webpack_require__.c"));
23
+ parser.plugin("expression require", (expr) => {
24
+ const dep = new CommonJsRequireContextDependency(options.unknownContextRequest, options.unknownContextRecursive, options.unknownContextRegExp, expr.range);
25
+ dep.critical = options.unknownContextCritical && "require function is used in a way in which dependencies cannot be statically extracted";
43
26
  dep.loc = expr.loc;
44
- this.state.current.addDependency(dep);
45
- param.options.forEach(function(param) {
46
- var result = this.applyPluginsBailResult("call require:commonjs:item", expr, param);
47
- if(result === undefined) {
48
- isExpression = true;
27
+ dep.optional = !!parser.scope.inTry;
28
+ parser.state.current.addDependency(dep);
29
+ return true;
30
+ });
31
+ parser.plugin("call require", (expr) => {
32
+ if(expr.arguments.length !== 1) return;
33
+ let localModule, dep;
34
+ const param = parser.evaluateExpression(expr.arguments[0]);
35
+ if(param.isConditional()) {
36
+ let isExpression = false;
37
+ const prevLength = parser.state.current.dependencies.length;
38
+ dep = new RequireHeaderDependency(expr.callee.range);
39
+ dep.loc = expr.loc;
40
+ parser.state.current.addDependency(dep);
41
+ param.options.forEach(function(param) {
42
+ const result = parser.applyPluginsBailResult("call require:commonjs:item", expr, param);
43
+ if(result === undefined) {
44
+ isExpression = true;
45
+ }
46
+ });
47
+ if(isExpression) {
48
+ parser.state.current.dependencies.length = prevLength;
49
+ } else {
50
+ return true;
49
51
  }
50
- }, this);
51
- if(isExpression) {
52
- this.state.current.dependencies.length = prevLength;
52
+ }
53
+ if(param.isString() && (localModule = LocalModulesHelpers.getLocalModule(parser.state, param.string))) {
54
+ dep = new LocalModuleDependency(localModule, expr.range);
55
+ dep.loc = expr.loc;
56
+ parser.state.current.addDependency(dep);
57
+ return true;
53
58
  } else {
59
+ const result = parser.applyPluginsBailResult("call require:commonjs:item", expr, param);
60
+ if(result === undefined) {
61
+ parser.applyPluginsBailResult("call require:commonjs:context", expr, param);
62
+ } else {
63
+ dep = new RequireHeaderDependency(expr.callee.range);
64
+ dep.loc = expr.loc;
65
+ parser.state.current.addDependency(dep);
66
+ }
54
67
  return true;
55
68
  }
56
- }
57
- if(param.isString() && (localModule = LocalModulesHelpers.getLocalModule(this.state, param.string))) {
58
- dep = new LocalModuleDependency(localModule, expr.range);
59
- dep.loc = expr.loc;
60
- this.state.current.addDependency(dep);
61
- return true;
62
- } else {
63
- var result = this.applyPluginsBailResult("call require:commonjs:item", expr, param);
64
- if(result === undefined) {
65
- this.applyPluginsBailResult("call require:commonjs:context", expr, param);
66
- } else {
67
- dep = new RequireHeaderDependency(expr.callee.range);
69
+ });
70
+ parser.plugin("call require:commonjs:item", (expr, param) => {
71
+ if(param.isString()) {
72
+ const dep = new CommonJsRequireDependency(param.string, param.range);
68
73
  dep.loc = expr.loc;
69
- this.state.current.addDependency(dep);
74
+ dep.optional = !!parser.scope.inTry;
75
+ parser.state.current.addDependency(dep);
76
+ return true;
70
77
  }
71
- return true;
72
- }
73
- });
74
- parser.plugin("call require:commonjs:item", function(expr, param) {
75
- if(param.isString()) {
76
- var dep = new CommonJsRequireDependency(param.string, param.range);
78
+ });
79
+ parser.plugin("call require:commonjs:context", (expr, param) => {
80
+ const dep = ContextDependencyHelpers.create(CommonJsRequireContextDependency, expr.range, param, expr, options);
81
+ if(!dep) return;
77
82
  dep.loc = expr.loc;
78
- dep.optional = !!this.scope.inTry;
79
- this.state.current.addDependency(dep);
83
+ dep.optional = !!parser.scope.inTry;
84
+ parser.state.current.addDependency(dep);
80
85
  return true;
81
- }
82
- });
83
- parser.plugin("call require:commonjs:context", function(expr, param) {
84
- var dep = ContextDependencyHelpers.create(CommonJsRequireContextDependency, expr.range, param, expr, options);
85
- if(!dep) return;
86
- dep.loc = expr.loc;
87
- dep.optional = !!this.scope.inTry;
88
- this.state.current.addDependency(dep);
89
- return true;
90
- });
91
- };
86
+ });
87
+ }
88
+ }
89
+ module.exports = CommonJsRequireDependencyParserPlugin;
@@ -2,27 +2,30 @@
2
2
  MIT License http://www.opensource.org/licenses/mit-license.php
3
3
  Author Tobias Koppers @sokra
4
4
  */
5
- function ContextDependencyTemplateAsId() {}
6
- module.exports = ContextDependencyTemplateAsId;
5
+ "use strict";
6
+
7
+ class ContextDependencyTemplateAsId {
7
8
 
8
- ContextDependencyTemplateAsId.prototype.apply = function(dep, source, outputOptions, requestShortener) {
9
- var comment = "";
10
- if(outputOptions.pathinfo) comment = "/*! " + requestShortener.shorten(dep.request) + " */ ";
11
- if(dep.module && dep.module.dependencies && dep.module.dependencies.length > 0) {
12
- if(dep.valueRange) {
13
- if(Array.isArray(dep.replaces)) {
14
- for(var i = 0; i < dep.replaces.length; i++) {
15
- var rep = dep.replaces[i];
16
- source.replace(rep.range[0], rep.range[1] - 1, rep.value);
9
+ apply(dep, source, outputOptions, requestShortener) {
10
+ let comment = "";
11
+ if(outputOptions.pathinfo) comment = "/*! " + requestShortener.shorten(dep.request) + " */ ";
12
+ if(dep.module && dep.module.dependencies && dep.module.dependencies.length > 0) {
13
+ if(dep.valueRange) {
14
+ if(Array.isArray(dep.replaces)) {
15
+ for(let i = 0; i < dep.replaces.length; i++) {
16
+ const rep = dep.replaces[i];
17
+ source.replace(rep.range[0], rep.range[1] - 1, rep.value);
18
+ }
17
19
  }
20
+ source.replace(dep.valueRange[1], dep.range[1] - 1, ")");
21
+ source.replace(dep.range[0], dep.valueRange[0] - 1, "__webpack_require__(" + comment + JSON.stringify(dep.module.id) + ").resolve(" + (typeof dep.prepend === "string" ? JSON.stringify(dep.prepend) : "") + "");
22
+ } else {
23
+ source.replace(dep.range[0], dep.range[1] - 1, "__webpack_require__(" + comment + JSON.stringify(dep.module.id) + ").resolve");
18
24
  }
19
- source.replace(dep.valueRange[1], dep.range[1] - 1, ")");
20
- source.replace(dep.range[0], dep.valueRange[0] - 1, "__webpack_require__(" + comment + JSON.stringify(dep.module.id) + ").resolve(" + (typeof dep.prepend === "string" ? JSON.stringify(dep.prepend) : "") + "");
21
25
  } else {
22
- source.replace(dep.range[0], dep.range[1] - 1, "__webpack_require__(" + comment + JSON.stringify(dep.module.id) + ").resolve");
26
+ const content = require("./WebpackMissingModule").module(dep.request);
27
+ source.replace(dep.range[0], dep.range[1] - 1, content);
23
28
  }
24
- } else {
25
- var content = require("./WebpackMissingModule").module(dep.request);
26
- source.replace(dep.range[0], dep.range[1] - 1, content);
27
29
  }
28
- };
30
+ }
31
+ module.exports = ContextDependencyTemplateAsId;
@@ -2,38 +2,32 @@
2
2
  MIT License http://www.opensource.org/licenses/mit-license.php
3
3
  Author Tobias Koppers @sokra
4
4
  */
5
- function ContextDependencyTemplateAsRequireCall() {}
6
- module.exports = ContextDependencyTemplateAsRequireCall;
5
+ "use strict";
6
+
7
+ class ContextDependencyTemplateAsRequireCall {
7
8
 
8
- ContextDependencyTemplateAsRequireCall.prototype.apply = function(dep, source, outputOptions, requestShortener) {
9
- var comment = "";
10
- if(outputOptions.pathinfo) comment = "/*! " + requestShortener.shorten(dep.request) + " */ ";
11
- var containsDeps = dep.module && (dep.module.dependencies && dep.module.dependencies.length > 0);
12
- var isAsync = dep.module && dep.module.async;
13
- if(dep.module && (isAsync || containsDeps)) {
14
- if(dep.valueRange) {
15
- if(Array.isArray(dep.replaces)) {
16
- for(var i = 0; i < dep.replaces.length; i++) {
17
- var rep = dep.replaces[i];
18
- source.replace(rep.range[0], rep.range[1] - 1, rep.value);
9
+ apply(dep, source, outputOptions, requestShortener) {
10
+ let comment = "";
11
+ if(outputOptions.pathinfo) comment = "/*! " + requestShortener.shorten(dep.request) + " */ ";
12
+ const containsDeps = dep.module && dep.module.dependencies && dep.module.dependencies.length > 0;
13
+ const isAsync = dep.module && dep.module.async;
14
+ if(dep.module && (isAsync || containsDeps)) {
15
+ if(dep.valueRange) {
16
+ if(Array.isArray(dep.replaces)) {
17
+ for(let i = 0; i < dep.replaces.length; i++) {
18
+ const rep = dep.replaces[i];
19
+ source.replace(rep.range[0], rep.range[1] - 1, rep.value);
20
+ }
19
21
  }
22
+ source.replace(dep.valueRange[1], dep.range[1] - 1, ")");
23
+ source.replace(dep.range[0], dep.valueRange[0] - 1, "__webpack_require__(" + comment + JSON.stringify(dep.module.id) + ")(" + (typeof dep.prepend === "string" ? JSON.stringify(dep.prepend) : "") + "");
24
+ } else {
25
+ source.replace(dep.range[0], dep.range[1] - 1, "__webpack_require__(" + comment + JSON.stringify(dep.module.id) + ")");
20
26
  }
21
- source.replace(dep.valueRange[1], dep.range[1] - 1, ")");
22
- source.replace(dep.range[0], dep.valueRange[0] - 1, "__webpack_require__(" + comment + JSON.stringify(dep.module.id) + ")(" + (typeof dep.prepend === "string" ? JSON.stringify(dep.prepend) : "") + "");
23
27
  } else {
24
- source.replace(dep.range[0], dep.range[1] - 1, "__webpack_require__(" + comment + JSON.stringify(dep.module.id) + ")");
28
+ const content = require("./WebpackMissingModule").module(dep.request);
29
+ source.replace(dep.range[0], dep.range[1] - 1, content);
25
30
  }
26
- } else {
27
- var content = require("./WebpackMissingModule").module(dep.request);
28
- source.replace(dep.range[0], dep.range[1] - 1, content);
29
31
  }
30
- };
31
-
32
- ContextDependencyTemplateAsRequireCall.prototype.applyAsTemplateArgument = function(name, dep, source) {
33
- if(dep.valueRange) {
34
- source.replace(dep.valueRange[1], dep.range[1] - 1, ")");
35
- source.replace(dep.range[0], dep.valueRange[0] - 1, "__webpack_require__(" + name + ")(" + (typeof dep.prepend === "string" ? JSON.stringify(dep.prepend) : "") + "");
36
- } else {
37
- source.replace(dep.range[0], dep.range[1] - 1, "__webpack_require__(" + name + ")");
38
- }
39
- };
32
+ }
33
+ module.exports = ContextDependencyTemplateAsRequireCall;
@@ -2,13 +2,18 @@
2
2
  MIT License http://www.opensource.org/licenses/mit-license.php
3
3
  Author Tobias Koppers @sokra
4
4
  */
5
- function CriticalDependencyWarning(message) {
6
- Error.call(this);
7
- Error.captureStackTrace(this, CriticalDependencyWarning);
8
- this.name = "CriticalDependencyWarning";
9
- this.message = "Critical dependency: " + message;
5
+ "use strict";
6
+
7
+ class CriticalDependencyWarning extends Error {
8
+
9
+ constructor(message) {
10
+ super();
11
+ if(Error.hasOwnProperty("captureStackTrace")) {
12
+ Error.captureStackTrace(this, this.constructor);
13
+ }
14
+ this.name = "CriticalDependencyWarning";
15
+ this.message = "Critical dependency: " + message;
16
+ }
10
17
  }
11
- module.exports = CriticalDependencyWarning;
12
18
 
13
- CriticalDependencyWarning.prototype = Object.create(Error.prototype);
14
- CriticalDependencyWarning.prototype.constructor = CriticalDependencyWarning;
19
+ module.exports = CriticalDependencyWarning;
@@ -5,7 +5,7 @@
5
5
  "use strict";
6
6
  const NullDependency = require("./NullDependency");
7
7
 
8
- class HarmonyCompatiblilityDependency extends NullDependency {
8
+ class HarmonyCompatibilityDependency extends NullDependency {
9
9
  constructor(originModule) {
10
10
  super();
11
11
  this.originModule = originModule;
@@ -16,7 +16,7 @@ class HarmonyCompatiblilityDependency extends NullDependency {
16
16
  }
17
17
  }
18
18
 
19
- HarmonyCompatiblilityDependency.Template = class HarmonyExportDependencyTemplate {
19
+ HarmonyCompatibilityDependency.Template = class HarmonyExportDependencyTemplate {
20
20
  apply(dep, source) {
21
21
  const usedExports = dep.originModule.usedExports;
22
22
  if(usedExports && !Array.isArray(usedExports)) {
@@ -27,4 +27,4 @@ HarmonyCompatiblilityDependency.Template = class HarmonyExportDependencyTemplate
27
27
  }
28
28
  };
29
29
 
30
- module.exports = HarmonyCompatiblilityDependency;
30
+ module.exports = HarmonyCompatibilityDependency;
@@ -4,7 +4,7 @@
4
4
  */
5
5
  "use strict";
6
6
 
7
- const HarmonyCompatiblilityDependency = require("./HarmonyCompatiblilityDependency");
7
+ const HarmonyCompatibilityDependency = require("./HarmonyCompatibilityDependency");
8
8
 
9
9
  module.exports = class HarmonyDetectionParserPlugin {
10
10
  apply(parser) {
@@ -14,7 +14,7 @@ module.exports = class HarmonyDetectionParserPlugin {
14
14
  });
15
15
  if(isHarmony) {
16
16
  let module = parser.state.module;
17
- const dep = new HarmonyCompatiblilityDependency(module);
17
+ const dep = new HarmonyCompatibilityDependency(module);
18
18
  dep.loc = {
19
19
  start: {
20
20
  line: -1,
@@ -2,66 +2,68 @@
2
2
  MIT License http://www.opensource.org/licenses/mit-license.php
3
3
  Author Tobias Koppers @sokra
4
4
  */
5
- var HarmonyImportDependency = require("./HarmonyImportDependency");
6
- var HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDependency");
7
- var HarmonyCompatiblilityDependency = require("./HarmonyCompatiblilityDependency");
8
- var HarmonyExportHeaderDependency = require("./HarmonyExportHeaderDependency");
9
- var HarmonyExportExpressionDependency = require("./HarmonyExportExpressionDependency");
10
- var HarmonyExportSpecifierDependency = require("./HarmonyExportSpecifierDependency");
11
- var HarmonyExportImportedSpecifierDependency = require("./HarmonyExportImportedSpecifierDependency");
12
- var HarmonyAcceptDependency = require("./HarmonyAcceptDependency");
13
- var HarmonyAcceptImportDependency = require("./HarmonyAcceptImportDependency");
14
-
15
- var NullFactory = require("../NullFactory");
16
-
17
- var HarmonyDetectionParserPlugin = require("./HarmonyDetectionParserPlugin");
18
- var HarmonyImportDependencyParserPlugin = require("./HarmonyImportDependencyParserPlugin");
19
- var HarmonyExportDependencyParserPlugin = require("./HarmonyExportDependencyParserPlugin");
20
-
21
- function HarmonyModulesPlugin() {}
22
- module.exports = HarmonyModulesPlugin;
5
+ "use strict";
6
+ const HarmonyImportDependency = require("./HarmonyImportDependency");
7
+ const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDependency");
8
+ const HarmonyCompatiblilityDependency = require("./HarmonyCompatibilityDependency");
9
+ const HarmonyExportHeaderDependency = require("./HarmonyExportHeaderDependency");
10
+ const HarmonyExportExpressionDependency = require("./HarmonyExportExpressionDependency");
11
+ const HarmonyExportSpecifierDependency = require("./HarmonyExportSpecifierDependency");
12
+ const HarmonyExportImportedSpecifierDependency = require("./HarmonyExportImportedSpecifierDependency");
13
+ const HarmonyAcceptDependency = require("./HarmonyAcceptDependency");
14
+ const HarmonyAcceptImportDependency = require("./HarmonyAcceptImportDependency");
15
+
16
+ const NullFactory = require("../NullFactory");
17
+
18
+ const HarmonyDetectionParserPlugin = require("./HarmonyDetectionParserPlugin");
19
+ const HarmonyImportDependencyParserPlugin = require("./HarmonyImportDependencyParserPlugin");
20
+ const HarmonyExportDependencyParserPlugin = require("./HarmonyExportDependencyParserPlugin");
23
21
 
24
- HarmonyModulesPlugin.prototype.apply = function(compiler) {
25
- compiler.plugin("compilation", function(compilation, params) {
26
- var normalModuleFactory = params.normalModuleFactory;
22
+ class HarmonyModulesPlugin {
27
23
 
28
- compilation.dependencyFactories.set(HarmonyImportDependency, normalModuleFactory);
29
- compilation.dependencyTemplates.set(HarmonyImportDependency, new HarmonyImportDependency.Template());
24
+ apply(compiler) {
25
+ compiler.plugin("compilation", (compilation, params) => {
26
+ const normalModuleFactory = params.normalModuleFactory;
30
27
 
31
- compilation.dependencyFactories.set(HarmonyImportSpecifierDependency, new NullFactory());
32
- compilation.dependencyTemplates.set(HarmonyImportSpecifierDependency, new HarmonyImportSpecifierDependency.Template());
28
+ compilation.dependencyFactories.set(HarmonyImportDependency, normalModuleFactory);
29
+ compilation.dependencyTemplates.set(HarmonyImportDependency, new HarmonyImportDependency.Template());
33
30
 
34
- compilation.dependencyFactories.set(HarmonyCompatiblilityDependency, new NullFactory());
35
- compilation.dependencyTemplates.set(HarmonyCompatiblilityDependency, new HarmonyCompatiblilityDependency.Template());
31
+ compilation.dependencyFactories.set(HarmonyImportSpecifierDependency, new NullFactory());
32
+ compilation.dependencyTemplates.set(HarmonyImportSpecifierDependency, new HarmonyImportSpecifierDependency.Template());
36
33
 
37
- compilation.dependencyFactories.set(HarmonyExportHeaderDependency, new NullFactory());
38
- compilation.dependencyTemplates.set(HarmonyExportHeaderDependency, new HarmonyExportHeaderDependency.Template());
34
+ compilation.dependencyFactories.set(HarmonyCompatiblilityDependency, new NullFactory());
35
+ compilation.dependencyTemplates.set(HarmonyCompatiblilityDependency, new HarmonyCompatiblilityDependency.Template());
39
36
 
40
- compilation.dependencyFactories.set(HarmonyExportExpressionDependency, new NullFactory());
41
- compilation.dependencyTemplates.set(HarmonyExportExpressionDependency, new HarmonyExportExpressionDependency.Template());
37
+ compilation.dependencyFactories.set(HarmonyExportHeaderDependency, new NullFactory());
38
+ compilation.dependencyTemplates.set(HarmonyExportHeaderDependency, new HarmonyExportHeaderDependency.Template());
42
39
 
43
- compilation.dependencyFactories.set(HarmonyExportSpecifierDependency, new NullFactory());
44
- compilation.dependencyTemplates.set(HarmonyExportSpecifierDependency, new HarmonyExportSpecifierDependency.Template());
40
+ compilation.dependencyFactories.set(HarmonyExportExpressionDependency, new NullFactory());
41
+ compilation.dependencyTemplates.set(HarmonyExportExpressionDependency, new HarmonyExportExpressionDependency.Template());
45
42
 
46
- compilation.dependencyFactories.set(HarmonyExportImportedSpecifierDependency, new NullFactory());
47
- compilation.dependencyTemplates.set(HarmonyExportImportedSpecifierDependency, new HarmonyExportImportedSpecifierDependency.Template());
43
+ compilation.dependencyFactories.set(HarmonyExportSpecifierDependency, new NullFactory());
44
+ compilation.dependencyTemplates.set(HarmonyExportSpecifierDependency, new HarmonyExportSpecifierDependency.Template());
48
45
 
49
- compilation.dependencyFactories.set(HarmonyAcceptDependency, new NullFactory());
50
- compilation.dependencyTemplates.set(HarmonyAcceptDependency, new HarmonyAcceptDependency.Template());
46
+ compilation.dependencyFactories.set(HarmonyExportImportedSpecifierDependency, new NullFactory());
47
+ compilation.dependencyTemplates.set(HarmonyExportImportedSpecifierDependency, new HarmonyExportImportedSpecifierDependency.Template());
51
48
 
52
- compilation.dependencyFactories.set(HarmonyAcceptImportDependency, normalModuleFactory);
53
- compilation.dependencyTemplates.set(HarmonyAcceptImportDependency, new HarmonyAcceptImportDependency.Template());
49
+ compilation.dependencyFactories.set(HarmonyAcceptDependency, new NullFactory());
50
+ compilation.dependencyTemplates.set(HarmonyAcceptDependency, new HarmonyAcceptDependency.Template());
54
51
 
55
- params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
52
+ compilation.dependencyFactories.set(HarmonyAcceptImportDependency, normalModuleFactory);
53
+ compilation.dependencyTemplates.set(HarmonyAcceptImportDependency, new HarmonyAcceptImportDependency.Template());
56
54
 
57
- if(typeof parserOptions.harmony !== "undefined" && !parserOptions.harmony)
58
- return;
55
+ params.normalModuleFactory.plugin("parser", (parser, parserOptions) => {
59
56
 
60
- parser.apply(
61
- new HarmonyDetectionParserPlugin(),
62
- new HarmonyImportDependencyParserPlugin(),
63
- new HarmonyExportDependencyParserPlugin()
64
- );
57
+ if(typeof parserOptions.harmony !== "undefined" && !parserOptions.harmony)
58
+ return;
59
+
60
+ parser.apply(
61
+ new HarmonyDetectionParserPlugin(),
62
+ new HarmonyImportDependencyParserPlugin(),
63
+ new HarmonyExportDependencyParserPlugin()
64
+ );
65
+ });
65
66
  });
66
- });
67
- };
67
+ }
68
+ }
69
+ module.exports = HarmonyModulesPlugin;
@@ -2,34 +2,37 @@
2
2
  MIT License http://www.opensource.org/licenses/mit-license.php
3
3
  Author Tobias Koppers @sokra
4
4
  */
5
- var ImportContextDependency = require("./ImportContextDependency");
6
- var ImportDependenciesBlock = require("./ImportDependenciesBlock");
7
- var ContextDependencyHelpers = require("./ContextDependencyHelpers");
5
+ "use strict";
8
6
 
9
- function ImportParserPlugin(options) {
10
- this.options = options;
11
- }
7
+ const ImportContextDependency = require("./ImportContextDependency");
8
+ const ImportDependenciesBlock = require("./ImportDependenciesBlock");
9
+ const ContextDependencyHelpers = require("./ContextDependencyHelpers");
12
10
 
13
- module.exports = ImportParserPlugin;
11
+ class ImportParserPlugin {
12
+ constructor(options) {
13
+ this.options = options;
14
+ }
14
15
 
15
- ImportParserPlugin.prototype.apply = function(parser) {
16
- var options = this.options;
17
- parser.plugin(["call System.import", "import-call"], function(expr) {
18
- if(expr.arguments.length !== 1)
19
- throw new Error("Incorrect number of arguments provided to 'import(module: string) -> Promise'.");
20
- var dep;
21
- var param = this.evaluateExpression(expr.arguments[0]);
22
- if(param.isString()) {
23
- var depBlock = new ImportDependenciesBlock(param.string, expr.range, this.state.module, expr.loc);
24
- this.state.current.addBlock(depBlock);
25
- return true;
26
- } else {
27
- dep = ContextDependencyHelpers.create(ImportContextDependency, expr.range, param, expr, options);
28
- if(!dep) return;
29
- dep.loc = expr.loc;
30
- dep.optional = !!this.scope.inTry;
31
- this.state.current.addDependency(dep);
32
- return true;
33
- }
34
- });
35
- };
16
+ apply(parser) {
17
+ const options = this.options;
18
+ parser.plugin(["call System.import", "import-call"], (expr) => {
19
+ if(expr.arguments.length !== 1)
20
+ throw new Error("Incorrect number of arguments provided to 'import(module: string) -> Promise'.");
21
+ let dep;
22
+ const param = parser.evaluateExpression(expr.arguments[0]);
23
+ if(param.isString()) {
24
+ const depBlock = new ImportDependenciesBlock(param.string, expr.range, parser.state.module, expr.loc);
25
+ parser.state.current.addBlock(depBlock);
26
+ return true;
27
+ } else {
28
+ dep = ContextDependencyHelpers.create(ImportContextDependency, expr.range, param, expr, options);
29
+ if(!dep) return;
30
+ dep.loc = expr.loc;
31
+ dep.optional = !!parser.scope.inTry;
32
+ parser.state.current.addDependency(dep);
33
+ return true;
34
+ }
35
+ });
36
+ }
37
+ }
38
+ module.exports = ImportParserPlugin;
@@ -2,35 +2,39 @@
2
2
  MIT License http://www.opensource.org/licenses/mit-license.php
3
3
  Author Tobias Koppers @sokra
4
4
  */
5
- var ImportDependency = require("./ImportDependency");
6
- var ImportContextDependency = require("./ImportContextDependency");
7
- var ImportParserPlugin = require("./ImportParserPlugin");
5
+ "use strict";
8
6
 
9
- function ImportPlugin(options) {
10
- this.options = options;
11
- }
12
- module.exports = ImportPlugin;
7
+ const ImportDependency = require("./ImportDependency");
8
+ const ImportContextDependency = require("./ImportContextDependency");
9
+ const ImportParserPlugin = require("./ImportParserPlugin");
10
+
11
+ class ImportPlugin {
12
+ constructor(options) {
13
+ this.options = options;
14
+ }
13
15
 
14
- ImportPlugin.prototype.apply = function(compiler) {
15
- var options = this.options;
16
- compiler.plugin("compilation", function(compilation, params) {
17
- var normalModuleFactory = params.normalModuleFactory;
18
- var contextModuleFactory = params.contextModuleFactory;
16
+ apply(compiler) {
17
+ const options = this.options;
18
+ compiler.plugin("compilation", (compilation, params) => {
19
+ const normalModuleFactory = params.normalModuleFactory;
20
+ const contextModuleFactory = params.contextModuleFactory;
19
21
 
20
- compilation.dependencyFactories.set(ImportDependency, normalModuleFactory);
21
- compilation.dependencyTemplates.set(ImportDependency, new ImportDependency.Template());
22
+ compilation.dependencyFactories.set(ImportDependency, normalModuleFactory);
23
+ compilation.dependencyTemplates.set(ImportDependency, new ImportDependency.Template());
22
24
 
23
- compilation.dependencyFactories.set(ImportContextDependency, contextModuleFactory);
24
- compilation.dependencyTemplates.set(ImportContextDependency, new ImportContextDependency.Template());
25
+ compilation.dependencyFactories.set(ImportContextDependency, contextModuleFactory);
26
+ compilation.dependencyTemplates.set(ImportContextDependency, new ImportContextDependency.Template());
25
27
 
26
- params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
28
+ params.normalModuleFactory.plugin("parser", (parser, parserOptions) => {
27
29
 
28
- if(typeof parserOptions.import !== "undefined" && !parserOptions.import)
29
- return;
30
+ if(typeof parserOptions.import !== "undefined" && !parserOptions.import)
31
+ return;
30
32
 
31
- parser.apply(
32
- new ImportParserPlugin(options)
33
- );
33
+ parser.apply(
34
+ new ImportParserPlugin(options)
35
+ );
36
+ });
34
37
  });
35
- });
36
- };
38
+ }
39
+ }
40
+ module.exports = ImportPlugin;
@@ -2,18 +2,22 @@
2
2
  MIT License http://www.opensource.org/licenses/mit-license.php
3
3
  Author Tobias Koppers @sokra
4
4
  */
5
- function LocalModule(module, name, idx) {
6
- this.module = module;
7
- this.name = name;
8
- this.idx = idx;
9
- this.used = false;
10
- }
11
- module.exports = LocalModule;
5
+ "use strict";
6
+
7
+ class LocalModule {
8
+ constructor(module, name, idx) {
9
+ this.module = module;
10
+ this.name = name;
11
+ this.idx = idx;
12
+ this.used = false;
13
+ }
12
14
 
13
- LocalModule.prototype.flagUsed = function() {
14
- this.used = true;
15
- };
15
+ flagUsed() {
16
+ this.used = true;
17
+ }
16
18
 
17
- LocalModule.prototype.variableName = function() {
18
- return "__WEBPACK_LOCAL_MODULE_" + this.idx + "__";
19
- };
19
+ variableName() {
20
+ return "__WEBPACK_LOCAL_MODULE_" + this.idx + "__";
21
+ }
22
+ }
23
+ module.exports = LocalModule;