44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
Object.defineProperty(exports, "__esModule", { value: true });
 | 
						|
exports.obj2xml = void 0;
 | 
						|
const formatObjKey_1 = require("./formatObjKey");
 | 
						|
function type(params) {
 | 
						|
    return Object.prototype.toString
 | 
						|
        .call(params)
 | 
						|
        .replace(/(.*? |])/g, '')
 | 
						|
        .toLowerCase();
 | 
						|
}
 | 
						|
function obj2xml(obj, options) {
 | 
						|
    let s = '';
 | 
						|
    if (options && options.headers) {
 | 
						|
        s = '<?xml version="1.0" encoding="UTF-8"?>\n';
 | 
						|
    }
 | 
						|
    if (options && options.firstUpperCase) {
 | 
						|
        obj = formatObjKey_1.formatObjKey(obj, 'firstUpperCase');
 | 
						|
    }
 | 
						|
    if (type(obj) === 'object') {
 | 
						|
        Object.keys(obj).forEach(key => {
 | 
						|
            // filter undefined or null
 | 
						|
            if (type(obj[key]) !== 'undefined' && type(obj[key]) !== 'null') {
 | 
						|
                if (type(obj[key]) === 'string' || type(obj[key]) === 'number') {
 | 
						|
                    s += `<${key}>${obj[key]}</${key}>`;
 | 
						|
                }
 | 
						|
                else if (type(obj[key]) === 'object') {
 | 
						|
                    s += `<${key}>${obj2xml(obj[key])}</${key}>`;
 | 
						|
                }
 | 
						|
                else if (type(obj[key]) === 'array') {
 | 
						|
                    s += obj[key].map(keyChild => `<${key}>${obj2xml(keyChild)}</${key}>`).join('');
 | 
						|
                }
 | 
						|
                else {
 | 
						|
                    s += `<${key}>${obj[key].toString()}</${key}>`;
 | 
						|
                }
 | 
						|
            }
 | 
						|
        });
 | 
						|
    }
 | 
						|
    else {
 | 
						|
        s += obj.toString();
 | 
						|
    }
 | 
						|
    return s;
 | 
						|
}
 | 
						|
exports.obj2xml = obj2xml;
 |