UNPKG

@ai-ecom/medusa-plugin-patient-record

Version:

A plugin for patient record

71 lines (70 loc) 3.58 kB
"use strict"; 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); }