MCPcopy Index your code
hub / github.com/nodejs/corepack / getDefaultVersion

Method getDefaultVersion

sources/Engine.ts:170–202  ·  view source on GitHub ↗
(packageManager: SupportedPackageManagers)

Source from the content-addressed store, hash-verified

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();

Callers 2

getDefaultDescriptorsMethod · 0.95

Calls 4

getLastKnownGoodFunction · 0.85
activatePackageManagerFunction · 0.85
logMethod · 0.80

Tested by

no test coverage detected