|
| 1 | +"use strict" |
1 | 2 | /*
|
2 | 3 | MIT License http://www.opensource.org/licenses/mit-license.php
|
3 | 4 | Author Tobias Koppers @sokra
|
4 | 5 | */
|
5 |
| -var createInnerCallback = require("./createInnerCallback"); |
6 |
| -var assign = require("object-assign"); |
7 |
| -var DescriptionFileUtils = require("./DescriptionFileUtils"); |
| 6 | +const createInnerCallback = require("./createInnerCallback") |
| 7 | +const assign = require("object-assign") |
| 8 | +const DescriptionFileUtils = require("./DescriptionFileUtils") |
8 | 9 |
|
9 |
| -function DescriptionFilePlugin(source, filenames, target) { |
10 |
| - this.source = source; |
11 |
| - this.filenames = [].concat(filenames); |
12 |
| - this.target = target; |
13 |
| -} |
14 |
| -module.exports = DescriptionFilePlugin; |
| 10 | +class DescriptionFilePlugin { |
| 11 | + constructor(source, filenames, target) { |
| 12 | + this.source = source |
| 13 | + this.filenames = [].concat(filenames) |
| 14 | + this.target = target |
| 15 | + } |
15 | 16 |
|
16 |
| -DescriptionFilePlugin.prototype.apply = function(resolver) { |
17 |
| - var filenames = this.filenames; |
18 |
| - var target = this.target; |
19 |
| - resolver.plugin(this.source, function(request, callback) { |
20 |
| - var fs = this.fileSystem; |
21 |
| - var directory = request.path; |
22 |
| - DescriptionFileUtils.loadDescriptionFile(resolver, directory, filenames, function(err, result) { |
23 |
| - if(err) return callback(err); |
24 |
| - if(!result) { |
25 |
| - if(callback.missing) { |
26 |
| - filenames.forEach(function(filename) { |
27 |
| - callback.missing.push(resolver.join(directory, filename)); |
28 |
| - }) |
| 17 | + apply(resolver) { |
| 18 | + const filenames = this.filenames |
| 19 | + const target = this.target |
| 20 | + resolver.plugin(this.source, (request, callback) => { |
| 21 | + const fs = this.fileSystem |
| 22 | + const directory = request.path |
| 23 | + DescriptionFileUtils.loadDescriptionFile(resolver, directory, filenames, ((err, result) => { |
| 24 | + if(err) return callback(err) |
| 25 | + if(!result) { |
| 26 | + if(callback.missing) { |
| 27 | + filenames.forEach((filename) => { |
| 28 | + callback.missing.push(resolver.join(directory, filename)) |
| 29 | + }) |
| 30 | + } |
| 31 | + if(callback.log) callback.log("No description file found") |
| 32 | + return callback() |
29 | 33 | }
|
30 |
| - if(callback.log) callback.log("No description file found"); |
31 |
| - return callback(); |
32 |
| - } |
33 |
| - var relativePath = "." + request.path.substr(result.directory.length).replace(/\\/g, "/"); |
34 |
| - var obj = assign({}, request, { |
35 |
| - descriptionFilePath: result.path, |
36 |
| - descriptionFileData: result.content, |
37 |
| - descriptionFileRoot: result.directory, |
38 |
| - relativePath: relativePath |
39 |
| - }); |
40 |
| - resolver.doResolve(target, obj, "using description file: " + result.path + " (relative path: " + relativePath + ")", createInnerCallback(function(err, result) { |
41 |
| - if(err) return callback(err); |
42 |
| - if(result) return callback(null, result); |
| 34 | + const relativePath = "." + request.path.substr(result.directory.length).replace(/\\/g, "/") |
| 35 | + const obj = assign({}, request, { |
| 36 | + descriptionFilePath: result.path, |
| 37 | + descriptionFileData: result.content, |
| 38 | + descriptionFileRoot: result.directory, |
| 39 | + relativePath: relativePath |
| 40 | + }) |
| 41 | + resolver.doResolve(target, obj, "using description file: " + result.path + " (relative path: " + relativePath + ")", createInnerCallback((err, result) => { |
| 42 | + if(err) return callback(err) |
| 43 | + if(result) return callback(null, result) |
| 44 | + |
| 45 | + // Don't allow other description files or none at all |
| 46 | + callback(null, null) |
| 47 | + }, callback)) |
| 48 | + })) |
| 49 | + }) |
| 50 | + } |
| 51 | +} |
43 | 52 |
|
44 |
| - // Don't allow other description files or none at all |
45 |
| - callback(null, null); |
46 |
| - }, callback)); |
47 |
| - }); |
48 |
| - }); |
49 |
| -}; |
| 53 | +module.exports = DescriptionFilePlugin |
0 commit comments