( packages: Record<string, PackageInfo>, dependents: string[], generatedReadmes: string[] )
| 280 | }; |
| 281 | |
| 282 | const restoreAndUpdateLocal = ( |
| 283 | packages: Record<string, PackageInfo>, |
| 284 | dependents: string[], |
| 285 | generatedReadmes: string[] |
| 286 | ): void => { |
| 287 | const filesToRestore = dependents |
| 288 | .map((dep) => join(workspacePath(packages[dep]!.localPath), 'package.json')) |
| 289 | .join(' '); |
| 290 | |
| 291 | execSync(`git checkout ${filesToRestore}`); |
| 292 | |
| 293 | // Clean up auto-generated README files |
| 294 | for (const readmePath of generatedReadmes) { |
| 295 | if (fs.existsSync(readmePath)) { |
| 296 | console.log(`🧹 Removing auto-generated README: ${readmePath}`); |
| 297 | fs.unlinkSync(readmePath); |
| 298 | } |
| 299 | } |
| 300 | |
| 301 | for (const dep of dependents) { |
| 302 | const { nextVersion, localPath, ...restPkgJson } = packages[dep]!; |
| 303 | console.log(`🚀 Updating ${dep} (${nextVersion}-local)`); |
| 304 | |
| 305 | const updatedPkgJson: PackageJson = { |
| 306 | ...restPkgJson, |
| 307 | version: `${nextVersion}-local`, |
| 308 | dependencies: Object.fromEntries( |
| 309 | Object.entries(restPkgJson.dependencies || {}).map( |
| 310 | ([depName, depVersion]) => [ |
| 311 | depName, |
| 312 | dependents.includes(depName) |
| 313 | ? `workspace:${packages[depName]!.nextVersion}-local` |
| 314 | : packages[depName] |
| 315 | ? `workspace:${packages[depName]!.version}-local` |
| 316 | : depVersion, |
| 317 | ] |
| 318 | ) |
| 319 | ), |
| 320 | devDependencies: Object.fromEntries( |
| 321 | Object.entries(restPkgJson.devDependencies || {}).map( |
| 322 | ([depName, depVersion]) => [ |
| 323 | depName, |
| 324 | dependents.includes(depName) |
| 325 | ? `${packages[depName]!.nextVersion}-local` |
| 326 | : packages[depName] |
| 327 | ? `${packages[depName]!.version}-local` |
| 328 | : depVersion, |
| 329 | ] |
| 330 | ) |
| 331 | ), |
| 332 | }; |
| 333 | |
| 334 | savePackageJson(workspacePath(`${localPath}/package.json`), updatedPkgJson); |
| 335 | } |
| 336 | }; |
| 337 | |
| 338 | function main() { |
| 339 | // Main execution |
no test coverage detected