UNPKG

ali-oss

Version:

aliyun oss(object storage service) node client

38 lines (35 loc) 1.12 kB
import { formatObjKey } from './formatObjKey'; function type(params) { return Object.prototype.toString .call(params) .replace(/(.*? |])/g, '') .toLowerCase(); } export 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(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; }