1 const path = require('path');
3 const extension = require('./lib/extension');
4 const normalize = require('./lib/normalize');
5 const register = require('./lib/register');
7 exports.prepare = function (extensions, filepath, cwd, nothrow) {
11 var onlyErrors = false;
12 var ext = extension(filepath);
13 if (Object.keys(require.extensions).indexOf(ext) !== -1) {
16 var config = normalize(extensions[ext]);
21 throw new Error('No module loader found for "'+ext+'".');
25 cwd = path.dirname(path.resolve(filepath));
27 if (!Array.isArray(config)) {
30 for (var i in config) {
32 attempt = register(cwd, option.module, option.register);
33 error = (attempt instanceof Error) ? attempt : null;
38 moduleName: option.module,
50 err = new Error('Unable to use specified module loaders for "'+ext+'".');
51 err.failures = attempts;