Code coverage report for lib/soapHelpers.js

Statements: 100% (20 / 20)      Branches: 100% (14 / 14)      Functions: 100% (2 / 2)      Lines: 100% (17 / 17)      Ignored: none     

All files » lib/ » soapHelpers.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31        1   1 796 495 5   490     791 293 293 703 76   627     293   498 479 384 240    
/**
 * Created by Andrew D.Laptev<a.d.laptev@gmail.com> on 1/20/15.
 */
 
var numberRE = /^-?([1-9]\d*|0)(\.\d*)?$/;
 
var _linerase = exports._linerase = function(xml) {
	if (Array.isArray(xml)) {
		if (xml.length > 1) {
			return xml.map(_linerase);
		} else {
			xml = xml[0];
		}
	}
	if (typeof xml === 'object') {
		var obj = {};
		Object.keys(xml).forEach(function(key) {
			if (key === '$') {
				obj.$ = _linerase(xml.$);
			} else {
				obj[key] = _linerase(xml[key]);
			}
		});
		return obj;
	} else {
		if (xml === 'true') { return true; }
		if (xml === 'false') { return false; }
		if (numberRE.test(xml)) { return parseFloat(xml); }
		return xml;
	}
};