forked from webpack-contrib/extract-text-webpack-plugin
-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathloader.js
29 lines (25 loc) · 971 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
29
/*
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, map) {
var callback = this.async();
var id = loaderUtils.parseQuery(this.query).id;
var stringReplaceOptions = 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();
callback(null, source, map);
};