Skip to content

Instantly share code, notes, and snippets.

@plugn
Forked from pbakondy/parse-json.js
Created February 22, 2018 12:41
Show Gist options
  • Select an option

  • Save plugn/88ac046fd63ecfd8bbcebd21cc4ddd3e to your computer and use it in GitHub Desktop.

Select an option

Save plugn/88ac046fd63ecfd8bbcebd21cc4ddd3e to your computer and use it in GitHub Desktop.
Parse JSON, strip BOM
// https://github.com/npm/npm/blob/master/lib/utils/parse-json.js
'use strict'
var parseJSON = module.exports = function (content) {
return JSON.parse(stripBOM(content))
}
parseJSON.noExceptions = function (content) {
try {
return parseJSON(content)
} catch (ex) {
return
}
}
// from read-package-json
function stripBOM (content) {
content = content.toString()
// Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
// because the buffer-to-string conversion in `fs.readFileSync()`
// translates it to FEFF, the UTF-16 BOM.
if (content.charCodeAt(0) === 0xFEFF) {
content = content.slice(1)
}
return content
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment