Skip to content

Commit 39a9cab

Browse files
committed
fix: getValueFromObject param trowError boolean will trow erro if property does not exist vs returning undefined
1 parent 2fd7387 commit 39a9cab

File tree

1 file changed

+16
-13
lines changed

1 file changed

+16
-13
lines changed

src/index.js

+16-13
Original file line numberDiff line numberDiff line change
@@ -142,19 +142,22 @@
142142
}
143143
}
144144

145-
function getValueFromObject(object, path) {
145+
function getValueFromObject(object = {}, path = '', throwError = false) {
146146
try {
147-
if (!object || !path)
148-
// throw new Error("Invalid input to getValueFromObject");
147+
if (!Object.keys(object).length || !path) {
148+
if (throwError)
149+
throw new Error("Invalid input to getValueFromObject");
149150
return
150151

152+
}
153+
151154
path = path.replace(/\[(\d+)\]/g, '.$1');
152155

153156
let data = object, subpath = path.split('.');
154157

155158
for (let i = 0; i < subpath.length; i++) {
156-
// if (!(subpath[i] in data))
157-
// throw new Error("Key not found in object: " + subpath[i]);
159+
if (throwError && !(subpath[i] in data))
160+
throw new Error("Key not found in object: " + subpath[i]);
158161

159162
data = data[subpath[i]];
160163
if (!data)
@@ -164,15 +167,11 @@
164167
return data;
165168
} catch (error) {
166169
console.error("Error in getValueFromObject:", error);
167-
// throw error;
170+
if (throwError)
171+
throw error;
168172
}
169173
}
170174

171-
function isObjectEmpty(obj) {
172-
for (var x in obj) { return false }
173-
return true;
174-
}
175-
176175
function domParser(str) {
177176
try {
178177
var mainTag = str.match(/\<(?<tag>[a-z0-9]+)(.*?)?\>/).groups.tag;
@@ -602,7 +601,12 @@
602601
// if (!data.hasOwnProperty(key))
603602
// return false
604603

605-
let dataValue = getValueFromObject(data, key)
604+
let dataValue
605+
try {
606+
dataValue = getValueFromObject(data, key, true)
607+
} catch (error) {
608+
609+
}
606610

607611
if (typeof query[key] === 'string' || typeof query[key] === 'number' || typeof query[key] === 'boolean') {
608612
if (Array.isArray(dataValue))
@@ -897,7 +901,6 @@
897901
isValidDate,
898902
dotNotationToObject,
899903
getValueFromObject,
900-
isObjectEmpty,
901904
domParser,
902905
parseTextToHtml,
903906
escapeHtml,

0 commit comments

Comments
 (0)