MCPcopy
hub / github.com/antfu-collective/taze / resolveDependency

Function resolveDependency

src/io/resolves.ts:231–352  ·  view source on GitHub ↗
(
  raw: RawDep,
  options: CheckOptions,
  filter: DependencyFilter = () => true,
)

Source from the content-addressed store, hash-verified

229}
230
231export async function resolveDependency(
232 raw: RawDep,
233 options: CheckOptions,
234 filter: DependencyFilter = () => true,
235) {
236 const dep = { ...raw } as ResolvedDepChange
237
238 const configMode = getPackageMode(dep.name, options)
239 const optionMode = options.mode
240 const mergeMode = configMode
241 ? (configMode === optionMode)
242 ? optionMode
243 : optionMode === 'default' ? configMode : 'ignore'
244 : optionMode
245 if (isLocalPackage(raw.currentVersion) || isUrlPackage(raw.currentVersion) || !raw.update || !await Promise.resolve(filter(raw)) || mergeMode === 'ignore') {
246 return {
247 ...raw,
248 diff: null,
249 targetVersion: raw.currentVersion,
250 update: false,
251 } as ResolvedDepChange
252 }
253 if (isAliasedPackage(raw.currentVersion)) {
254 const { name, version, protocol } = parseAliasedPackage(raw.currentVersion)
255 dep.name = name || dep.name
256 dep.currentVersion = version
257 dep.aliasName = raw.name
258 dep.protocol = protocol
259 if (!version) {
260 dep.diff = null
261 dep.targetVersion = version
262 dep.update = false
263 return dep
264 }
265 }
266
267 let resolvedName = dep.name
268
269 // manage Yarn resolutions (e.g. "foo@1/bar")
270 if (dep.source === 'resolutions') {
271 const packages = parseYarnPackagePath(dep.name)
272 resolvedName = packages.pop() ?? dep.name
273 }
274 // manage pnpm overrides (e.g. "foo@1>bar")
275 else if (dep.source === 'pnpm.overrides') {
276 const packages = parsePnpmPackagePath(dep.name)
277 resolvedName = packages.pop() ?? dep.name
278 }
279
280 const pkgData = await getPackageData(resolvedName, dep.protocol, options.cwd)
281 const { error, deprecated } = pkgData
282
283 dep.pkgData = pkgData
284 let err: Error | string | null = null
285 let target: string | undefined
286
287 if (error == null) {
288 try {

Callers 2

resolves.test.tsFile · 0.90
resolveDependenciesFunction · 0.85

Calls 12

getPackageModeFunction · 0.90
parseYarnPackagePathFunction · 0.90
parsePnpmPackagePathFunction · 0.90
isLocalPackageFunction · 0.85
isUrlPackageFunction · 0.85
isAliasedPackageFunction · 0.85
parseAliasedPackageFunction · 0.85
getPackageDataFunction · 0.85
getVersionOfRangeFunction · 0.85
updateTargetVersionFunction · 0.85
filterFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…