28 lines
605 B
JavaScript
28 lines
605 B
JavaScript
|
/*!
|
||
|
* 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;
|
||
|
};
|