Showing the changes to scripts (1 of 2 files). Show all
Unified · Split
| @@ -0,0 +1,24 @@ | ||
| 1 | +// Deletes stale tsgo backup files left behind by `effect-tsgo patch`. | |
| 2 | +// | |
| 3 | +// The patch command backs up the real tsgo binary to `tsgo.original`, and if | |
| 4 | +// that name is taken it writes `tsgo.original.1`, `.2`, ... without ever | |
| 5 | +// cleaning up. On runners that restore node_modules from a build cache | |
| 6 | +// (Vercel), backups accumulate across deploys until patch hard-fails at 101 | |
| 7 | +// with "Too many backup files exist". Removing them is safe: from the second | |
| 8 | +// patch onward the backup is just the previously-patched binary, and pnpm | |
| 9 | +// restores the pristine one whenever the package is re-materialized. | |
| 10 | +// | |
| 11 | +// Runs as part of `prepare`, so it must only use node builtins. | |
| 12 | +import * as NodeFS from "node:fs"; | |
| 13 | + | |
| 14 | +const backups = NodeFS.globSync( | |
| 15 | + "node_modules/.pnpm/@typescript+native-preview-*/node_modules/@typescript/native-preview-*/lib/tsgo{,.exe}.original*", | |
| 16 | +); | |
| 17 | + | |
| 18 | +for (const backup of backups) { | |
| 19 | + NodeFS.rmSync(backup, { force: true }); | |
| 20 | +} | |
| 21 | + | |
| 22 | +if (backups.length > 0) { | |
| 23 | + console.log(`Removed ${backups.length} stale tsgo backup(s)`); | |
| 24 | +} | |