Skip to content

Commit 1065a6e

Browse files
committed
Refactor plugins to use schema-utils; Remove unused
1 parent fbad067 commit 1065a6e

18 files changed

Lines changed: 37 additions & 275 deletions

lib/BannerPlugin.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@
88
const ConcatSource = require("webpack-sources").ConcatSource;
99
const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
1010

11-
const validateSchema = require("./validateSchema");
11+
const validateOptions = require("schema-utils");
1212
const bannerPluginSchema = require("../schemas/plugins/bannerPluginSchema.json");
13-
const WebpackPluginValidationError = require("./WebpackPluginValidationError");
1413

1514
const wrapComment = (str) => {
1615
if(!str.includes("\n")) return `/*! ${str} */`;
@@ -22,11 +21,7 @@ class BannerPlugin {
2221
if(arguments.length > 1)
2322
throw new Error("BannerPlugin only takes one argument (pass an options object)");
2423

25-
const pluginValidationErrors = validateSchema(bannerPluginSchema, options);
26-
27-
if(pluginValidationErrors.length) {
28-
throw new WebpackPluginValidationError(pluginValidationErrors, bannerPluginSchema);
29-
}
24+
validateOptions(bannerPluginSchema, options, "BannerPlugin");
3025

3126
if(typeof options === "string")
3227
options = {

lib/DllPlugin.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,12 @@ const DllEntryPlugin = require("./DllEntryPlugin");
88
const LibManifestPlugin = require("./LibManifestPlugin");
99
const FlagInitialModulesAsUsedPlugin = require("./FlagInitialModulesAsUsedPlugin");
1010

11-
const validateSchema = require("./validateSchema");
11+
const validateOptions = require("schema-utils");
1212
const dllPluginSchema = require("../schemas/plugins/dllPluginSchema.json");
13-
const WebpackPluginValidationError = require("./WebpackPluginValidationError");
1413

1514
class DllPlugin {
1615
constructor(options) {
17-
const pluginValidationErrors = validateSchema(dllPluginSchema, options);
18-
19-
if(pluginValidationErrors.length) {
20-
throw new WebpackPluginValidationError(pluginValidationErrors, dllPluginSchema);
21-
}
22-
16+
validateOptions(dllPluginSchema, options, "DllPlugin");
2317
this.options = options;
2418
}
2519

lib/DllReferencePlugin.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,12 @@ const ExternalModuleFactoryPlugin = require("./ExternalModuleFactoryPlugin");
1010
const DelegatedExportsDependency = require("./dependencies/DelegatedExportsDependency");
1111
const NullFactory = require("./NullFactory");
1212

13-
const validateSchema = require("./validateSchema");
13+
const validateOptions = require("schema-utils");
1414
const dllReferencePluginSchema = require("../schemas/plugins/dllReferencePluginSchema.json");
15-
const WebpackPluginValidationError = require("./WebpackPluginValidationError");
1615

1716
class DllReferencePlugin {
1817
constructor(options) {
19-
const pluginValidationErrors = validateSchema(dllReferencePluginSchema, options);
20-
21-
if(pluginValidationErrors.length) {
22-
throw new WebpackPluginValidationError(pluginValidationErrors, dllReferencePluginSchema);
23-
}
24-
18+
validateOptions(dllReferencePluginSchema, options, "DllReferencePlugin");
2519
this.options = options;
2620
}
2721

lib/HashedModuleIdsPlugin.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,12 @@
55
"use strict";
66
const createHash = require("crypto").createHash;
77

8-
const validateSchema = require("./validateSchema");
8+
const validateOptions = require("schema-utils");
99
const hashedModuleIdsPluginSchema = require("../schemas/plugins/hashedModuleIdsPluginSchema.json");
10-
const WebpackPluginValidationError = require("./WebpackPluginValidationError");
1110

1211
class HashedModuleIdsPlugin {
1312
constructor(options) {
14-
const pluginValidationErrors = validateSchema(hashedModuleIdsPluginSchema, options || {});
15-
16-
if(pluginValidationErrors.length) {
17-
throw new WebpackPluginValidationError(pluginValidationErrors, hashedModuleIdsPluginSchema);
18-
}
13+
validateOptions(hashedModuleIdsPluginSchema, options || {}, "HashedModuleIdsPlugin");
1914

2015
this.options = Object.assign({
2116
hashFunction: "md5",

lib/LoaderOptionsPlugin.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,12 @@
66

77
const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
88

9-
const validateSchema = require("./validateSchema");
9+
const validateOptions = require("schema-utils");
1010
const loaderOptionsPluginSchema = require("../schemas/plugins/loaderOptionsPluginSchema.json");
11-
const WebpackPluginValidationError = require("./WebpackPluginValidationError");
1211

1312
class LoaderOptionsPlugin {
1413
constructor(options) {
15-
const pluginValidationErrors = validateSchema(loaderOptionsPluginSchema, options || {});
16-
17-
if(pluginValidationErrors.length) {
18-
throw new WebpackPluginValidationError(pluginValidationErrors, loaderOptionsPluginSchema);
19-
}
14+
validateOptions(loaderOptionsPluginSchema, options || {}, "LoaderOptionsPlugin");
2015

2116
if(typeof options !== "object") options = {};
2217
if(!options.test) options.test = {

lib/SourceMapDevToolPlugin.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@ const RawSource = require("webpack-sources").RawSource;
1212
const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
1313
const SourceMapDevToolModuleOptionsPlugin = require("./SourceMapDevToolModuleOptionsPlugin");
1414

15-
const validateSchema = require("./validateSchema");
15+
const validateOptions = require("schema-utils");
1616
const sourceMapDevToolPluginSchema = require("../schemas/plugins/sourceMapDevToolPluginSchema.json");
17-
const WebpackPluginValidationError = require("./WebpackPluginValidationError");
1817

1918
const basename = (name) => {
2019
if(name.indexOf("/") < 0) return name;
@@ -58,11 +57,7 @@ class SourceMapDevToolPlugin {
5857
if(arguments.length > 1)
5958
throw new Error("SourceMapDevToolPlugin only takes one argument (pass an options object)");
6059

61-
const pluginValidationErrors = validateSchema(sourceMapDevToolPluginSchema, options || {});
62-
63-
if(pluginValidationErrors.length) {
64-
throw new WebpackPluginValidationError(pluginValidationErrors, sourceMapDevToolPluginSchema);
65-
}
60+
validateOptions(sourceMapDevToolPluginSchema, options || {}, "SourceMapDevToolPlugin");
6661

6762
if(!options) options = {};
6863
this.sourceMapFilename = options.filename;

lib/WatchIgnorePlugin.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,12 @@
44
*/
55
"use strict";
66

7-
const validateSchema = require("./validateSchema");
7+
const validateOptions = require("schema-utils");
88
const watchIgnorePluginSchema = require("../schemas/plugins/watchIgnorePluginSchema.json");
9-
const WebpackPluginValidationError = require("./WebpackPluginValidationError");
109

1110
class WatchIgnorePlugin {
1211
constructor(paths) {
13-
const pluginValidationErrors = validateSchema(watchIgnorePluginSchema, paths);
14-
15-
if(pluginValidationErrors.length) {
16-
throw new WebpackPluginValidationError(pluginValidationErrors, watchIgnorePluginSchema);
17-
}
18-
12+
validateOptions(watchIgnorePluginSchema, paths, "WatchIgnorePlugin");
1913
this.paths = paths;
2014
}
2115

lib/WebpackPluginValidationError.js

Lines changed: 0 additions & 78 deletions
This file was deleted.

lib/optimize/AggressiveSplittingPlugin.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@
66

77
const identifierUtils = require("../util/identifier");
88

9-
const validateSchema = require("../validateSchema");
9+
const validateOptions = require("schema-utils");
1010
const aggressiveSplittingPluginSchema = require("../../schemas/plugins/optimize/aggressiveSplittingPluginSchema.json");
11-
const WebpackPluginValidationError = require("../WebpackPluginValidationError");
1211

1312
function moveModuleBetween(oldChunk, newChunk) {
1413
return function(module) {
@@ -34,11 +33,7 @@ function copyWithReason(obj) {
3433

3534
class AggressiveSplittingPlugin {
3635
constructor(options) {
37-
const optionsValidationErrors = validateSchema(aggressiveSplittingPluginSchema, options || {});
38-
39-
if(optionsValidationErrors.length) {
40-
throw new WebpackPluginValidationError(optionsValidationErrors, aggressiveSplittingPluginSchema);
41-
}
36+
validateOptions(aggressiveSplittingPluginSchema, options || {}, "AggressiveSplittingPlugin");
4237

4338
this.options = options || {};
4439
if(typeof this.options.minSize !== "number") this.options.minSize = 30 * 1024;

lib/optimize/CommonsChunkPlugin.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
"use strict";
66
let nextIdent = 0;
77

8-
const validateSchema = require("../validateSchema");
8+
const validateOptions = require("schema-utils");
99
const commonsChunkPluginSchema = require("../../schemas/plugins/optimize/commonsChunkPluginSchema.json");
10-
const WebpackPluginValidationError = require("../WebpackPluginValidationError");
1110

1211
class CommonsChunkPlugin {
1312
constructor(options) {
@@ -29,11 +28,7 @@ The available options are:
2928
minSize: number`);
3029
}
3130

32-
const optionsValidationErrors = validateSchema(commonsChunkPluginSchema, options);
33-
34-
if(optionsValidationErrors.length) {
35-
throw new WebpackPluginValidationError(optionsValidationErrors, commonsChunkPluginSchema);
36-
}
31+
validateOptions(commonsChunkPluginSchema, options, "CommonsChunkPlugin");
3732

3833
const normalizedOptions = this.normalizeOptions(options);
3934

0 commit comments

Comments
 (0)