ssv-keys
Version:
Tool for splitting a validator key into a predefined threshold of shares via Shamir-Secret-Sharing (SSS), and encrypt them with a set of operator keys.
45 lines • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MatchLengthValidator = exports.MatchLengthValidatorConstraint = void 0;
const tslib_1 = require("tslib");
const class_validator_1 = require("class-validator");
const operator_1 = require("../../../exceptions/operator");
let MatchLengthValidatorConstraint = class MatchLengthValidatorConstraint {
validate(value, args) {
const [relatedPropertyName, customError] = args.constraints;
const relatedLength = args.object[relatedPropertyName].length;
if (!Array.isArray(value)) {
Object.values(value).forEach((arr) => {
if (relatedLength !== arr.length) {
throw new operator_1.OperatorsCountsMismatchError(args.object[relatedPropertyName], value, customError.message);
}
});
}
else {
if (relatedLength !== value.length) {
throw new operator_1.OperatorsCountsMismatchError(args.object[relatedPropertyName], value, customError.message);
}
}
return true;
}
defaultMessage() {
return 'The length of the entries lists are not equal';
}
};
MatchLengthValidatorConstraint = tslib_1.__decorate([
(0, class_validator_1.ValidatorConstraint)({ name: 'matchLength', async: false })
], MatchLengthValidatorConstraint);
exports.MatchLengthValidatorConstraint = MatchLengthValidatorConstraint;
function MatchLengthValidator(property, validationOptions) {
return function (object, propertyName) {
(0, class_validator_1.registerDecorator)({
target: object.constructor,
propertyName,
options: validationOptions,
constraints: [property, validationOptions],
validator: MatchLengthValidatorConstraint,
});
};
}
exports.MatchLengthValidator = MatchLengthValidator;
//# sourceMappingURL=match.js.map