@bshg/validation
Version:
Validation Library for TypeScript projects
188 lines (187 loc) • 16.3 kB
JavaScript
"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))) || []),
]);
}
}
}
};