MCPcopy Index your code
hub / github.com/changesets/changesets / applyReleasePlan

Function applyReleasePlan

packages/apply-release-plan/src/index.ts:67–195  ·  view source on GitHub ↗
(
  releasePlan: ReleasePlan,
  packages: Packages,
  config: Config = defaultConfig,
  snapshot?: string | boolean,
  contextDir = __dirname
)

Source from the content-addressed store, hash-verified

65}
66
67export default async function applyReleasePlan(
68 releasePlan: ReleasePlan,
69 packages: Packages,
70 config: Config = defaultConfig,
71 snapshot?: string | boolean,
72 contextDir = __dirname
73) {
74 let cwd = packages.root.dir;
75
76 let touchedFiles = [];
77
78 const packagesByName = new Map(
79 packages.packages.map((x) => [x.packageJson.name, x])
80 );
81
82 let { releases, changesets } = releasePlan;
83
84 let releasesWithPackage = releases.map((release) => {
85 let pkg = packagesByName.get(release.name);
86 if (!pkg)
87 throw new Error(
88 `Could not find matching package for release of: ${release.name}`
89 );
90 return {
91 ...release,
92 ...pkg,
93 };
94 });
95
96 // I think this might be the wrong place to do this, but gotta do it somewhere - add changelog entries to releases
97 let releaseWithChangelogs = await getNewChangelogEntry(
98 releasesWithPackage,
99 changesets,
100 config,
101 cwd,
102 contextDir
103 );
104
105 if (releasePlan.preState !== undefined && snapshot === undefined) {
106 if (releasePlan.preState.mode === "exit") {
107 await fs.remove(path.join(cwd, ".changeset", "pre.json"));
108 } else {
109 await fs.writeFile(
110 path.join(cwd, ".changeset", "pre.json"),
111 JSON.stringify(releasePlan.preState, null, 2) + "\n"
112 );
113 }
114 touchedFiles.push(path.join(cwd, ".changeset", "pre.json"));
115 }
116
117 let versionsToUpdate = releases.map(
118 ({ name, newVersion, oldVersion, type }) => ({
119 name,
120 version: newVersion,
121 oldVersion,
122 type,
123 dir: packagesByName.get(name)!.dir,
124 })

Callers 3

testSetupFunction · 0.85
index.test.tsFile · 0.85
versionFunction · 0.85

Calls 6

shouldSkipPackageFunction · 0.90
getNewChangelogEntryFunction · 0.85
versionPackageFunction · 0.85
updatePackageJsonFunction · 0.85
updateChangelogFunction · 0.85
getPrettierInstanceFunction · 0.70

Tested by 1

testSetupFunction · 0.68