sharyn
Version:
Combines all the other packages under one.
65 lines (54 loc) • 1.78 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _isInt = _interopRequireDefault(require("validator/lib/isInt"));
var _lodash = _interopRequireDefault(require("lodash.forown"));
var parseObject = function parseObject(obj) {
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
integerParam = _ref.integer,
toggleParam = _ref.toggle;
var parsedObject = {};
var integerProperties;
if (typeof integerParam === 'string') {
integerProperties = [integerParam];
} else if (!integerParam) {
integerProperties = [];
} else {
integerProperties = integerParam;
}
var toggleProperties;
if (typeof toggleParam === 'string') {
toggleProperties = [toggleParam];
} else if (!toggleParam) {
toggleProperties = [];
} else {
toggleProperties = toggleParam;
}
(0, _lodash.default)(obj, function (value, key) {
if (integerProperties.find(function (f) {
return f === key;
})) {
if ((0, _isInt.default)(value)) {
parsedObject[key] = Number(value);
} else {
throw Error("Value '".concat(value, "' of integer property '").concat(key, "' is not an integer."));
}
} else if (toggleProperties.find(function (f) {
return f === key;
})) {
if (value === 'on') {
parsedObject[key] = true;
} else if (value) {
throw Error("Value '".concat(value, "' of toggle property '").concat(key, "' is not 'on'."));
}
} else if (value !== '') {
parsedObject[key] = value;
}
});
return parsedObject;
};
var _default = parseObject;
exports.default = _default;