aboutsummaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/validateSchema.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/webpack/lib/validateSchema.js')
-rw-r--r--node_modules/webpack/lib/validateSchema.js133
1 files changed, 67 insertions, 66 deletions
diff --git a/node_modules/webpack/lib/validateSchema.js b/node_modules/webpack/lib/validateSchema.js
index 8d415c170..b748c2c8f 100644
--- a/node_modules/webpack/lib/validateSchema.js
+++ b/node_modules/webpack/lib/validateSchema.js
@@ -1,66 +1,67 @@
-/*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Gajus Kuizinas @gajus
-*/
-"use strict";
-
-const Ajv = require("ajv");
-const ajv = new Ajv({
- errorDataPath: "configuration",
- allErrors: true,
- verbose: true
-});
-require("ajv-keywords")(ajv, ["instanceof"]);
-require("../schemas/ajv.absolutePath")(ajv);
-
-function validateSchema(schema, options) {
- if(Array.isArray(options)) {
- const errors = options.map((options) => validateObject(schema, options));
- errors.forEach((list, idx) => {
- list.forEach(function applyPrefix(err) {
- err.dataPath = `[${idx}]${err.dataPath}`;
- if(err.children) {
- err.children.forEach(applyPrefix);
- }
- });
- });
- return errors.reduce((arr, items) => {
- return arr.concat(items);
- }, []);
- } else {
- return validateObject(schema, options);
- }
-}
-
-function validateObject(schema, options) {
- const validate = ajv.compile(schema);
- const valid = validate(options);
- return valid ? [] : filterErrors(validate.errors);
-}
-
-function filterErrors(errors) {
- let newErrors = [];
- errors.forEach((err) => {
- const dataPath = err.dataPath;
- let children = [];
- newErrors = newErrors.filter((oldError) => {
- if(oldError.dataPath.includes(dataPath)) {
- if(oldError.children) {
- children = children.concat(oldError.children.slice(0));
- }
- oldError.children = undefined;
- children.push(oldError);
- return false;
- }
- return true;
- });
- if(children.length) {
- err.children = children;
- }
- newErrors.push(err);
- });
-
- return newErrors;
-}
-
-module.exports = validateSchema;
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Gajus Kuizinas @gajus
+*/
+"use strict";
+
+const Ajv = require("ajv");
+const ajv = new Ajv({
+ errorDataPath: "configuration",
+ allErrors: true,
+ verbose: true
+});
+require("ajv-keywords")(ajv, ["instanceof"]);
+require("../schemas/ajv.absolutePath")(ajv);
+
+const validateSchema = (schema, options) => {
+ if (Array.isArray(options)) {
+ const errors = options.map(options => validateObject(schema, options));
+ errors.forEach((list, idx) => {
+ const applyPrefix = err => {
+ err.dataPath = `[${idx}]${err.dataPath}`;
+ if (err.children) {
+ err.children.forEach(applyPrefix);
+ }
+ };
+ list.forEach(applyPrefix);
+ });
+ return errors.reduce((arr, items) => {
+ return arr.concat(items);
+ }, []);
+ } else {
+ return validateObject(schema, options);
+ }
+};
+
+const validateObject = (schema, options) => {
+ const validate = ajv.compile(schema);
+ const valid = validate(options);
+ return valid ? [] : filterErrors(validate.errors);
+};
+
+const filterErrors = errors => {
+ let newErrors = [];
+ for (const err of errors) {
+ const dataPath = err.dataPath;
+ let children = [];
+ newErrors = newErrors.filter(oldError => {
+ if (oldError.dataPath.includes(dataPath)) {
+ if (oldError.children) {
+ children = children.concat(oldError.children.slice(0));
+ }
+ oldError.children = undefined;
+ children.push(oldError);
+ return false;
+ }
+ return true;
+ });
+ if (children.length) {
+ err.children = children;
+ }
+ newErrors.push(err);
+ }
+
+ return newErrors;
+};
+
+module.exports = validateSchema;