UNPKG

795 BJavaScriptView Raw
1var Svgo = require('svgo');
2var loaderUtils = require('loader-utils');
3
4module.exports = function(source) {
5 this.cacheable(true);
6 var callback = this.async();
7
8 var config = loaderUtils.parseQuery(this.query);
9
10 if (config.useConfig) {
11 var configName = config.useConfig;
12 var config = this.options[configName];
13 if (config === undefined) {
14 callback(new Error(
15 'You specified "useConfig=' + configName +
16 '" for svgo-loader, but there is no property named "' + configName +
17 '" in your main webpack configuration.'
18 ));
19 return;
20 }
21 }
22
23 var svgo = new Svgo(config);
24 svgo.optimize(source, function(result) {
25 if (result.error) {
26 callback(new Error(result.error));
27 return;
28 }
29
30 callback(null, result.data);
31 });
32};