“use strict”;
var BOMChar = 'uFEFF';
exports.PrependBOM = PrependBOMWrapper function PrependBOMWrapper(encoder, options) {
this.encoder = encoder; this.addBOM = true;
}
PrependBOMWrapper.prototype.write = function(str) {
if (this.addBOM) { str = BOMChar + str; this.addBOM = false; } return this.encoder.write(str);
}
PrependBOMWrapper.prototype.end = function() {
return this.encoder.end();
}
//——————————————————————————
exports.StripBOM = StripBOMWrapper; function StripBOMWrapper(decoder, options) {
this.decoder = decoder; this.pass = false; this.options = options || {};
}
StripBOMWrapper.prototype.write = function(buf) {
var res = this.decoder.write(buf); if (this.pass || !res) return res; if (res[0] === BOMChar) { res = res.slice(1); if (typeof this.options.stripBOM === 'function') this.options.stripBOM(); } this.pass = true; return res;
}
StripBOMWrapper.prototype.end = function() {
return this.decoder.end();
}