123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- "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()
- }
|