UNPKG

1.78 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = void 0;
9
10var _isInt = _interopRequireDefault(require("validator/lib/isInt"));
11
12var _lodash = _interopRequireDefault(require("lodash.forown"));
13
14var parseObject = function parseObject(obj) {
15 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
16 integerParam = _ref.integer,
17 toggleParam = _ref.toggle;
18
19 var parsedObject = {};
20 var integerProperties;
21
22 if (typeof integerParam === 'string') {
23 integerProperties = [integerParam];
24 } else if (!integerParam) {
25 integerProperties = [];
26 } else {
27 integerProperties = integerParam;
28 }
29
30 var toggleProperties;
31
32 if (typeof toggleParam === 'string') {
33 toggleProperties = [toggleParam];
34 } else if (!toggleParam) {
35 toggleProperties = [];
36 } else {
37 toggleProperties = toggleParam;
38 }
39
40 (0, _lodash.default)(obj, function (value, key) {
41 if (integerProperties.find(function (f) {
42 return f === key;
43 })) {
44 if ((0, _isInt.default)(value)) {
45 parsedObject[key] = Number(value);
46 } else {
47 throw Error("Value '".concat(value, "' of integer property '").concat(key, "' is not an integer."));
48 }
49 } else if (toggleProperties.find(function (f) {
50 return f === key;
51 })) {
52 if (value === 'on') {
53 parsedObject[key] = true;
54 } else if (value) {
55 throw Error("Value '".concat(value, "' of toggle property '").concat(key, "' is not 'on'."));
56 }
57 } else if (value !== '') {
58 parsedObject[key] = value;
59 }
60 });
61 return parsedObject;
62};
63
64var _default = parseObject;
65exports.default = _default;
\No newline at end of file