UNPKG

opennms

Version:

Client API for the OpenNMS network monitoring platform

45 lines (40 loc) 1.25 kB
// If running under Node, use `xmldom`'s DOM parser. if (global && !global.window) { (global as any).window = {} as Window; if (!(global.window as any).DOMParser) { // eslint-disable-next-line (global.window as any).DOMParser = require('@xmldom/xmldom').DOMParser; } } import {OnmsError} from '../api/OnmsError'; /** @hidden */ // eslint-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. * @category Rest */ 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: unknown) { throw new OnmsError((err as Error).message, undefined, undefined, data); } } else { // assume it's already parsed return data; } } }