(packageManager: SupportedPackageManagers)
| 168 | } |
| 169 | |
| 170 | async getDefaultVersion(packageManager: SupportedPackageManagers) { |
| 171 | const definition = this.config.definitions[packageManager]; |
| 172 | if (typeof definition === `undefined`) |
| 173 | throw new UsageError(`This package manager (${packageManager}) isn't supported by this corepack build`); |
| 174 | |
| 175 | const lastKnownGood = await getLastKnownGood(); |
| 176 | const lastKnownGoodForThisPackageManager = getLastKnownGoodFromFileContent(lastKnownGood, packageManager); |
| 177 | if (lastKnownGoodForThisPackageManager) { |
| 178 | debugUtils.log(`Search for default version: Found ${packageManager}@${lastKnownGoodForThisPackageManager} in LastKnownGood file`); |
| 179 | return lastKnownGoodForThisPackageManager; |
| 180 | } |
| 181 | |
| 182 | if (process.env.COREPACK_DEFAULT_TO_LATEST === `0`) { |
| 183 | debugUtils.log(`Search for default version: As defined in environment, defaulting to internal config ${packageManager}@${definition.default}`); |
| 184 | return definition.default; |
| 185 | } |
| 186 | |
| 187 | const reference = await corepackUtils.fetchLatestStableVersion(definition.fetchLatestFrom); |
| 188 | debugUtils.log(`Search for default version: found in remote registry ${packageManager}@${reference}`); |
| 189 | |
| 190 | try { |
| 191 | await activatePackageManager(lastKnownGood, { |
| 192 | name: packageManager, |
| 193 | reference, |
| 194 | }); |
| 195 | } catch { |
| 196 | debugUtils.log(`Search for default version: could not activate registry version`); |
| 197 | // If for some reason, we cannot update the last known good file, we |
| 198 | // ignore the error. |
| 199 | } |
| 200 | |
| 201 | return reference; |
| 202 | } |
| 203 | |
| 204 | async activatePackageManager(locator: Locator) { |
| 205 | const lastKnownGood = await getLastKnownGood(); |
no test coverage detected