All files OpenUI5Plugin.js

100% Statements 32/32
100% Branches 0/0
100% Functions 4/4
100% Lines 32/32
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 47 48 49 50 51 52 53 54 55 561x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x       22x       19x   19x 19x   19x 19x   19x 19x   19x 19x   19x 19x   19x 19x   19x 19x   19x 19x   19x 19x                 1x  
const NullFactory = require('webpack/lib/NullFactory');
const LocalModuleDependency = require('webpack/lib/dependencies/LocalModuleDependency');
const OpenUI5DefineDependency = require('./OpenUI5DefineDependency');
const OpenUI5DefineDependencyParserPlugin = require('./OpenUI5DefineDependencyParserPlugin');
const OpenUI5LazyInstanceDependency = require('./OpenUI5LazyInstanceDependency');
const OpenUI5RequireDependencyParserPlugin = require('./OpenUI5RequireDependencyParserPlugin');
const OpenUI5RequireItemDependency = require('./OpenUI5RequireItemDependency');
const OpenUI5RequireContextDependency = require('./OpenUI5RequireContextDependency');
const OpenUI5ResourceDependencyParserPlugin = require('./OpenUI5ResourceDependencyParserPlugin');
const OpenUI5ResourceDependency = require('./OpenUI5ResourceDependency');
const OpenUI5ResourceModuleFactory = require('./OpenUI5ResourceModuleFactory');
 
class OpenUI5Plugin {
  constructor(options) {
    this.options = options;
  }
 
  apply(compiler) {
    const { options } = this;
 
    const resourceModuleFactory = new OpenUI5ResourceModuleFactory(compiler.resolvers);
    compiler.applyPlugins('openui5-resource-module-factory', resourceModuleFactory);
 
    compiler.plugin('compilation', (compilation, params) => {
      const { normalModuleFactory, contextModuleFactory } = params;
 
      compilation.dependencyFactories.set(OpenUI5RequireItemDependency, normalModuleFactory);
      compilation.dependencyTemplates.set(OpenUI5RequireItemDependency, new OpenUI5RequireItemDependency.Template());
 
      compilation.dependencyFactories.set(OpenUI5RequireContextDependency, contextModuleFactory);
      compilation.dependencyTemplates.set(OpenUI5RequireContextDependency, new OpenUI5RequireContextDependency.Template());
 
      compilation.dependencyFactories.set(OpenUI5DefineDependency, new NullFactory());
      compilation.dependencyTemplates.set(OpenUI5DefineDependency, new OpenUI5DefineDependency.Template());
 
      compilation.dependencyFactories.set(OpenUI5LazyInstanceDependency, normalModuleFactory);
      compilation.dependencyTemplates.set(OpenUI5LazyInstanceDependency, new OpenUI5LazyInstanceDependency.Template());
 
      compilation.dependencyFactories.set(OpenUI5ResourceDependency, resourceModuleFactory);
      compilation.dependencyTemplates.set(OpenUI5ResourceDependency, new OpenUI5ResourceDependency.Template());
 
      compilation.dependencyFactories.set(LocalModuleDependency, new NullFactory());
      compilation.dependencyTemplates.set(LocalModuleDependency, new LocalModuleDependency.Template());
 
      normalModuleFactory.plugin('parser', (parser) => {
        parser.apply(
          new OpenUI5RequireDependencyParserPlugin(options),
          new OpenUI5DefineDependencyParserPlugin(options),
          new OpenUI5ResourceDependencyParserPlugin(options),
        );
      });
    });
  }
}
module.exports = OpenUI5Plugin;