You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
605 B
27 lines
605 B
/*! |
|
* remove-bom-buffer <https://github.com/jonschlinkert/remove-bom-buffer> |
|
* |
|
* Copyright (c) 2015-2017, Jon Schlinkert. |
|
* Released under the MIT License. |
|
*/ |
|
|
|
'use strict'; |
|
|
|
var isUTF8 = require('is-utf8'); |
|
var isBuffer = require('is-buffer'); |
|
|
|
function matchBOM(buf) { |
|
return buf[0] === 0xEF && buf[1] === 0xBB && buf[2] === 0xBF; |
|
} |
|
|
|
function maybeUTF8(buf) { |
|
// Only "maybe" because we aren't sniffing the whole buffer |
|
return isUTF8(buf.slice(3, 7)); |
|
} |
|
|
|
module.exports = function(buf) { |
|
if (isBuffer(buf) && matchBOM(buf) && maybeUTF8(buf)) { |
|
return buf.slice(3); |
|
} |
|
return buf; |
|
};
|
|
|