UNPKG

karma-typescript-angular2-transform

Version:

Plugin for transforming template and style urls in Angular components.

55 lines 2.06 kB
"use strict"; var log4js = require("log4js"); var path = require("path"); var log; var fixWindowsPath = function (value) { return value.replace(/\\/g, "/"); }; var transform = function (context, callback) { if (!context.ts) { return callback(undefined, false); } var dirty = false; var templateUrlRegex = /templateUrl:\s(['"][^"']*['"])/g; var styleUrlsRegex = /styleUrls:\s\[(.*)\]/g; var quotedStringRegex = /["'](.*?)["']/g; var rewriteUrl = function (regexp) { var match = regexp.exec(context.ts.transpiled); if (!match) { return; } var original = match[0]; var value = match[1]; var templateDir = path.dirname(context.filename); var relativeTemplateDir = path.relative(context.config.karma.basePath, templateDir); var pattern = original; var quotedStringMatch = quotedStringRegex.exec(value); while (quotedStringMatch) { var unquotedString = quotedStringMatch[1]; var url = path.join(context.config.karma.urlRoot, "base", relativeTemplateDir, unquotedString); log.debug("Rewriting %s to %s in %s", unquotedString, url, context.filename); pattern = pattern.replace(unquotedString, fixWindowsPath(url)); quotedStringMatch = quotedStringRegex.exec(value); } context.ts.transpiled = context.ts.transpiled.replace(original, pattern); dirty = true; }; rewriteUrl(styleUrlsRegex); rewriteUrl(templateUrlRegex); return callback(undefined, dirty, false); }; var initialize = function (logOptions) { log4js.configure({ appenders: logOptions.appenders, categories: { default: { appenders: Object.keys(logOptions.appenders), level: logOptions.level } } }); log = log4js.getLogger("angular2-transform.karma-typescript"); }; var exp = Object.assign(transform, { initialize: initialize }); module.exports = exp; //# sourceMappingURL=transform.js.map