Spaces:
Sleeping
Sleeping
| ; | |
| 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(); | |
| } | |