Blame view
node_modules/rechoir/index.js
1.35 KB
f7563de62
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
const path = require('path'); const extension = require('./lib/extension'); const normalize = require('./lib/normalize'); const register = require('./lib/register'); exports.prepare = function (extensions, filepath, cwd, nothrow) { var option, attempt; var attempts = []; var err; var onlyErrors = false; var ext = extension(filepath); if (Object.keys(require.extensions).indexOf(ext) !== -1) { return true; } var config = normalize(extensions[ext]); if (!config) { if (nothrow) { return; } else { throw new Error('No module loader found for "'+ext+'".'); } } if (!cwd) { cwd = path.dirname(path.resolve(filepath)); } if (!Array.isArray(config)) { config = [config]; } for (var i in config) { option = config[i]; attempt = register(cwd, option.module, option.register); error = (attempt instanceof Error) ? attempt : null; if (error) { attempt = null; } attempts.push({ moduleName: option.module, module: attempt, error: error }); if (!error) { onlyErrors = false; break; } else { onlyErrors = true; } } if (onlyErrors) { err = new Error('Unable to use specified module loaders for "'+ext+'".'); err.failures = attempts; if (nothrow) { return err; } else { throw err; } } return attempts; }; |