forked from jamesandersen/string-replace-webpack-plugin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathloader.js
28 lines (24 loc) · 926 Bytes
/
loader.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author James Andersen @jandersen78
*/
var loaderUtils = require("loader-utils");
var StringReplacePlugin = require('./index.js');
module.exports = function(source) {
var id = loaderUtils.parseQuery(this.query).id;
var stringReplaceOptions = this.options[StringReplacePlugin.REPLACE_OPTIONS];
if(!stringReplaceOptions.hasOwnProperty(id)) {
this.emitWarning('no replacement options found for id ' + id);
} else {
var options = stringReplaceOptions[id];
if(typeof source === "string") {
options.replacements.forEach(function(repl) {
source = source.replace(repl.pattern, repl.replacement.bind(this));
}, this);
} else {
this.emitWarning("'source' received by loader was not a string");
}
}
this.cacheable && this.cacheable();
return source;
};