summaryrefslogtreecommitdiffstats
path: root/node_modules/schema-utils/dist/keywords
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
commite06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch)
tree55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/schema-utils/dist/keywords
downloadwebsite_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip
api, login, auth
Diffstat (limited to 'node_modules/schema-utils/dist/keywords')
-rw-r--r--node_modules/schema-utils/dist/keywords/absolutePath.js93
1 files changed, 93 insertions, 0 deletions
diff --git a/node_modules/schema-utils/dist/keywords/absolutePath.js b/node_modules/schema-utils/dist/keywords/absolutePath.js
new file mode 100644
index 0000000..1ff958f
--- /dev/null
+++ b/node_modules/schema-utils/dist/keywords/absolutePath.js
@@ -0,0 +1,93 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = void 0;
+
+/** @typedef {import("ajv").Ajv} Ajv */
+
+/** @typedef {import("ajv").ValidateFunction} ValidateFunction */
+
+/** @typedef {import("../validate").SchemaUtilErrorObject} SchemaUtilErrorObject */
+
+/**
+ * @param {string} message
+ * @param {object} schema
+ * @param {string} data
+ * @returns {SchemaUtilErrorObject}
+ */
+function errorMessage(message, schema, data) {
+ return {
+ // @ts-ignore
+ // eslint-disable-next-line no-undefined
+ dataPath: undefined,
+ // @ts-ignore
+ // eslint-disable-next-line no-undefined
+ schemaPath: undefined,
+ keyword: 'absolutePath',
+ params: {
+ absolutePath: data
+ },
+ message,
+ parentSchema: schema
+ };
+}
+/**
+ * @param {boolean} shouldBeAbsolute
+ * @param {object} schema
+ * @param {string} data
+ * @returns {SchemaUtilErrorObject}
+ */
+
+
+function getErrorFor(shouldBeAbsolute, schema, data) {
+ 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(message, schema, data);
+}
+/**
+ *
+ * @param {Ajv} ajv
+ * @returns {Ajv}
+ */
+
+
+function addAbsolutePathKeyword(ajv) {
+ ajv.addKeyword('absolutePath', {
+ errors: true,
+ type: 'string',
+
+ compile(schema, parentSchema) {
+ /** @type {ValidateFunction} */
+ const callback = data => {
+ let passes = true;
+ const isExclamationMarkPresent = data.includes('!');
+
+ if (isExclamationMarkPresent) {
+ callback.errors = [errorMessage(`The provided value ${JSON.stringify(data)} contains exclamation mark (!) which is not allowed because it's reserved for loader syntax.`, parentSchema, data)];
+ passes = false;
+ } // ?:[A-Za-z]:\\ - Windows absolute path
+ // \\\\ - Windows network absolute path
+ // \/ - Unix-like OS absolute path
+
+
+ const isCorrectAbsolutePath = schema === /^(?:[A-Za-z]:(\\|\/)|\\\\|\/)/.test(data);
+
+ if (!isCorrectAbsolutePath) {
+ callback.errors = [getErrorFor(schema, parentSchema, data)];
+ passes = false;
+ }
+
+ return passes;
+ };
+
+ callback.errors = [];
+ return callback;
+ }
+
+ });
+ return ajv;
+}
+
+var _default = addAbsolutePathKeyword;
+exports.default = _default; \ No newline at end of file