All files OpenUI5ResourceDependency.js

72.73% Statements 16/22
33.33% Branches 4/12
50% Functions 2/4
72.73% Lines 16/22
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 471x 1x       4x 4x 4x 4x 4x 4x 4x 4x                                       1x   4x 4x 4x 4x               1x  
const Dependency = require('webpack/lib/Dependency');
const WebpackMissingModule = require('webpack/lib/dependencies/WebpackMissingModule');
 
class OpenUI5ResourceDependency extends Dependency {
  constructor(context, modulePath, extensions, libraries, translations, range, valueRange) {
    super();
    this.context = context;
    this.modulePath = modulePath.replace(/\//g, '\\/');
    this.extensions = extensions;
    this.libraries = libraries;
    this.translations = translations;
    this.range = range;
    this.valueRange = valueRange;
  }
 
  isEqualResource(other) {
    if (!(other instanceof OpenUI5ResourceDependency)) {
      return false;
    }
 
    return this.context === other.context
      && this.modulePath === other.modulePath
      && this.extensions === other.extensions
      && this.libraries === other.libraries
      && this.translations === other.translations;
  }
 
  get type() {
    return 'openui5 resource';
  }
}
 
OpenUI5ResourceDependency.Template = class OpenUI5ResourceDependencyTemplate {
  apply(dep, source) {
    const containsDeps = dep.module && dep.module.dependencies && dep.module.dependencies.length > 0;
    Eif (containsDeps) {
      source.replace(dep.valueRange[1], dep.range[1] - 1, `).replace(/^(?:\\.\\/)?${dep.modulePath}/, "."))`);
      source.replace(dep.range[0], dep.valueRange[0] - 1, `__webpack_require__(${JSON.stringify(dep.module.id)})((`);
    } else {
      const content = WebpackMissingModule.module('OpenUI5 Resources (No resources configured)');
      source.replace(dep.range[0], dep.range[1] - 1, content);
    }
  }
};
 
module.exports = OpenUI5ResourceDependency;