baqend
Version:
Baqend JavaScript SDK
129 lines • 8.5 kB
JavaScript
;
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Validator = void 0;
var FallBachValLib = {};
var valLib = FallBachValLib;
try {
// we load this module as an optional external dependency
// eslint-disable-next-line global-require
valLib = require('validator');
}
catch (e) {
// ignore loading optional module error
}
var Validator = /** @class */ (function () {
function Validator(key, entity) {
/**
* The cached errors of the validation
*/
this.errors = [];
this.key = key;
this.entity = entity;
}
/**
* Compiles the given validation code for the managedType
* @param managedType The managedType of the code
* @param validationCode The validation code
* @return the parsed validation function
*/
Validator.compile = function (managedType, validationCode) {
var keys = [];
var iter = managedType.attributes();
for (var el = iter.next(); !el.done; el = iter.next()) {
var attr = el.value;
keys.push(attr.name);
}
// eslint-disable-next-line @typescript-eslint/no-implied-eval,no-new-func
var fn = new (Function.bind.apply(Function, __spreadArray(__spreadArray([void 0], keys, false), [validationCode], false)))();
return function onValidate(argObj) {
if (valLib === FallBachValLib) {
throw new Error('Validation code will not be executed. Make sure that the validator package is correctly provided as an external dependency.');
}
var args = keys.map(function (name) { return argObj[name]; });
return fn.apply({}, args);
};
};
Object.defineProperty(Validator.prototype, "value", {
/**
* Gets the value of the attribute
* @return Value
*/
get: function () {
return this.entity[this.key];
},
enumerable: false,
configurable: true
});
Object.defineProperty(Validator.prototype, "isValid", {
/**
* Checks if the attribute is valid
* @return
*/
get: function () {
return this.errors.length === 0;
},
enumerable: false,
configurable: true
});
Validator.prototype.is = function (error, fn) {
if (error instanceof Function) {
return this.is('is', error);
}
if (fn(this.value, valLib) === false) {
this.errors.push(error);
}
return this;
};
Validator.prototype.callMethod = function (method, errorMessage, argumentList) {
var args = argumentList || [];
try {
args.unshift(this.toStringValue());
if (valLib[method].apply(this, args) === false) {
this.errors.push(errorMessage || method);
}
}
catch (e) {
this.errors.push(errorMessage || e.message);
}
return this;
};
Validator.prototype.toStringValue = function () {
var value = this.value;
if (typeof value === 'string' || value instanceof Date) {
return value;
}
return JSON.stringify(value);
};
Validator.prototype.toJSON = function () {
return {
isValid: this.isValid,
errors: this.errors,
};
};
return Validator;
}());
exports.Validator = Validator;
var OTHER_VALIDATORS = ['contains', 'equals', 'matches'];
Object.keys(valLib).forEach(function (name) {
if (name.startsWith('is') || OTHER_VALIDATORS.includes(name)) {
// use function here to keep the correct this context
Validator.prototype[name] = function validate() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var error = typeof args[0] === 'string' ? args.shift() : null;
return this.callMethod(name, error, args);
};
}
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2ludGVyc2VjdGlvbi9WYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBSUEsSUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQzFCLElBQUksTUFBTSxHQUE4QixjQUFjLENBQUM7QUFDdkQsSUFBSTtJQUNGLHlEQUF5RDtJQUN6RCwwQ0FBMEM7SUFDMUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztDQUMvQjtBQUFDLE9BQU8sQ0FBQyxFQUFFO0lBQ1YsdUNBQXVDO0NBQ3hDO0FBU0Q7SUErRkUsbUJBQVksR0FBVyxFQUFFLE1BQWM7UUFwRXZDOztXQUVHO1FBQ0ssV0FBTSxHQUFhLEVBQUUsQ0FBQztRQWtFNUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBakdEOzs7OztPQUtHO0lBQ0ksaUJBQU8sR0FBZCxVQUFlLFdBQTZCLEVBQUUsY0FBc0I7UUFDbEUsSUFBTSxJQUFJLEdBQWEsRUFBRSxDQUFDO1FBQzFCLElBQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QyxLQUFLLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNyRCxJQUFNLElBQUksR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3RCO1FBRUQsMEVBQTBFO1FBQzFFLElBQU0sRUFBRSxRQUFPLFFBQVEsWUFBUixRQUFRLHdDQUFJLElBQUksV0FBRSxjQUFjLGFBQUMsQ0FBQztRQUNqRCxP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