UNPKG

872 BJavaScriptView Raw
1var common = require('./common');
2var xml2js = require('./xml2js');
3
4function validateOptions (userOptions) {
5 var options = common.copyOptions(userOptions);
6 common.ensureSpacesExists(options);
7 return options;
8}
9
10module.exports = function(xml, userOptions) {
11 'use strict';
12 var options, js, json, parentKey;
13 options = validateOptions(userOptions);
14 js = xml2js(xml, options);
15 parentKey = 'compact' in options && options.compact ? '_parent' : 'parent';
16 // parentKey = ptions.compact ? '_parent' : 'parent'; // consider this
17 if ('addParent' in options && options.addParent) {
18 json = JSON.stringify(js, function (k, v) { return k === parentKey? '_' : v; }, options.spaces);
19 } else {
20 json = JSON.stringify(js, null, options.spaces);
21 }
22 return json.replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029');
23};