| ... | ... | @@ -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 | } |