|
1 | | -/* |
2 | | - * @license MIT http://www.opensource.org/licenses/mit-license.php |
3 | | - * @author Hovhannes Babayan <bhovhannes at gmail dot com> |
4 | | - */ |
5 | | -var loaderUtils = require('loader-utils'); |
6 | | - |
7 | | -module.exports = function(content) { |
8 | | -this.cacheable && this.cacheable(); |
9 | | - |
10 | | -var query = loaderUtils.getOptions(this) || {}; |
11 | | -query.encoding = query.encoding || "none"; |
12 | | - |
13 | | -var limit = query.limit ? parseInt(query.limit, 10) : 0; |
14 | | - |
15 | | -if (limit <= 0 || content.length < limit) { |
16 | | -var newContent = content.toString('utf8'); |
17 | | - |
18 | | -var hasStyleElement = /<style[\s\S]*?>[\s\S]*?<\/style>/i.test(newContent) |
19 | | - |
20 | | -if (query.stripdeclarations) { |
21 | | -newContent = newContent.replace(/^\s*<\?xml [^>]*>\s*/i, ""); |
22 | | -} |
23 | | - |
24 | | -var data; |
25 | | -if (query.encoding === "base64") { |
26 | | -if (typeof newContent === "string") { |
27 | | -newContent = new Buffer(newContent); |
28 | | -} |
29 | | -data = "data:image/svg+xml;base64," + newContent.toString("base64"); |
30 | | -} else { |
31 | | -newContent = newContent.replace(/"/g, "'"); |
32 | | -newContent = newContent.replace(/\s+/g, " "); |
33 | | -newContent = newContent.replace(/[{}\|\\\^~\[\]`"<>#%]/g, function(match) { |
34 | | -return '%'+match[0].charCodeAt(0).toString(16).toUpperCase(); |
35 | | -}); |
36 | | - |
37 | | -data = 'data:image/svg+xml,' + newContent.trim(); |
38 | | - |
39 | | -} |
40 | | - |
41 | | -if (!(query.iesafe && hasStyleElement && data.length > 4096)) { |
42 | | -if (query.encoding === "none" && !query.noquotes) { |
43 | | -data = '"'+data+'"'; |
44 | | -} |
45 | | - |
46 | | -return 'module.exports = ' + JSON.stringify(data); |
47 | | -} |
48 | | -} |
49 | | - |
50 | | -var fileLoader = require('file-loader'); |
51 | | -return fileLoader.call(this, content); |
52 | | -}; |
53 | | - |
54 | | -module.exports.raw = true; |
| 1 | +module.exports = require('./src/loader') |
0 commit comments