@etherspot/prime-sdk
Version:
Etherspot Prime (Account Abstraction) SDK
36 lines (35 loc) • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateDto = void 0;
const class_validator_1 = require("class-validator");
const common_1 = require("../../common");
async function validateDto(dto, DtoConstructor, options = {}) {
const result = new DtoConstructor();
const { addressKeys } = options;
try {
let dtoWithoutUndefined = Object.entries(dto).reduce((result, [key, value]) => {
if (typeof value !== 'undefined') {
result = Object.assign(Object.assign({}, result), { [key]: value });
}
return result;
}, {});
if (addressKeys) {
dtoWithoutUndefined = (0, common_1.prepareAddresses)(dtoWithoutUndefined, ...addressKeys);
}
Object.assign(result, dtoWithoutUndefined);
}
catch (err) {
}
const errors = await (0, class_validator_1.validate)(result, {
forbidUnknownValues: true,
validationError: {
target: false,
value: false,
},
});
if (errors && errors.length) {
throw new common_1.ValidationException(errors);
}
return result;
}
exports.validateDto = validateDto;