mirror of
				https://scm.univ-tours.fr/22107988t/rappaurio-sae501_502.git
				synced 2025-11-04 06:55:23 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"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();
 | 
						|
}
 | 
						|
 |