| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- "use strict";
- var __assign = (this && this.__assign) || Object.assign || function(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
- t[p] = s[p];
- }
- return t;
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- var WebpackChunkModuleIterator_1 = require("./WebpackChunkModuleIterator");
- var WebpackModuleFileIterator_1 = require("./WebpackModuleFileIterator");
- var PluginChunkReadHandler = /** @class */ (function () {
- function PluginChunkReadHandler(logger, fileHandler, licenseTypeIdentifier, licenseTextReader, licensePolicy, fileSystem) {
- this.logger = logger;
- this.fileHandler = fileHandler;
- this.licenseTypeIdentifier = licenseTypeIdentifier;
- this.licenseTextReader = licenseTextReader;
- this.licensePolicy = licensePolicy;
- this.fileSystem = fileSystem;
- this.moduleIterator = new WebpackChunkModuleIterator_1.WebpackChunkModuleIterator();
- this.fileIterator = new WebpackModuleFileIterator_1.WebpackModuleFileIterator();
- }
- PluginChunkReadHandler.prototype.processChunk = function (compilation, chunk, moduleCache) {
- var _this = this;
- this.moduleIterator.iterateModules(chunk, function (module) {
- _this.fileIterator.iterateFiles(module, function (filename) {
- var module = _this.fileHandler.getModule(filename);
- _this.processModule(compilation, chunk, moduleCache, module);
- });
- });
- };
- PluginChunkReadHandler.prototype.getPackageJson = function (directory) {
- var filename = "" + directory + this.fileSystem.pathSeparator + "package.json";
- return JSON.parse(this.fileSystem.readFileAsUtf8(filename));
- };
- PluginChunkReadHandler.prototype.processModule = function (compilation, chunk, moduleCache, module) {
- if (module && !moduleCache.alreadySeenForChunk(chunk.name, module.name)) {
- var alreadyIncludedModule = moduleCache.getModule(module.name);
- if (alreadyIncludedModule !== null) {
- moduleCache.registerModule(chunk.name, alreadyIncludedModule);
- }
- else {
- // module not yet in cache
- var packageJson = this.getPackageJson(module.directory);
- var licenseType = this.licenseTypeIdentifier.findLicenseIdentifier(compilation, module.name, packageJson);
- if (this.licensePolicy.isLicenseUnacceptableFor(licenseType)) {
- this.logger.error(compilation, "unacceptable license found for " + module.name + ": " + licenseType);
- this.licensePolicy.handleUnacceptableLicense(module.name, licenseType);
- }
- if (this.licensePolicy.isLicenseWrittenFor(licenseType)) {
- var licenseText = this.licenseTextReader.readLicense(compilation, module, licenseType);
- moduleCache.registerModule(chunk.name, __assign({ licenseText: licenseText,
- packageJson: packageJson }, module, { licenseId: licenseType }));
- }
- }
- moduleCache.markSeenForChunk(chunk.name, module.name);
- }
- };
- return PluginChunkReadHandler;
- }());
- exports.PluginChunkReadHandler = PluginChunkReadHandler;
|