securityos/node_modules/next/dist/esm/lib/resolve-from.js

40 lines
1.3 KiB
JavaScript
Raw Normal View History

2024-09-06 15:32:35 +00:00
// source: https://github.com/sindresorhus/resolve-from
import path from "path";
import isError from "./is-error";
import { realpathSync } from "./realpath";
const Module = require("module");
export 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 = realpathSync(fromDirectory);
} catch (error) {
if (isError(error) && 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();
};
//# sourceMappingURL=resolve-from.js.map