All files OpenUI5Plugin.js

100% Statements 22/22
100% Branches 0/0
100% Functions 4/4
100% Lines 22/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    1x 1x 1x 1x 1x 1x 1x       1x       1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x               1x  
'use strict';
 
const NullFactory = require('webpack/lib/NullFactory');
const OpenUI5DefineDependency = require('./OpenUI5DefineDependency');
const OpenUI5DefineDependencyParserPlugin = require('./OpenUI5DefineDependencyParserPlugin');
const OpenUI5LazyInstanceDependency = require('./OpenUI5LazyInstanceDependency');
const OpenUI5RequireDependencyParserPlugin = require('./OpenUI5RequireDependencyParserPlugin');
const OpenUI5RequireItemDependency = require('./OpenUI5RequireItemDependency');
const OpenUI5RequireContextDependency = require('./OpenUI5RequireContextDependency');
 
class OpenUI5Plugin {
  constructor(options) {
    this.options = options;
  }
 
  apply(compiler) {
    const { options } = this;
 
    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());
 
      normalModuleFactory.plugin('parser', (parser) => {
        parser.apply(
          new OpenUI5RequireDependencyParserPlugin(options),
          new OpenUI5DefineDependencyParserPlugin(options),
        );
      });
    });
  }
}
module.exports = OpenUI5Plugin;