@ai-ecom/medusa-plugin-patient-record
Version:
A plugin for patient record
71 lines (70 loc) • 3.58 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.validator = validator;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _classTransformer = require("class-transformer");
var _classValidator = require("class-validator");
var _medusaCoreUtils = require("medusa-core-utils");
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var reduceErrorMessages = function reduceErrorMessages(errs) {
return errs.reduce(function (acc, next) {
if (next.constraints) {
for (var _i = 0, _Object$entries = Object.entries(next.constraints); _i < _Object$entries.length; _i++) {
var _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2),
_ = _Object$entries$_i[0],
msg = _Object$entries$_i[1];
acc.push(msg);
}
}
if (next.children) {
acc.push.apply(acc, (0, _toConsumableArray2["default"])(reduceErrorMessages(next.children)));
}
return acc;
}, []);
};
function validator(_x, _x2) {
return _validator.apply(this, arguments);
}
function _validator() {
_validator = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(typedClass, plain) {
var config,
toValidate,
errors,
errorMessages,
_args = arguments;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
config = _args.length > 2 && _args[2] !== undefined ? _args[2] : {};
toValidate = (0, _classTransformer.plainToInstance)(typedClass, plain); // @ts-ignore
_context.next = 4;
return (0, _classValidator.validate)(toValidate, _objectSpread({
whitelist: true,
forbidNonWhitelisted: true
}, config));
case 4:
errors = _context.sent;
errorMessages = reduceErrorMessages(errors);
if (!(errors !== null && errors !== void 0 && errors.length)) {
_context.next = 8;
break;
}
throw new _medusaCoreUtils.MedusaError(_medusaCoreUtils.MedusaError.Types.INVALID_DATA, errorMessages.join(", "));
case 8:
return _context.abrupt("return", toValidate);
case 9:
case "end":
return _context.stop();
}
}, _callee);
}));
return _validator.apply(this, arguments);
}