UNPKG

@etherspot/prime-sdk

Version:

Etherspot Prime (Account Abstraction) SDK

36 lines (35 loc) 1.21 kB
"use strict"; 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;