( deps: Record<string, string>, )
| 32 | * Non-"latest" values are left untouched. |
| 33 | */ |
| 34 | export async function resolveLatestVersions( |
| 35 | deps: Record<string, string>, |
| 36 | ): Promise<Record<string, string>> { |
| 37 | const entries = Object.entries(deps) |
| 38 | const resolved = await Promise.all( |
| 39 | entries.map(async ([name, version]) => { |
| 40 | if (version !== 'latest') return [name, version] as const |
| 41 | const pinned = await resolveNpmVersion(name) |
| 42 | return [name, pinned ?? 'latest'] as const |
| 43 | }), |
| 44 | ) |
| 45 | return Object.fromEntries(resolved) |
| 46 | } |
| 47 | |
| 48 | /** |
| 49 | * Resolve all "latest" version specifiers in a package.json object's |
no test coverage detected