ews javascript api

JsonObject

service, collectionJsonElementName, getObjectInstanceDelegate, clearPropertyBag, requestedPropertySet, summaryPropertiesOnly) {
       var serviceObjects = [];
       var serviceObject = null;
       var collectionItems = jsonResponse[collectionJsonElementName];
       for (var key in collectionItems) {
           if (key.indexOf("__") === 0)
               continue;
           var jsonServiceObjects = collectionItems[key];
           if (!Array.isArray(jsonServiceObjects)) {
               jsonServiceObjects = [jsonServiceObjects];
           }
           for (var _i = 0; _i < jsonServiceObjects.length; _i++) {
               var jsonServiceObject = jsonServiceObjects[_i];
               if (jsonServiceObject != null) {
                   var typeName = ExtensionMethods_1.TypeSystem.GetJsObjectTypeName(jsonServiceObject);
                   if (ExtensionMethods_1.StringHelper.IsNullOrEmpty(typeName))
                       debugger; //check why typeName is empty - may be invalid xml parsing by xml2js
                   serviceObject = getObjectInstanceDelegate(service, typeName || key);
                   if (serviceObject != null) {
                       if ((typeName || key) !== serviceObject.GetXmlElementName()) {
                           throw new ServiceLocalException_1.ServiceLocalException(ExtensionMethods_1.StringHelper.Format("The type of the object in the store ({0}) does not match that of the local object ({1}).", typeName, serviceObject.GetXmlElementName()));
                       }
                       serviceObject.LoadFromXmlJsObject(jsonServiceObject, service, clearPropertyBag, requestedPropertySet, summaryPropertiesOnly);
                       serviceObjects.push(serviceObject);
                   }
                   else
                       debugger;
               }
           }
       }
       return serviceObjects;
   };
   return EwsServiceJsonReader;
})();
exports.EwsServiceJsonReader = EwsServiceJsonReader;