UNPKG

1.29 kBJavaScriptView Raw
1'use strict';
2
3var _stream = require('stream');
4
5var _svgo = require('svgo');
6
7var _svgo2 = _interopRequireDefault(_svgo);
8
9var _pluginError = require('plugin-error');
10
11var _pluginError2 = _interopRequireDefault(_pluginError);
12
13function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
15var PLUGIN_NAME = 'gulp-svgmin';
16
17module.exports = function (opts) {
18 var stream = new _stream.Transform({ objectMode: true });
19 var svgo = void 0;
20
21 if (typeof opts !== 'function') {
22 svgo = new _svgo2.default(opts);
23 }
24
25 stream._transform = function (file, encoding, cb) {
26 if (file.isNull()) {
27 return cb(null, file);
28 }
29
30 if (file.isStream()) {
31 return cb(new _pluginError2.default(PLUGIN_NAME, 'Streaming not supported'));
32 }
33
34 if (file.isBuffer()) {
35 if (typeof opts === 'function') {
36 svgo = new _svgo2.default(opts(file));
37 }
38
39 svgo.optimize(String(file.contents)).then(function (result) {
40 file.contents = new Buffer(result.data);
41 cb(null, file);
42 }, function (error) {
43 cb(new _pluginError2.default(PLUGIN_NAME, error));
44 });
45 }
46 };
47
48 return stream;
49};
\No newline at end of file