UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

47 lines 2.6 kB
import { parseString as parseAsync } from 'xml2js'; // TODO remove xml2js dependencie /** * Convert XML to Javascript Object */ export class XMLParser { /** * Parse XML input synchonously * @param xml */ parseSync(xml) { let res = null; parseAsync(xml, function (err, result) { if (err !== null) { throw err; } res = result; }); return res; } /** * Parse XML input async * @param xml */ parse(xml) { xml = this.cleanifyXml(xml); return new Promise((resolve, reject) => { parseAsync(xml, function (err, result) { if (err !== null) { reject(err); } resolve(result); }); }); } /** * Cleanify the xml input before parsing * @see http://stackoverflow.com/questions/34783452/cannot-parse-xml-error-non-whitespace-before-first-tag-line-0-column-1-cha */ cleanifyXml(xml) { if (!xml) { return xml; } return xml.replace('\ufeff', '').trim(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1sLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvbmZpZy9pb3RpemUtc3R1ZGlvL3BhcnNlci94bWwvc3JjL3htbC1wYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFdBQVcsSUFBSSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFbkQsaUNBQWlDO0FBRWpDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFDcEI7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLEdBQVc7UUFDbkIsSUFBSSxHQUFHLEdBQVEsSUFBSSxDQUFDO1FBQ3BCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFRLEVBQUUsTUFBVztZQUM3QyxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7Z0JBQ2hCLE1BQU0sR0FBRyxDQUFDO2FBQ1g7WUFDRCxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsR0FBVztRQUNmLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxPQUFPLENBQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDMUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxVQUFVLEdBQVEsRUFBRSxNQUFXO2dCQUM3QyxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7b0JBQ2hCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDYjtnQkFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsR0FBVztRQUNyQixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUNELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUMsQ0FBQztDQUNGIn0=