8000 Add options `copyBackgroundSize`, `replaceRemoteImage`, bug fixes for… · lexich/webpcss@61d7efb · GitHub
[go: up one dir, main page]

Skip to content

Commit 61d7efb

Browse files
committed
Add options copyBackgroundSize, replaceRemoteImage, bug fixes for absolute URL detection and unsupported based64 encoded content.
Fix svg problems
1 parent 79d6254 commit 61d7efb

File tree

11 files changed

+550
-19
lines changed

11 files changed

+550
-19
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,3 @@ node_modules
22
npm-debug.log
33
tmp
44
coverage/
5-
dist

dist/WebpBase64.js

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
"use strict";
2+
3+
/*
4+
* webpcss
5+
* https://github.com/lexich/webpcss
6+
*
7+
* Copyright (c) 2015 Efremov Alexey
8+
* Licensed under the MIT license.
9+
*/
10+
11+
/* eslint class-methods-use-this: 0 */
12+
13+
Object.defineProperty(exports, "__esModule", {
14+
value: true
15+
});
16+
17+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
18+
19+
var _urldata = require("urldata");
20+
21+
var _urldata2 = _interopRequireDefault(_urldata);
22+
23+
var _cwebp = require("cwebp");
24+
25+
var _parseDataUri2 = require("parse-data-uri");
26+
27+
var _parseDataUri3 = _interopRequireDefault(_parseDataUri2);
28+
29+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
30+
31+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
32+
33+
var webpBinPath = require("webp-converter/cwebp")();
34+
35+
var base64pattern = "data:";
36+
var base64patternEnd = ";base64,";
37+
38+
var WebpBase64 = function () {
39+
function WebpBase64() {
40+
_classCallCheck(this, WebpBase64);
41+
}
42+
43+
_createClass(WebpBase64, [{
44+
key: "extract",
45+
value: function extract(value, isUrl) {
46+
var result = [];
47+
if (!!isUrl) {
48+
var data = (0, _urldata2.default)(value);
49+
for (var i = 0; i < data.length; i += 1) {
50+
/* eslint no-continue: 0 */
51+
if (!data[i]) {
52+
continue;
53+
}
54+
result[result.length] = WebpBase64.extractor(data[i], isUrl);
55+
}
56+
} else {
57+
var res = WebpBase64.extractor(value, isUrl);
58+
if (res) {
59+
result[result.length] = res;
60+
}
61+
}
62+
return result;
63+
}
64+
}, {
65+
key: "convert",
66+
value: function convert(data, fConfig) {
67+
var buffer = data instanceof Buffer ? data : new Buffer(data, "base64");
68+
var encoderBase = new _cwebp.CWebp(buffer, webpBinPath);
69+
var encoder = fConfig ? fConfig(encoderBase) : encoderBase;
70+
return encoder.toBuffer();
71+
}
72+
}], [{
73+
key: "extractor",
74+
value: function extractor(value) {
75+
if (!value) {
76+
return;
77+
}
78+
var base64pos = value.indexOf(base64pattern);
79+
if (base64pos >= 0) {
80+
var base64posEnd = value.indexOf(base64patternEnd);
81+
82+
if (base64posEnd < 0) {
83+
var _parseDataUri = (0, _parseDataUri3.default)(value),
84+
mimeType = _parseDataUri.mimeType,
85+
data = _parseDataUri.data;
86+
87+
return { mimetype: mimeType, data: data };
88+
} else {
89+
var mimetype = value.slice(base64pos + base64pattern.length, base64posEnd);
90+
var _data = value.slice(base64posEnd + base64patternEnd.length);
91+
return { mimetype: mimetype, data: _data };
92+
}
93+
} else {
94+
return { mimetype: "url", data: value };
95+
}
96+
}
97+
}]);
98+
99+
return WebpBase64;
100+
}();
101+
102+
exports.default = WebpBase64;
103+
module.exports = exports["default"];

0 commit comments

Comments
 (0)
0