1const resolveFrom = require(require.resolve('resolve-from')); 2 3const silent = (fromDirectory: string, request: string) => { 4 const fs = require('fs'); 5 const path = require('path'); 6 try { 7 fromDirectory = fs.realpathSync(fromDirectory); 8 } catch (error: any) { 9 if (error.code === 'ENOENT') { 10 fromDirectory = path.resolve(fromDirectory); 11 } else { 12 return; 13 } 14 } 15 16 let outputPath = path.join(fromDirectory, 'node_modules', request); 17 if (fs.existsSync(outputPath)) { 18 return outputPath; 19 } 20 if (!path.extname(outputPath)) { 21 outputPath += '.js'; 22 } 23 if (fs.existsSync(outputPath)) { 24 return outputPath; 25 } 26 outputPath = path.join(fromDirectory, request); 27 if (fs.existsSync(outputPath)) { 28 return outputPath; 29 } 30}; 31 32module.exports = jest.fn((fromDirectory, request) => { 33 const path = silent(fromDirectory, request); 34 if (!path) { 35 return resolveFrom(fromDirectory, request); 36 } 37 return path; 38}); 39 40module.exports.silent = jest.fn(silent); 41