1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.PluginChunkReadHandler = void 0;
- var WebpackChunkModuleIterator_1 = require("./WebpackChunkModuleIterator");
- var WebpackInnerModuleIterator_1 = require("./WebpackInnerModuleIterator");
- 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.innerModuleIterator = new WebpackInnerModuleIterator_1.WebpackInnerModuleIterator(require.resolve);
- }
- PluginChunkReadHandler.prototype.processChunk = function (compilation, chunk, moduleCache, stats) {
- var _this = this;
- this.moduleIterator.iterateModules(compilation, chunk, stats, function (chunkModule) {
- _this.innerModuleIterator.iterateModules(chunkModule, function (module) {
- var identifiedModule = _this.extractIdentifiedModule(module) ||
- _this.fileHandler.getModule(module.resource);
- if (identifiedModule) {
- _this.processModule(compilation, chunk, moduleCache, identifiedModule);
- }
- });
- });
- };
- PluginChunkReadHandler.prototype.extractIdentifiedModule = function (module) {
- var resolved = module.resourceResolveData;
- if (!resolved)
- return undefined;
- var directory = resolved.descriptionFileRoot, packageJson = resolved.descriptionFileData;
- if (
- // if missing data, fall back to fs module hunting
- directory &&
- packageJson &&
- packageJson.name &&
- // user checks to decide if we should include the module
- this.fileHandler.isInModuleDirectory(directory) &&
- !this.fileHandler.isBuildRoot(directory) &&
- !this.fileHandler.excludedPackageTest(packageJson.name)) {
- return {
- directory: directory,
- packageJson: packageJson,
- name: packageJson.name
- };
- }
- return undefined;
- };
- 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) {
- var _a;
- if (!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 = (_a = module.packageJson) !== null && _a !== void 0 ? _a : 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, {
- licenseText: licenseText,
- packageJson: packageJson,
- name: module.name,
- directory: module.directory,
- licenseId: licenseType
- });
- }
- }
- moduleCache.markSeenForChunk(chunk.name, module.name);
- }
- };
- return PluginChunkReadHandler;
- }());
- exports.PluginChunkReadHandler = PluginChunkReadHandler;
|