You've already forked angular2-template-loader
mirror of
https://github.com/encounter/angular2-template-loader.git
synced 2026-03-30 10:57:24 -07:00
27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
// using: regex, capture groups, and capture group variables.
|
|
var templateUrlRegex = /templateUrl:(.*)$/gm;
|
|
var stylesRegex = /styleUrls:(\s*\[[^\]]*?\])/g;
|
|
var stringRegex = /(['"])((?:[^\\]\\\1|.)*?)\1/g;
|
|
|
|
function replaceStringsWithRequires(string) {
|
|
return string.replace(stringRegex, function (match, quote, url) {
|
|
if (url.charAt(0) !== ".") {
|
|
url = "./" + url;
|
|
}
|
|
return "require('" + url + "')";
|
|
});
|
|
}
|
|
|
|
module.exports = function(source) {
|
|
return source.replace(templateUrlRegex, function (match, url) {
|
|
// replace: templateUrl: './path/to/template.html'
|
|
// with: template: require('./path/to/template.html')
|
|
return "template:" + replaceStringsWithRequires(url);
|
|
})
|
|
.replace(stylesRegex, function (match, urls) {
|
|
// replace: stylesUrl: ['./foo.css', "./baz.css", "./index.component.css"]
|
|
// with: styles: [require('./foo.css'), require("./baz.css"), require("./index.component.css")]
|
|
return "styles:" + replaceStringsWithRequires(urls);
|
|
});
|
|
};
|