1 | var Svgo = require('svgo');
|
2 | var loaderUtils = require('loader-utils');
|
3 |
|
4 | module.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 | };
|