Skip to content

Commit 242818f

Browse files
Merge pull request #15 from visualfanatic/feature/include-path
Added ability to include path to SVG file
2 parents 4921cf1 + 044fdbb commit 242818f

File tree

2 files changed

+23
-13
lines changed

2 files changed

+23
-13
lines changed

.jshintrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"esversion": 6
3+
}

index.js

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,32 @@
1-
var svg = require('svgo');
2-
var loaderUtils = require('loader-utils');
3-
var compiler = require('vue-template-compiler');
1+
const svg = require('svgo');
2+
const loaderUtils = require('loader-utils');
3+
const compiler = require('vue-template-compiler');
44

55
module.exports = function (content) {
6-
var options = loaderUtils.getOptions(this) || {};
7-
var svgoOptions = options.svgo || {
8-
plugins: [{removeDoctype: true}, {removeComments: true}],
9-
};
10-
var svgo = new svg(svgoOptions);
6+
const options = loaderUtils.getOptions(this) || {};
7+
const query = loaderUtils.parseQuery(this.resourceQuery || '?');
8+
const svgo = new svg(options.svgo || {
9+
plugins: [{ removeDoctype: true }, { removeComments: true }],
10+
});
1111

1212
this.cacheable && this.cacheable(true);
1313
this.addDependency(this.resourcePath);
1414

15-
var cb = this.async();
15+
const cb = this.async();
1616

17-
svgo.optimize(content, function (result) {
17+
svgo.optimize(content, (result) => {
1818
if (result.error) {
1919
return cb(result.error);
2020
}
21-
22-
var compiled = compiler.compile(result.data, {preserveWhitespace: false});
23-
cb(null, "module.exports = {render: function () {" + compiled.render + "}};");
21+
22+
const compiled = compiler.compile(result.data, { preserveWhitespace: false });
23+
let component = `render: function () {${compiled.render}}`;
24+
25+
if (options.includePath || query.includePath) {
26+
const filename = loaderUtils.interpolateName(this, '[path][name].[ext]', { context: this.options.context });
27+
component = `${component}, path:${JSON.stringify(filename)}`;
28+
}
29+
30+
cb(null, `module.exports = {${component}};`);
2431
});
2532
};

0 commit comments

Comments
 (0)