liudong
2023-05-29 340f156319b863525e50e900c58e59b86ecb3d5e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var rechoir = require('rechoir');
 
module.exports = function(eventEmitter, extensions, configPath, cwd) {
  extensions = extensions || {};
 
  if (typeof configPath !== 'string') {
    return;
  }
 
  var autoloads = rechoir.prepare(extensions, configPath, cwd, true);
  if (autoloads instanceof Error) { // Only errors
    autoloads.failures.forEach(function(failed) {
      eventEmitter.emit('loader:failure', failed.moduleName, failed.error);
    });
    return;
  }
 
  if (!Array.isArray(autoloads)) { // Already required or no config.
    return;
  }
 
  var succeeded = autoloads[autoloads.length - 1];
  eventEmitter.emit('loader:success', succeeded.moduleName, succeeded.module);
};