| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
							- /*
 
- MIT License http://www.opensource.org/licenses/mit-license.php
 
- Author Tobias Koppers @sokra
 
- */
 
- "use strict";
 
- const DescriptionFileUtils = require("./DescriptionFileUtils");
 
- module.exports = class DescriptionFilePlugin {
 
- 	constructor(source, filenames, target) {
 
- 		this.source = source;
 
- 		this.filenames = [].concat(filenames);
 
- 		this.target = target;
 
- 	}
 
- 	apply(resolver) {
 
- 		const target = resolver.ensureHook(this.target);
 
- 		resolver
 
- 			.getHook(this.source)
 
- 			.tapAsync(
 
- 				"DescriptionFilePlugin",
 
- 				(request, resolveContext, callback) => {
 
- 					const directory = request.path;
 
- 					DescriptionFileUtils.loadDescriptionFile(
 
- 						resolver,
 
- 						directory,
 
- 						this.filenames,
 
- 						resolveContext,
 
- 						(err, result) => {
 
- 							if (err) return callback(err);
 
- 							if (!result) {
 
- 								if (resolveContext.missing) {
 
- 									this.filenames.forEach(filename => {
 
- 										resolveContext.missing.add(
 
- 											resolver.join(directory, filename)
 
- 										);
 
- 									});
 
- 								}
 
- 								if (resolveContext.log)
 
- 									resolveContext.log("No description file found");
 
- 								return callback();
 
- 							}
 
- 							const relativePath =
 
- 								"." +
 
- 								request.path
 
- 									.substr(result.directory.length)
 
- 									.replace(/\\/g, "/");
 
- 							const obj = Object.assign({}, request, {
 
- 								descriptionFilePath: result.path,
 
- 								descriptionFileData: result.content,
 
- 								descriptionFileRoot: result.directory,
 
- 								relativePath: relativePath
 
- 							});
 
- 							resolver.doResolve(
 
- 								target,
 
- 								obj,
 
- 								"using description file: " +
 
- 									result.path +
 
- 									" (relative path: " +
 
- 									relativePath +
 
- 									")",
 
- 								resolveContext,
 
- 								(err, result) => {
 
- 									if (err) return callback(err);
 
- 									// Don't allow other processing
 
- 									if (result === undefined) return callback(null, null);
 
- 									callback(null, result);
 
- 								}
 
- 							);
 
- 						}
 
- 					);
 
- 				}
 
- 			);
 
- 	}
 
- };
 
 
  |