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

Method execute

sources/commands/Up.ts:33–56  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

31 });
32
33 async execute() {
34 const [descriptor] = await this.resolvePatternsToDescriptors({
35 patterns: [],
36 });
37
38 if (!semverValid(descriptor.range) && !semverValidRange(descriptor.range))
39 throw new UsageError(`The 'corepack up' command can only be used when your project's packageManager field is set to a semver version or semver range`);
40
41 const resolved = await this.context.engine.resolveDescriptor(descriptor, {useCache: false});
42 if (!resolved)
43 throw new UsageError(`Failed to successfully resolve '${descriptor.range}' to a valid ${descriptor.name} release`);
44
45 const majorVersion = semverMajor(resolved.reference);
46 const majorDescriptor = {name: descriptor.name as SupportedPackageManagers, range: `^${majorVersion}.0.0`};
47
48 const highestVersion = await this.context.engine.resolveDescriptor(majorDescriptor, {useCache: false});
49 if (!highestVersion)
50 throw new UsageError(`Failed to find the highest release for ${descriptor.name} ${majorVersion}.x`);
51
52 this.context.stdout.write(`Installing ${highestVersion.name}@${highestVersion.reference} in the project...\n`);
53
54 const packageManagerInfo = await this.context.engine.ensurePackageManager(highestVersion);
55 await this.setAndInstallLocalPackageManager(packageManagerInfo);
56 }
57}

Callers

nothing calls this directly

Calls 2

resolveDescriptorMethod · 0.80
ensurePackageManagerMethod · 0.80

Tested by

no test coverage detected