UNPKG

@bshg/validation

Version:

Validation Library for TypeScript projects

188 lines (187 loc) 16.3 kB
"use strict"; var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var _ValidatorItem_instances, _ValidatorItem_validations, _ValidatorItem_validationsDepend, _ValidatorItem_validationsAsync, _ValidatorItem_validationsDependAsync, _ValidatorItem_validationsCtx, _ValidatorItem_validationsDependCtx, _ValidatorItem_validationsCtxAsync, _ValidatorItem_validationsDependCtxAsync, _ValidatorItem_validationsWithContext, _ValidatorItem_onChange, _ValidatorItem_getMessage, _ValidatorItem_setTheError, _ValidatorItem_doValidations, _ValidatorItem_doValidationsCtx, _ValidatorItem_doValidationsAsync, _ValidatorItem_doValidationsCtxAsync, _ValidatorItem_takeValidationsFromContext, _ValidatorItem_doValidationsWithContext, _ValidatorItem_doValidationsWithContextAsync; Object.defineProperty(exports, "__esModule", { value: true }); exports.ValidatorItem = void 0; const base_1 = require("../validators-fn/base"); const messages_1 = require("../messages"); const exceptions_1 = require("../exceptions"); class ValidatorItem { constructor() { var _a; _ValidatorItem_instances.add(this); this.context = (_a = this.validator) === null || _a === void 0 ? void 0 : _a.context; _ValidatorItem_validations.set(this, void 0); _ValidatorItem_validationsDepend.set(this, void 0); _ValidatorItem_validationsAsync.set(this, void 0); _ValidatorItem_validationsDependAsync.set(this, void 0); _ValidatorItem_validationsCtx.set(this, void 0); _ValidatorItem_validationsDependCtx.set(this, void 0); _ValidatorItem_validationsCtxAsync.set(this, void 0); _ValidatorItem_validationsDependCtxAsync.set(this, void 0); _ValidatorItem_validationsWithContext.set(this, void 0); this.validate = () => { var _a, _b, _c, _d; try { (_a = __classPrivateFieldGet(this, _ValidatorItem_validations, "f")) === null || _a === void 0 ? void 0 : _a.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidations).call(this, it)); (_b = __classPrivateFieldGet(this, _ValidatorItem_validationsDepend, "f")) === null || _b === void 0 ? void 0 : _b.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidations).call(this, it)); (_c = __classPrivateFieldGet(this, _ValidatorItem_validationsCtx, "f")) === null || _c === void 0 ? void 0 : _c.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsCtx).call(this, it)); (_d = __classPrivateFieldGet(this, _ValidatorItem_validationsDependCtx, "f")) === null || _d === void 0 ? void 0 : _d.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsCtx).call(this, it)); __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsWithContext).call(this); } catch (e) { if (e instanceof exceptions_1.ValidationFailedError) return; throw e; } this.markAsValid(); }; this.validateAsync = async () => { var _a, _b, _c, _d, _e, _f, _g, _h; try { (_a = __classPrivateFieldGet(this, _ValidatorItem_validations, "f")) === null || _a === void 0 ? void 0 : _a.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidations).call(this, it)); (_b = __classPrivateFieldGet(this, _ValidatorItem_validationsDepend, "f")) === null || _b === void 0 ? void 0 : _b.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidations).call(this, it)); (_c = __classPrivateFieldGet(this, _ValidatorItem_validationsCtx, "f")) === null || _c === void 0 ? void 0 : _c.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsCtx).call(this, it)); (_d = __classPrivateFieldGet(this, _ValidatorItem_validationsDependCtx, "f")) === null || _d === void 0 ? void 0 : _d.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsCtx).call(this, it)); await Promise.all([ ...(((_e = __classPrivateFieldGet(this, _ValidatorItem_validationsAsync, "f")) === null || _e === void 0 ? void 0 : _e.map(async (it) => await __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsAsync).call(this, it))) || []), ...(((_f = __classPrivateFieldGet(this, _ValidatorItem_validationsDependAsync, "f")) === null || _f === void 0 ? void 0 : _f.map(async (it) => await __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsAsync).call(this, it))) || []), ...(((_g = __classPrivateFieldGet(this, _ValidatorItem_validationsCtxAsync, "f")) === null || _g === void 0 ? void 0 : _g.map(async (it) => await __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsCtxAsync).call(this, it))) || []), ...(((_h = __classPrivateFieldGet(this, _ValidatorItem_validationsDependCtxAsync, "f")) === null || _h === void 0 ? void 0 : _h.map(async (it) => await __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsCtxAsync).call(this, it))) || []), ]); await __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsWithContextAsync).call(this); } catch (e) { return; } this.valid = true; this.message = undefined; }; _ValidatorItem_getMessage.set(this, (fn) => { return (0, base_1.message)(messages_1.CurrentLocalize.noMessage, { message: fn.message }); }); } setValidations(value) { if (value instanceof Array) { __classPrivateFieldSet(this, _ValidatorItem_validationsWithContext, value, "f"); } else if (value) { value = value; __classPrivateFieldSet(this, _ValidatorItem_validations, value === null || value === void 0 ? void 0 : value.validations, "f"); __classPrivateFieldSet(this, _ValidatorItem_validationsDepend, value === null || value === void 0 ? void 0 : value.validationsDepend, "f"); __classPrivateFieldSet(this, _ValidatorItem_validationsAsync, value === null || value === void 0 ? void 0 : value.validationsAsync, "f"); __classPrivateFieldSet(this, _ValidatorItem_validationsDependAsync, value === null || value === void 0 ? void 0 : value.validationsDependAsync, "f"); __classPrivateFieldSet(this, _ValidatorItem_validationsCtx, value === null || value === void 0 ? void 0 : value.validationsCtx, "f"); __classPrivateFieldSet(this, _ValidatorItem_validationsDependCtx, value === null || value === void 0 ? void 0 : value.validationsDependCtx, "f"); __classPrivateFieldSet(this, _ValidatorItem_validationsCtxAsync, value === null || value === void 0 ? void 0 : value.validationsCtxAsync, "f"); __classPrivateFieldSet(this, _ValidatorItem_validationsDependCtxAsync, value === null || value === void 0 ? void 0 : value.validationsDependCtxAsync, "f"); } } reset() { this.valid = undefined; this.message = undefined; __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_onChange).call(this); } markAsError(msg) { this.valid = false; this.message = msg .replace(base_1.messageVars.value, this.get() + "") .replace(base_1.messageVars.name, this.name); __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_onChange).call(this); } /** * @deprecated * replaced with `markAsError` * @param msg * @see #markAsError */ error(msg) { this.markAsError(msg); } markAsValid() { this.valid = true; this.message = undefined; __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_onChange).call(this); } apply(value) { this.get = () => value; this.validate(); return { status: this.valid, err: this.message }; } } exports.ValidatorItem = ValidatorItem; _ValidatorItem_validations = new WeakMap(), _ValidatorItem_validationsDepend = new WeakMap(), _ValidatorItem_validationsAsync = new WeakMap(), _ValidatorItem_validationsDependAsync = new WeakMap(), _ValidatorItem_validationsCtx = new WeakMap(), _ValidatorItem_validationsDependCtx = new WeakMap(), _ValidatorItem_validationsCtxAsync = new WeakMap(), _ValidatorItem_validationsDependCtxAsync = new WeakMap(), _ValidatorItem_validationsWithContext = new WeakMap(), _ValidatorItem_getMessage = new WeakMap(), _ValidatorItem_instances = new WeakSet(), _ValidatorItem_onChange = function _ValidatorItem_onChange() { var _a; ((_a = this.validator) === null || _a === void 0 ? void 0 : _a.onChangeEvent) && this.validator.onChangeEvent(this.container()); }, _ValidatorItem_setTheError = function _ValidatorItem_setTheError(fn, result) { if (result) { this.markAsError(__classPrivateFieldGet(this, _ValidatorItem_getMessage, "f").call(this, fn)); throw new exceptions_1.ValidationFailedError(); } }, _ValidatorItem_doValidations = function _ValidatorItem_doValidations(fn) { const result = fn.error.length > 1 ? fn.error(this.get(), this.container()) : fn.error(this.get()); __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_setTheError).call(this, fn, result); }, _ValidatorItem_doValidationsCtx = function _ValidatorItem_doValidationsCtx(fn) { var _a, _b; const result = fn.error.length > 2 ? fn.error(this.get(), this.container(), (_a = this.validator) === null || _a === void 0 ? void 0 : _a.context) : fn.error(this.get(), (_b = this.validator) === null || _b === void 0 ? void 0 : _b.context); __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_setTheError).call(this, fn, result); }, _ValidatorItem_doValidationsAsync = async function _ValidatorItem_doValidationsAsync(fn) { const result = fn.error.length > 1 ? await fn.error(this.get(), this.container()) : await fn.error(this.get()); __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_setTheError).call(this, fn, result); }, _ValidatorItem_doValidationsCtxAsync = async function _ValidatorItem_doValidationsCtxAsync(fn) { var _a, _b; const result = fn.error.length > 2 ? await fn.error(this.get(), this.container(), (_a = this.validator) === null || _a === void 0 ? void 0 : _a.context) : await fn.error(this.get(), (_b = this.validator) === null || _b === void 0 ? void 0 : _b.context); __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_setTheError).call(this, fn, result); }, _ValidatorItem_takeValidationsFromContext = function _ValidatorItem_takeValidationsFromContext(val) { return val.ctx == undefined ? false : typeof val.ctx == "function" ? val.ctx(this.validator.context) : Object.keys(val.ctx).every(key => this.validator.context[key] == val.ctx[key]); }, _ValidatorItem_doValidationsWithContext = function _ValidatorItem_doValidationsWithContext() { var _a; (_a = __classPrivateFieldGet(this, _ValidatorItem_validationsWithContext, "f")) === null || _a === void 0 ? void 0 : _a.forEach(val => { var _a, _b, _c, _d; if (__classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_takeValidationsFromContext).call(this, val)) { (_a = val.validations.validations) === null || _a === void 0 ? void 0 : _a.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsCtx).call(this, it)); (_b = val.validations.validationsDepend) === null || _b === void 0 ? void 0 : _b.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsCtx).call(this, it)); (_c = val.validations.validationsCtx) === null || _c === void 0 ? void 0 : _c.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsCtx).call(this, it)); (_d = val.validations.validationsDependCtx) === null || _d === void 0 ? void 0 : _d.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsCtx).call(this, it)); } }); }, _ValidatorItem_doValidationsWithContextAsync = async function _ValidatorItem_doValidationsWithContextAsync() { var _a, _b, _c, _d, _e, _f, _g, _h; if (__classPrivateFieldGet(this, _ValidatorItem_validationsWithContext, "f")) { for (let val of __classPrivateFieldGet(this, _ValidatorItem_validationsWithContext, "f")) { if (__classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_takeValidationsFromContext).call(this, val)) { (_a = val.validations.validations) === null || _a === void 0 ? void 0 : _a.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidations).call(this, it)); (_b = val.validations.validationsDepend) === null || _b === void 0 ? void 0 : _b.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidations).call(this, it)); (_c = val.validations.validationsCtx) === null || _c === void 0 ? void 0 : _c.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsCtx).call(this, it)); (_d = val.validations.validationsDependCtx) === null || _d === void 0 ? void 0 : _d.forEach(it => __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsCtx).call(this, it)); await Promise.all([ ...(((_e = val.validations.validationsAsync) === null || _e === void 0 ? void 0 : _e.map(async (it) => await __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsAsync).call(this, it))) || []), ...(((_f = val.validations.validationsDependAsync) === null || _f === void 0 ? void 0 : _f.map(async (it) => await __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsAsync).call(this, it))) || []), ...(((_g = val.validations.validationsCtxAsync) === null || _g === void 0 ? void 0 : _g.map(async (it) => await __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsCtxAsync).call(this, it))) || []), ...(((_h = val.validations.validationsDependCtxAsync) === null || _h === void 0 ? void 0 : _h.map(async (it) => await __classPrivateFieldGet(this, _ValidatorItem_instances, "m", _ValidatorItem_doValidationsCtxAsync).call(this, it))) || []), ]); } } } };