import { existsSync, promises as fs } from "fs"; import { resolveFrom } from "./resolve-from"; import { dirname, join, relative } from "path"; export async function hasNecessaryDependencies(baseDir, requiredPackages) { let resolutions = new Map(); const missingPackages = []; await Promise.all(requiredPackages.map(async (p)=>{ try { const pkgPath = await fs.realpath(resolveFrom(baseDir, `${p.pkg}/package.json`)); const pkgDir = dirname(pkgPath); if (p.exportsRestrict) { const fileNameToVerify = relative(p.pkg, p.file); if (fileNameToVerify) { const fileToVerify = join(pkgDir, fileNameToVerify); if (existsSync(fileToVerify)) { resolutions.set(p.pkg, fileToVerify); } else { return missingPackages.push(p); } } else { resolutions.set(p.pkg, pkgPath); } } else { resolutions.set(p.pkg, resolveFrom(baseDir, p.file)); } } catch (_) { return missingPackages.push(p); } })); return { resolved: resolutions, missing: missingPackages }; } //# sourceMappingURL=has-necessary-dependencies.js.map