You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							35 lines
						
					
					
						
							932 B
						
					
					
				
			
		
		
	
	
							35 lines
						
					
					
						
							932 B
						
					
					
				'use strict'; | 
						|
const path = require('path'); | 
						|
const Module = require('module'); | 
						|
 | 
						|
const resolveFrom = (fromDir, moduleId, silent) => { | 
						|
	if (typeof fromDir !== 'string') { | 
						|
		throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDir}\``); | 
						|
	} | 
						|
 | 
						|
	if (typeof moduleId !== 'string') { | 
						|
		throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``); | 
						|
	} | 
						|
 | 
						|
	fromDir = path.resolve(fromDir); | 
						|
	const fromFile = path.join(fromDir, 'noop.js'); | 
						|
 | 
						|
	const resolveFileName = () => Module._resolveFilename(moduleId, { | 
						|
		id: fromFile, | 
						|
		filename: fromFile, | 
						|
		paths: Module._nodeModulePaths(fromDir) | 
						|
	}); | 
						|
 | 
						|
	if (silent) { | 
						|
		try { | 
						|
			return resolveFileName(); | 
						|
		} catch (err) { | 
						|
			return null; | 
						|
		} | 
						|
	} | 
						|
 | 
						|
	return resolveFileName(); | 
						|
}; | 
						|
 | 
						|
module.exports = (fromDir, moduleId) => resolveFrom(fromDir, moduleId); | 
						|
module.exports.silent = (fromDir, moduleId) => resolveFrom(fromDir, moduleId, true);
 | 
						|
 |