Skip to content

Commit 256d72b

Browse files
committed
Allow to validate a custom schema with webpack.validate
This makes it possible to provide a custom schema and provide it to webpack.validate. webpack-dev-server and webpack-dev-middleware can then use this schema to validate their options in the same way as webpack does.
1 parent 74b8651 commit 256d72b

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

lib/validateWebpackOptions.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ var ajv = new Ajv({
99
allErrors: true,
1010
verbose: true
1111
});
12-
var validate = ajv.compile(webpackOptionsSchema);
1312

14-
function validateWebpackOptions(options) {
13+
function validateWebpackOptions(options, customSchema) {
14+
var schema = customSchema || webpackOptionsSchema;
1515
if(Array.isArray(options)) {
16-
var errors = options.map(validateObject);
16+
var errors = options.map(validateObject.bind(this, schema));
1717
errors.forEach(function(list, idx) {
1818
list.forEach(function applyPrefix(err) {
1919
err.dataPath = "[" + idx + "]" + err.dataPath;
@@ -26,11 +26,12 @@ function validateWebpackOptions(options) {
2626
return arr.concat(items);
2727
}, []);
2828
} else {
29-
return validateObject(options);
29+
return validateObject(options, schema);
3030
}
3131
}
3232

33-
function validateObject(options) {
33+
function validateObject(options, schema) {
34+
var validate = ajv.compile(schema);
3435
var valid = validate(options);
3536
return valid ? [] : filterErrors(validate.errors);
3637
}

0 commit comments

Comments
 (0)