From de98e0b232509d5f40c135d540a70e415272ff85 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 3 May 2017 15:35:00 +0200 Subject: node_modules --- .../enhanced-resolve/lib/DescriptionFilePlugin.js | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js (limited to 'node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js') diff --git a/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js b/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js new file mode 100644 index 000000000..ad4a9a3c6 --- /dev/null +++ b/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js @@ -0,0 +1,51 @@ +"use strict"; +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +const createInnerCallback = require("./createInnerCallback"); +const DescriptionFileUtils = require("./DescriptionFileUtils"); + +class DescriptionFilePlugin { + constructor(source, filenames, target) { + this.source = source; + this.filenames = [].concat(filenames); + this.target = target; + } + + apply(resolver) { + const filenames = this.filenames; + const target = this.target; + resolver.plugin(this.source, (request, callback) => { + const directory = request.path; + DescriptionFileUtils.loadDescriptionFile(resolver, directory, filenames, ((err, result) => { + if(err) return callback(err); + if(!result) { + if(callback.missing) { + filenames.forEach((filename) => { + callback.missing.push(resolver.join(directory, filename)); + }); + } + if(callback.log) callback.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 + ")", createInnerCallback((err, result) => { + if(err) return callback(err); + if(result) return callback(null, result); + + // Don't allow other description files or none at all + callback(null, null); + }, callback)); + })); + }); + } +} + +module.exports = DescriptionFilePlugin; -- cgit v1.2.3