| 638 | } |
| 639 | |
| 640 | function resolveCleanupTargets(targetArg: string): CleanupTarget[] { |
| 641 | if (targetArg === "all") return [...cleanupTargets] |
| 642 | const targets = targetArg.split(",").map((entry) => entry.trim()).filter(Boolean) |
| 643 | for (const target of targets) { |
| 644 | if (!cleanupTargets.includes(target as CleanupTarget)) { |
| 645 | throw new Error(`Unknown cleanup target: ${target}. Use one of: ${cleanupTargets.join(", ")}, all`) |
| 646 | } |
| 647 | } |
| 648 | return targets as CleanupTarget[] |
| 649 | } |
| 650 | |
| 651 | async function resolveCleanupPluginPath(input: string): Promise<string> { |
| 652 | if (input.startsWith(".") || input.startsWith("/") || input.startsWith("~")) { |