postcss-svgo
Advanced tools
Comparing version
@@ -0,1 +1,5 @@ | ||
# 2.1.2 | ||
* Fixes an issue with processing some malformed URIs (thanks to @TrySound). | ||
# 2.1.1 | ||
@@ -2,0 +6,0 @@ |
'use strict'; | ||
Object.defineProperty(exports, '__esModule', { | ||
value: true | ||
}); | ||
exports.__esModule = true; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | ||
var _postcss = require('postcss'); | ||
@@ -25,7 +21,7 @@ | ||
var _url = require('./lib/url'); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var dataURI = /data:image\/svg\+xml(;(charset=)?utf-8)?,/; | ||
var encode = function encode(data) { | ||
return data.replace(/"/g, '\'').replace(/</g, '%3C').replace(/>/g, '%3E').replace(/&/g, '%26').replace(/#/g, '%23').replace(/\s+/g, ' '); | ||
}; | ||
var decode = decodeURIComponent; | ||
@@ -35,3 +31,3 @@ function minifyPromise(svgo, decl, opts) { | ||
decl.value = (0, _postcssValueParser2['default'])(decl.value).walk(function (node) { | ||
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) { | ||
if (node.type !== 'function' || node.value !== 'url' || !node.nodes.length) { | ||
@@ -42,3 +38,3 @@ return; | ||
var decodedUri = decode(value); | ||
var decodedUri = (0, _url.decode)(value); | ||
var isUriEncoded = decodedUri !== value; | ||
@@ -52,3 +48,3 @@ if (isUriEncoded) { | ||
if (!dataURI.test(value) || !(0, _isSvg2['default'])(value)) { | ||
if (!dataURI.test(value) || !(0, _isSvg2.default)(value)) { | ||
return; | ||
@@ -62,3 +58,3 @@ } | ||
node.before = node.after = ''; | ||
var data = isUriEncoded ? encode(result.data) : result.data; | ||
var data = isUriEncoded ? (0, _url.encode)(result.data) : result.data; | ||
node.nodes[0].value = 'data:image/svg+xml;charset=utf-8,' + data; | ||
@@ -75,10 +71,10 @@ node.nodes[0].quote = isUriEncoded ? '"' : '\''; | ||
return Promise.all(promises).then(function () { | ||
decl.value = decl.value.toString(); | ||
return decl.value = decl.value.toString(); | ||
}); | ||
} | ||
exports['default'] = _postcss2['default'].plugin('postcss-svgo', function () { | ||
exports.default = _postcss2.default.plugin('postcss-svgo', function () { | ||
var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; | ||
var svgo = new _svgo2['default'](opts); | ||
var svgo = new _svgo2.default(opts); | ||
return function (css) { | ||
@@ -85,0 +81,0 @@ return new Promise(function (resolve, reject) { |
{ | ||
"name": "postcss-svgo", | ||
"version": "2.1.1", | ||
"version": "2.1.2", | ||
"description": "Optimise inline SVG with PostCSS.", | ||
"main": "dist/index.js", | ||
"scripts": { | ||
"prepublish": "babel src --out-dir dist --ignore /__tests__/", | ||
"test-unformatted": "babel-tape-runner \"src/**/__tests__/*.js\"", | ||
"test": "npm run test-unformatted | tap-spec" | ||
"pretest": "eslint src", | ||
"prepublish": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/", | ||
"test": "nyc --reporter=text ava src/__tests__" | ||
}, | ||
@@ -26,7 +26,14 @@ "files": [ | ||
"devDependencies": { | ||
"babel": "^5.8.21", | ||
"babel-tape-runner": "1.2.0", | ||
"pleeease-filters": "^2.0.0", | ||
"tap-spec": "^4.1.0", | ||
"tape": "^4.2.0" | ||
"ava": "^0.11.0", | ||
"babel-cli": "^6.4.5", | ||
"babel-core": "^6.4.5", | ||
"babel-plugin-add-module-exports": "^0.1.2", | ||
"babel-preset-es2015": "^6.3.13", | ||
"babel-preset-es2015-loose": "^7.0.0", | ||
"babel-preset-stage-0": "^6.3.13", | ||
"coveralls": "^2.11.6", | ||
"del-cli": "^0.2.0", | ||
"eslint": "^1.10.3", | ||
"nyc": "^5.6.0", | ||
"pleeease-filters": "^2.0.0" | ||
}, | ||
@@ -42,6 +49,9 @@ "homepage": "https://github.com/ben-eb/postcss-svgo", | ||
"is-svg": "^1.1.1", | ||
"postcss": "^5.0.2", | ||
"postcss-value-parser": "^3.0.1", | ||
"postcss": "^5.0.14", | ||
"postcss-value-parser": "^3.2.3", | ||
"svgo": "^0.6.1" | ||
}, | ||
"ava": { | ||
"require": "babel-core/register" | ||
} | ||
} |
9352
5.28%6
20%71
1.43%12
140%Updated
Updated