123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = void 0;
- function errorMessage(message, schema, data) {
- return {
-
-
- dataPath: undefined,
-
-
- schemaPath: undefined,
- keyword: "absolutePath",
- params: {
- absolutePath: data
- },
- message,
- parentSchema: schema
- };
- }
- 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);
- }
- function addAbsolutePathKeyword(ajv) {
- ajv.addKeyword({
- keyword: "absolutePath",
- type: "string",
- errors: true,
-
- compile(schema, parentSchema) {
-
- 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;
- }
-
-
- 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;
|