| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 'use strict';const path = require('path');const Module = require('module');const fs = require('fs');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}\``);	}	try {		fromDir = fs.realpathSync(fromDir);	} catch (err) {		if (err.code === 'ENOENT') {			fromDir = path.resolve(fromDir);		} else if (silent) {			return null;		} else {			throw err;		}	}	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);
 |