text: var templateUrlRegex = /templateUrl\s*:(\s*['"`](.*?)['"`]\s*)/gm;
  var stylesRegex = /styleUrls *:(\s*\[[^\]]*?\])/g;
  var stringRegex = /(['`"])((?:[^\\]\\\1|.)*?)\1/g;
  
  module.exports.translate = function (load) {
      if (load.source.indexOf('moduleId') !== -1) return load;
  
      var url = document.createElement('a');
      url.href = load.address;
  
      var basePathParts = url.pathname.split('/');
  
      basePathParts.pop();
      var basePath = basePathParts.join('/');
  
      var baseHref = document.createElement('a');
      baseHref.href = this.baseURL;
      baseHref = baseHref.pathname;
  
      if (!baseHref.startsWith('/base/')) { // it is not karma
          basePath = basePath.replace(baseHref, '');
      }
  
      load.source = load.source
          .replace(templateUrlRegex, function (match, quote, url) {
              var resolvedUrl = url;
  
              if (url.startsWith('.')) {
                  resolvedUrl = basePath + url.substr(1);
              }
  
              return 'templateUrl: "' + resolvedUrl + '"';
          })
          .replace(stylesRegex, function (match, relativeUrls) {
              var urls = [];
  
              while ((match = stringRegex.exec(relativeUrls)) !== null) {
                  if (match[2].startsWith('.')) {
                      urls.push('"' + basePath + match[2].substr(1) + '"');
                  } else {
                      urls.push('"' + match[2] + '"');
                  }
              }
  
              return "styleUrls: [" + urls.join(', ') + "]";
          });
  
      return load;
  };
  