svg-uri-encoder.js 887 Bytes
/*global require:true*/
/*global module:true*/
(function(){
	"use strict";

	var fs = require( 'fs' );
	var DataURIEncoder = require( './data-uri-encoder' );

	function SvgURIEncoder(path) {
		DataURIEncoder.call( this, path );
	}

	SvgURIEncoder.prefix = "data:image/svg+xml;charset=US-ASCII,";

	SvgURIEncoder.prototype.stats = function(){
		return DataURIEncoder.prototype.stats.call( this );
	};

	SvgURIEncoder.prototype.encode = function() {
		var fileData = fs.readFileSync( this.path );

		return SvgURIEncoder.prefix + encodeURIComponent( fileData.toString('utf-8')
			//strip newlines and tabs
			.replace( /[\n\r]/gmi, "" )
			.replace( /\t/gmi, " " )
			//strip comments
			.replace(/<\!\-\-(.*(?=\-\->))\-\->/gmi, "")
			//replace
			.replace(/'/gmi, "\\i") )
			//encode brackets
			.replace(/\(/g, "%28").replace(/\)/g, "%29");
	};

	module.exports = SvgURIEncoder;
}());