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.
|
|
'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);
|