UNPKG

opennms

Version:

Client API for the OpenNMS network monitoring platform

44 lines (38 loc) 1.12 kB
if (global && !global.window) { global.window = {} as Window; if (!global.window.DOMParser) { // tslint:disable-next-line global.window.DOMParser = require('xmldom').DOMParser; } } import {OnmsError} from '../api/OnmsError'; /** @hidden */ // tslint:disable-next-line const X2JS = require('x2js'); /** @hidden */ const xmlParser = new X2JS({ arrayAccessForm: 'property', attributePrefix: '', ignoreRoot: true, }); /** * Helper class to transform any xml string to a javascript object. */ export class XmlTransformer { /** * A convenience method for implementers to use to turn XML into a javascript object. * Use this to process an XML response before returning it in an [[OnmsResult]] object. */ public transform(data: any) { if (typeof data === 'string') { try { return xmlParser.xml2js(data); } catch (err) { throw new OnmsError(err.message, undefined, undefined, data); } } else { // assume it's already parsed return data; } } }