UNPKG

baqend

Version:

Baqend JavaScript SDK

129 lines 8.5 kB
"use strict"; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2ludGVyc2VjdGlvbi9WYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBSUEsSUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQzFCLElBQUksTUFBTSxHQUE4QixjQUFjLENBQUM7QUFDdkQsSUFBSTtJQUNGLHlEQUF5RDtJQUN6RCwwQ0FBMEM7SUFDMUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztDQUMvQjtBQUFDLE9BQU8sQ0FBQyxFQUFFO0lBQ1YsdUNBQXVDO0NBQ3hDO0FBU0Q7SUErRkUsbUJBQVksR0FBVyxFQUFFLE1BQWM7UUFwRXZDOztXQUVHO1FBQ0ssV0FBTSxHQUFhLEVBQUUsQ0FBQztRQWtFNUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBakdEOzs7OztPQUtHO0lBQ0ksaUJBQU8sR0FBZCxVQUFlLFdBQTZCLEVBQUUsY0FBc0I7UUFDbEUsSUFBTSxJQUFJLEdBQWEsRUFBRSxDQUFDO1FBQzFCLElBQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QyxLQUFLLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNyRCxJQUFNLElBQUksR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3RCO1FBRUQsMEVBQTBFO1FBQzFFLElBQU0sRUFBRSxRQUFPLFFBQVEsWUFBUixRQUFRLHdDQUFJLElBQUksV0FBRSxjQUFjLGFBQUMsQ0FBQztRQUNqRCxPQUFPLFNBQVMsVUFBVSxDQUFDLE1BQW9DO1lBQzdELElBQUksTUFBTSxLQUFLLGNBQWMsRUFBRTtnQkFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyw2SEFBNkgsQ0FBQyxDQUFDO2FBQ2hKO1lBRUQsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBWixDQUFZLENBQUMsQ0FBQztZQUM5QyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQztJQUNKLENBQUM7SUFxQkQsc0JBQUksNEJBQUs7UUFKVDs7O1dBR0c7YUFDSDtZQUNFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQzs7O09BQUE7SUFNRCxzQkFBSSw4QkFBTztRQUpYOzs7V0FHRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDbEMsQ0FBQzs7O09BQUE7SUEyQkQsc0JBQUUsR0FBRixVQUFHLEtBQXdCLEVBQUUsRUFBYTtRQUN4QyxJQUFJLEtBQUssWUFBWSxRQUFRLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM3QjtRQUVELElBQUksRUFBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssS0FBSyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBT0QsOEJBQVUsR0FBVixVQUFXLE1BQThCLEVBQUUsWUFBMkIsRUFBRSxZQUFtQjtRQUN6RixJQUFNLElBQUksR0FBRyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ2hDLElBQUk7WUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLElBQUssTUFBTSxDQUFDLE1BQU0sQ0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFO2dCQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksTUFBTSxDQUFDLENBQUM7YUFDMUM7U0FDRjtRQUFDLE9BQU8sQ0FBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGlDQUFhLEdBQWI7UUFDVSxJQUFBLEtBQUssR0FBSyxJQUFJLE1BQVQsQ0FBVTtRQUN2QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLFlBQVksSUFBSSxFQUFFO1lBQ3RELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELDBCQUFNLEdBQU47UUFDRSxPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDO0lBQ0osQ0FBQztJQUNILGdCQUFDO0FBQUQsQ0FBQyxBQWhJRCxJQWdJQztBQWhJWSw4QkFBUztBQWtJdEIsSUFBTSxnQkFBZ0IsR0FBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDcEUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQTBCLENBQUMsT0FBTyxDQUFDLFVBQUMsSUFBd0I7SUFDN0UsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM1RCxxREFBcUQ7UUFDcEQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQVMsR0FBRyxTQUFTLFFBQVE7WUFBa0IsY0FBYztpQkFBZCxVQUFjLEVBQWQscUJBQWMsRUFBZCxJQUFjO2dCQUFkLHlCQUFjOztZQUNwRixJQUFNLEtBQUssR0FBRyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2hFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQztLQUNIO0FBQ0gsQ0FBQyxDQUFDLENBQUMifQ==