| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- 'use strict';
 
- const path = require('path');
 
- const Module = require('module');
 
- const fs = require('fs');
 
- const resolveFrom = (fromDirectory, moduleId, silent) => {
 
- 	if (typeof fromDirectory !== 'string') {
 
- 		throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDirectory}\``);
 
- 	}
 
- 	if (typeof moduleId !== 'string') {
 
- 		throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``);
 
- 	}
 
- 	try {
 
- 		fromDirectory = fs.realpathSync(fromDirectory);
 
- 	} catch (error) {
 
- 		if (error.code === 'ENOENT') {
 
- 			fromDirectory = path.resolve(fromDirectory);
 
- 		} else if (silent) {
 
- 			return;
 
- 		} else {
 
- 			throw error;
 
- 		}
 
- 	}
 
- 	const fromFile = path.join(fromDirectory, 'noop.js');
 
- 	const resolveFileName = () => Module._resolveFilename(moduleId, {
 
- 		id: fromFile,
 
- 		filename: fromFile,
 
- 		paths: Module._nodeModulePaths(fromDirectory)
 
- 	});
 
- 	if (silent) {
 
- 		try {
 
- 			return resolveFileName();
 
- 		} catch (error) {
 
- 			return;
 
- 		}
 
- 	}
 
- 	return resolveFileName();
 
- };
 
- module.exports = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId);
 
- module.exports.silent = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId, true);
 
 
  |