From bbff7403fbf46f9ad92240ac213df8d30ef31b64 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 20 Sep 2018 02:56:13 +0200 Subject: update packages --- node_modules/webpack/schemas/ajv.absolutePath.js | 84 ++++++++++++++++-------- 1 file changed, 55 insertions(+), 29 deletions(-) (limited to 'node_modules/webpack/schemas/ajv.absolutePath.js') diff --git a/node_modules/webpack/schemas/ajv.absolutePath.js b/node_modules/webpack/schemas/ajv.absolutePath.js index cb5d10be7..2d7c92fdd 100644 --- a/node_modules/webpack/schemas/ajv.absolutePath.js +++ b/node_modules/webpack/schemas/ajv.absolutePath.js @@ -1,29 +1,55 @@ -"use strict"; - -const getErrorFor = (shouldBeAbsolute, data, schema) => { - const message = shouldBeAbsolute ? - `The provided value ${JSON.stringify(data)} is not an absolute path!` - : `A relative path is expected. However the provided value ${JSON.stringify(data)} is an absolute path!`; - - return { - keyword: "absolutePath", - params: { absolutePath: data }, - message: message, - parentSchema: schema, - }; -}; -module.exports = (ajv) => ajv.addKeyword("absolutePath", { - errors: true, - type: "string", - compile(expected, schema) { - function callback(data) { - const passes = expected === /^(?:[A-Za-z]:\\|\/)/.test(data); - if(!passes) { - callback.errors = [getErrorFor(expected, data, schema)]; - } - return passes; - } - callback.errors = []; - return callback; - } -}); +"use strict"; + +const errorMessage = (schema, data, message) => ({ + keyword: "absolutePath", + params: { absolutePath: data }, + message: message, + parentSchema: schema +}); + +const getErrorFor = (shouldBeAbsolute, data, schema) => { + const message = shouldBeAbsolute + ? `The provided value ${JSON.stringify(data)} is not an absolute path!` + : `A relative path is expected. However, the provided value ${JSON.stringify( + data + )} is an absolute path!`; + + return errorMessage(schema, data, message); +}; + +module.exports = ajv => + ajv.addKeyword("absolutePath", { + errors: true, + type: "string", + compile(expected, schema) { + function callback(data) { + let passes = true; + const isExclamationMarkPresent = data.includes("!"); + const isCorrectAbsoluteOrRelativePath = + expected === /^(?:[A-Za-z]:\\|\/)/.test(data); + + if (isExclamationMarkPresent) { + callback.errors = [ + errorMessage( + schema, + data, + `The provided value ${JSON.stringify( + data + )} contans exclamation mark (!) which is not allowed because it's reserved for loader syntax.` + ) + ]; + passes = false; + } + + if (!isCorrectAbsoluteOrRelativePath) { + callback.errors = [getErrorFor(expected, data, schema)]; + passes = false; + } + + return passes; + } + callback.errors = []; + + return callback; + } + }); -- cgit v1.2.3