diff --git a/lib/definitions.js b/lib/definitions.js index 81a4ac8..e887f7d 100644 --- a/lib/definitions.js +++ b/lib/definitions.js @@ -37,7 +37,7 @@ class Definitions { self.components[json.name] = json; if (json.extensions) { - var extensions = []; + var extensions = {}; for (var key in json.extensions) { extensions[json.extensions[key].id] = json.extensions[key]; @@ -176,15 +176,13 @@ class Definitions { if (this.components[fieldType].extensions !== undefined) { if (decoded.id !== undefined) { - var extensionDef = this.components[fieldType].extensions.find(function(extension) { - if (extension) { - return extension.id == decoded.id; - } else { - return 0; - } - }); - - if (extensionDef) { + var extensions = this.components[fieldType].extensions; + var extensionDef = false; + for(var extensionId in extensions) { + if(extensionId == decoded.id) + extensionDef = extensions[extensionId]; + } + if (extensionDef != false) { decoded.payload = this.decode_fields(reader, extensionDef.fields); } else { console.warn('Error: Extensions of field type ' + fieldType + ' with id ' + decoded.id + ' is missing. (' + field.name + ').');