@playform/delete
v0.1.1
Published
Delete ♻️
Maintainers
Readme
Delete ♻️
Delete all stale Cloudflare Pages deployments for a project or an entire account.
Paginated - handles any number of deployments ♻️
CLI, Node.js module, Shell script, and Cloudflare Worker ♻️
Note
The active production deployment is never deleted.
[!IMPORTANT]
API Token auth is preferred. Create a token with Account → Cloudflare Pages → Edit permission scoped to your account.
Installation 🚀
npm install -g @playform/deleteGetting started
CLI
All flags fall back to .env values when not provided on the command line, so
running Delete with no arguments will use whatever is set in .env:
Deleteor override any value explicitly:
Delete -t <Token> -i <AccountID> -p <Project>All flags:
-V, --version output the version number
-e, --Email <Email> Account email (for Global API Key auth)
-i, --ID <ID> Account ID
-k, --Key <Key> Global API key (for Email auth)
-t, --Token <Token> API token (preferred over Email + Key)
-p, --Project <Project> Pages project name (omit to process all projects)
-l, --Logger <Logger> Log level: 2 = verbose, 1 = summary (default), 0 = silent
-b, --Batch <Batch> Parallel deletions per batch (default: 10)
-d, --Delay <Delay> Milliseconds between batches (default: 0)
-h, --help display help for commandControlling Logging
| Level | Output |
| ----- | -------------------------------------------------------------------- |
| 0 | Silent - nothing printed |
| 1 | Summary - project header and final deleted count only |
| 2 | Verbose - batch progress and per-deployment ✓/✗ result (default) |
.env
Logger=2or via CLI:
Delete -l 0CLI -p always overrides the Project value in .env, so you can leave
Project="" in .env and pass -p <name> per run.
Batching
Deletions are processed in parallel batches. Increase Batch for speed on large
projects, add Delay to avoid hitting Cloudflare rate limits:
.env
Batch=25
Delay=500or via CLI:
Delete -b 25 -d 500Script
Source/Main.ts
await (
await import("@playform/delete")
).default({
Token: "your-api-token",
ID: "your-account-id",
Project: "your-project-name",
});.env
Token="your-api-token"
ID="your-account-id"
Project="your-project-name"Shell script
./Delete.shReads credentials from .env. Pass a project name as the first argument or set
Project= in .env to target a single project; omit both to process all
projects in the account.
Worker
Deploy as a scheduled Cloudflare Worker to run on a cron trigger:
wrangler deployChangelog
See CHANGELOG.md for a history of changes to this utility.
