MCPcopy
hub / github.com/vitejs/vite / findNearestPackageData

Function findNearestPackageData

packages/vite/src/node/packages.ts:129–159  ·  view source on GitHub ↗
(
  basedir: string,
  packageCache?: PackageCache,
)

Source from the content-addressed store, hash-verified

127}
128
129export function findNearestPackageData(
130 basedir: string,
131 packageCache?: PackageCache,
132): PackageData | null {
133 const originalBasedir = basedir
134 while (basedir) {
135 if (packageCache) {
136 const cached = getFnpdCache(packageCache, basedir, originalBasedir)
137 if (cached) return cached
138 }
139
140 const pkgPath = path.join(basedir, 'package.json')
141 if (tryStatSync(pkgPath)?.isFile()) {
142 try {
143 const pkgData = loadPackageData(pkgPath)
144
145 if (packageCache) {
146 setFnpdCache(packageCache, pkgData, basedir, originalBasedir)
147 }
148
149 return pkgData
150 } catch {}
151 }
152
153 const nextBasedir = path.dirname(basedir)
154 if (nextBasedir === basedir) break
155 basedir = nextBasedir
156 }
157
158 return null
159}
160
161// Finds the nearest package.json with a `name` field
162export function findNearestMainPackageData(

Callers 7

resolveConfigFunction · 0.90
isFilePathESMFunction · 0.90
buildOutputOptionsFunction · 0.90
resolveSubpathImportsFunction · 0.90
tryNodeResolveFunction · 0.90
findNearestPackagePathFunction · 0.90

Calls 4

tryStatSyncFunction · 0.90
getFnpdCacheFunction · 0.85
loadPackageDataFunction · 0.85
setFnpdCacheFunction · 0.85

Tested by

no test coverage detected