(sys: OptimizerSystem, dep: string, parent: string)
| 1 | import type { OptimizerSystem } from '../types'; |
| 2 | |
| 3 | export async function findDepPkgJsonPath(sys: OptimizerSystem, dep: string, parent: string) { |
| 4 | const fs: typeof import('fs') = await sys.dynamicImport('node:fs'); |
| 5 | let root = parent; |
| 6 | while (root) { |
| 7 | const pkg = sys.path.join(root, 'node_modules', dep, 'package.json'); |
| 8 | try { |
| 9 | await fs.promises.access(pkg); |
| 10 | // use 'node:fs' version to match 'vite:resolve' and avoid realpath.native quirk |
| 11 | // https://github.com/sveltejs/vite-plugin-svelte/issues/525#issuecomment-1355551264 |
| 12 | return fs.promises.realpath(pkg); |
| 13 | } catch { |
| 14 | //empty |
| 15 | } |
| 16 | const nextRoot = sys.path.dirname(root); |
| 17 | if (nextRoot === root) { |
| 18 | break; |
| 19 | } |
| 20 | root = nextRoot; |
| 21 | } |
| 22 | return undefined; |
| 23 | } |
no test coverage detected