Use strip-bom to strip BOM
authorRaphael von der GrĂ¼n <raphinesse@gmail.com>
Mon, 21 May 2018 17:21:31 +0000 (19:21 +0200)
committerDarryl Pogue <dvpdiner2@gmail.com>
Tue, 22 May 2018 03:41:22 +0000 (20:41 -0700)
package.json
src/util/xml-helpers.js

index 609e8ff..1d68395 100644 (file)
@@ -32,6 +32,7 @@
     "plist": "^3.0.1",
     "q": "^1.4.1",
     "shelljs": "^0.8.1",
+    "strip-bom": "^3.0.0",
     "underscore": "^1.8.3"
   },
   "devDependencies": {
index fe27988..ca65bfa 100644 (file)
@@ -25,6 +25,7 @@ var fs = require('fs');
 var path = require('path');
 var _ = require('underscore');
 var et = require('elementtree');
+var stripBom = require('strip-bom');
 
 /* eslint-disable no-useless-escape */
 var ROOT = /^\/([^\/]*)/;
@@ -177,11 +178,7 @@ module.exports = {
     },
 
     parseElementtreeSync: function (filename) {
-        var contents = fs.readFileSync(filename, 'utf-8');
-        if (contents) {
-            // Windows is the BOM. Skip the Byte Order Mark.
-            contents = contents.substring(contents.indexOf('<'));
-        }
+        var contents = stripBom(fs.readFileSync(filename, 'utf-8'));
         return new et.ElementTree(et.XML(contents));
     },